মানচিত্র কি কেবল বিভাজন এবং বিজয়ের প্রয়োগ ছাড়া আর কিছু হতে পারে?


26

স্বতন্ত্র সমস্যাগুলি স্বতন্ত্রভাবে সমাধান করা সম্ভব না হওয়া অবধি ছোট সমস্যাগুলির মধ্যে কোনও সমস্যা ভাগ করা এবং তারপরে মূল প্রশ্নের উত্তরটির সাথে সংমিশ্রণকে বিভাজন এবং বিজয়ী অ্যালগরিদম ডিজাইন কৌশল হিসাবে পরিচিত । [দেখুন: সিএলআর দ্বারা অ্যালগরিদমের ভূমিকা]

সম্প্রতি, বিশেষত খুব বড় ডেটা সেটগুলির ডোমেনে গণ্য সমস্যা সমাধানের এই পদ্ধতিকে বিভক্তকরণ এবং বিজয়ের পরিবর্তে ম্যাপ্রেডুস হিসাবে উল্লেখ করা হয়েছে ।

আমার প্রশ্নটি নিম্নরূপ: মানচিত্রটি বিভেদ এবং বিজয় পদ্ধতির উপর নির্ভর করে এমন মালিকানাধীন কাঠামো ছাড়া কি আরও কিছু রয়েছে, বা এর কোনও বিশদ রয়েছে যা একে কিছুটা ক্ষেত্রে অনন্য করে তুলেছে?


বিভাজন এবং বিজয়ী একটি অ্যালগরিদমের শ্রেণি। মানচিত্রের এই শ্রেণীর একটি উদাহরণ।
মার্টিন স্পামার

উত্তর:


28

আপনি যদি মানচিত্রের আর্কিটেকচার সম্পর্কে জিজ্ঞাসা করছেন তবে এটি কেবল একটি বিভাজন এবং বিজয়ী কৌশল। যাইহোক, যে কোনও কার্যকর মানচিত্রে আর্কিটেকচারের দক্ষতার সাথে "বিভাজন", "বিজয়ীকরণ" এবং অবশেষে সমস্যাটি সেট "হ্রাস" করার জন্য অন্যান্য অবকাঠামোগত পাহাড় থাকবে। কাজটি ভাগ করে নেওয়ার জন্য কোনও বড় ম্যাপ্রেডিউজ মোতায়েনের (1000 এর গণনা নোডগুলির 1000 টি) সাথে কিছু গণনা করা, এবং তারপরে অবশেষে সমস্ত ফলাফল সংগ্রহ করা তুচ্ছ নয়। লোড ব্যালেন্সিং, মৃত নোড সনাক্তকরণ, অন্তর্বর্তীকালীন রাষ্ট্র সংরক্ষণ (দীর্ঘকাল ধরে চলমান সমস্যার জন্য), নিজের মতো করে কঠিন সমস্যা।


1
"দক্ষতার সাথে" বিভাজন "," বিজয় "এবং অবশেষে" সমস্যা "হ্রাস" করার জন্য - এটি বিভ্রান্তিকর: "মানচিত্র" পদক্ষেপের জন্য ডি অ্যান্ড সি সলভারের প্রয়োজন নেই (যেহেতু ডেটা কঠোরভাবে স্বাধীন) তাই আপনি খণ্ডগুলি বিতরণ করতে পারেন কোনও ধরণের শিডিয়ুলার ব্যবহার করে কাজ করা; হ্রাস পদক্ষেপের জন্য ডি অ্যান্ড সি প্রয়োজন হয়।
কনরাড রুডল্ফ

4
"ন্যায়সঙ্গত" শব্দটি এই প্রসঙ্গে বিভ্রান্ত করছে।

যেমনটি বলা হয়েছে, এই উত্তরটি নিছক বিভ্রান্তিকর নয়, তবে সম্পূর্ণ মিথ্যা। MapReduce স্পষ্টভাবে হয় না "শুধু বিভক্ত এবং জয় করো কৌশল"।
জেরি কফিন

10

ম্যাপ্রেইডুস হ'ল একটি বিচ্ছিন্নভাবে উপায়ে বিভাজন এবং বিজয়ী অ্যালগরিদমগুলি কার্যকর করার জন্য , কম্পিউটারের একটি নির্বিচারে বৃহত ক্লাস্টারে নোডগুলিতে স্বয়ংক্রিয়ভাবে ইউনিট-অফ-ওয়ার্ক বিতরণ করে এবং স্বয়ংক্রিয়ভাবে নোডগুলির ব্যর্থতা পরিচালনা করে ইউনিট-অফ-ওয়ার্কের পুনরায় বিতরণ করে অন্য নোডে

এটি একটি অতি-পরিশীলিত ধারণা নয়, অবকাঠামোগত একটি খুব দরকারী অংশ।


10

ম্যাপ্রেইডুস বেশিরভাগ বিভাজন থেকে বিভক্ত হয়ে সিস্টেমকে মোটামুটি মৌলিক উপায়ে বিভক্ত করে, তবে এটি এতটাই সহজ যে অনেকে এটি প্রায় মিস করে। এর আসল প্রতিভা মধ্যবর্তী ফলাফলগুলি ট্যাগ করার মধ্যে।

একটি সাধারণ (পূর্ববর্তী) বিভাজক এবং বিজয়ী সিস্টেমে আপনি কাজটি ক্রমিকভাবে বিভক্ত করেন, সমান্তরালে কাজের প্যাকেটগুলি কার্যকর করেন এবং তারপরে ফলাফলটি ক্রমিকভাবে আবার একত্রিত করুন।

ম্যাপ্রেডস-এ, আপনি কাজটি ধারাবাহিকভাবে বিভক্ত করবেন, সমান্তরালে কাজের প্যাকেটগুলি কার্যকর করুন এবং কোন ফলাফলের সাথে অন্যান্য ফলাফলের সাথে কোন ফলাফল চলে যায় তা বোঝাতে ফলাফলগুলিকে ট্যাগ করুন tag একত্রীকরণটি একই ট্যাগের সাথে সমস্ত ফলাফলের জন্য ক্রমিক হয় তবে বিভিন্ন ট্যাগ থাকা ফলাফলের জন্য সমান্তরালে সম্পাদন করা যায়।

পূর্ববর্তী বেশিরভাগ সিস্টেমে, মার্জ পদক্ষেপটি সত্যিকারের তুচ্ছ কাজগুলি বাদে সকলের জন্য একটি বাধা হয়ে দাঁড়িয়েছে। MapReduce সঙ্গে এটি করতে পারেন এখনও হতে কাজগুলো প্রকৃতি প্রয়োজন হলে যে সব মার্জ ধারাবাহিকভাবে সম্পন্ন করা। তবে, যদি টাস্কটি কিছু পরিমাণের সমান্তরাল ফলাফলের মার্জ করতে দেয় তবে ম্যাপ্রেডুস সেই সম্ভাবনার সুযোগটি নেওয়ার একটি সহজ উপায় দেয়। বেশিরভাগ অন্যান্য সিস্টেমে দুটি জিনিসের মধ্যে একটি করে: হয় সমস্ত মার্জিয়াল ক্রমিকভাবে কেবলমাত্র কার্যকর করা হয় কারণ এটি কিছু কাজের জন্য প্রয়োজনীয় হতে পারে অথবা অন্যথায় কোনও নির্দিষ্ট কাজের জন্য সমান্তরাল মার্জিংকে স্থিরভাবে সংজ্ঞায়িত করে। ম্যাপ্রেইডুস আপনাকে সংযোজন পদক্ষেপে স্বয়ংক্রিয়ভাবে যথাসম্ভব সমান্তরালভাবে সময়সূচী দেওয়ার জন্য পর্যাপ্ত পরিমাণে তথ্য সরবরাহ করে, তবুও নিশ্চিত করে (ম্যাপিং পদক্ষেপে আপনি ভুল করেননি) ধরে রাখছেন যে সংগততা বজায় রয়েছে।

এছাড়াও নোট করুন যে ম্যাপ্রেডুসে, এটি অন্তর্নিহিত যে সমস্ত পদক্ষেপগুলি পুনরাবৃত্ত হতে পারে, তাই আমার কাছে প্রাথমিক ম্যাপিং পদক্ষেপ থাকতে পারে যা একটি বৃহত টাস্ককে 5 টি ছোট ছোট টাস্কে সমান্তরালভাবে সম্পাদন করতে পারে - তবে এর প্রতিটি হতে পারে (মধ্যে টার্ন) আরও অনেকগুলি ছোট ছোট সমান্তরাল কার্যগুলিতে ম্যাপযুক্ত হোন এবং আরও অনেক কিছু।

এটি ম্যাপিং এবং হ্রাসকারী উভয় পক্ষের উপর একটি গাছের কাঠামোর দিকে নিয়ে যায় যাতে অনেকগুলি মেশিনের সুবিধা নেওয়ার জন্য দ্রুত একটি বড় টাস্ককে পর্যাপ্ত টুকরো টুকরো টুকরো করে দেয়।


7

MapReduce হয় না কেবল একটি ডিভাইড এবং জয় করো কৌশল, যদিও এটা অনেক উদাহরণ যে ভাবে দেখায়।

ম্যাপিং পদক্ষেপে আপনি প্রায়শই এক থেকে একাধিক সম্পর্ক করতে চান। সুতরাং আপনি কেবল ক্ষেত্রে বিভক্ত না।

মানচিত্র এবং হ্রাস এর মধ্যে হয় হয় (বাস্তবায়নের উপর নির্ভর করে) একটি বাছাই বা হ্যাশিং পদক্ষেপ। সামগ্রিক সংস্থান প্রয়োজনীয়তার জন্য এই অপারেশনটির দক্ষতা অত্যন্ত গুরুত্বপূর্ণ। এর বিশদটি অ্যাপ্লিকেশন প্রোগ্রামারের কাছে অদৃশ্য, তবে এই পদক্ষেপটি কাঠামোর কেন্দ্রস্থল।

হ্রাস অপারেশন হ'ল এক ধরণের মার্জ। যা একটি বিজয়ী হিসাবে ভাবা যেতে পারে, তবে বাস্তবে হয় "পরে ব্যবহারের জন্য ডেটা নির্গমন" বা "ডেটা স্টোরের ডেটা সংরক্ষণ করুন" হতে পারে। (দ্রষ্টব্য, আপনার কাছে যদি বড় ডেটা সেট থাকে তবে আপনি ইনপুট এবং চূড়ান্ত ফলাফল সহ সমস্ত কিছু বিতরণ করতে চান So সুতরাং বিতরণ কী / মান স্টোরটি ইনপুট পেতে এবং আউটপুট সংরক্ষণ করার জায়গা হিসাবে উভয়ই উপলব্ধি করে))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.