কীভাবে মানচিত্রে সাজানো অ্যালগরিদম কাজ করে?


110

মানচিত্রের শক্তি প্রদর্শনে যে প্রধান উদাহরণ ব্যবহার করা হয় তা হ'ল টেরাসোর্ট বেঞ্চমার্ক । মানচিত্রে পরিবেশে ব্যবহৃত বাছাই করা অ্যালগরিদমের মূল বিষয়গুলি বুঝতে আমার সমস্যা হচ্ছে।

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

আমার মতে ডেটাसेटকে অনেক টুকরো করে বিভক্ত করার অর্থ আপনি একটি একক টুকরো বাছাই করতে পারেন এবং তারপরেও আপনাকে এই টুকরাগুলি 'সম্পূর্ণ' সম্পূর্ণরূপে সাজানো ডেটাসেটে একীভূত করতে হবে। হাজার হাজার সিস্টেমে বিতরণ করা টেরাবাইট ডেটাসেট দেওয়া আমি আশা করি এটি একটি বিশাল কাজ হবে।

তাহলে এটি কীভাবে সত্য হয়? এই মানচিত্রে বাছাই করা অ্যালগরিদম কীভাবে কাজ করে?

আমাকে বুঝতে সাহায্য করার জন্য ধন্যবাদ।

উত্তর:


61

টেরাসর্টের জন্য হাদুপের বাস্তবায়নের বিষয়ে কিছু বিশদ এখানে রয়েছে :

টেরাসোর্ট হ'ল একটি মানচিত্র / কমানোর বাছাই করা কাস্টম পার্টিশনকারী ব্যতীত N - 1 স্যাম্পল্ড কীগুলির সোর্টড লিস্ট ব্যবহার করে যা প্রতিটি হ্রাসের জন্য মূল সীমাটি নির্ধারণ করে। বিশেষত, সমস্ত কী যেমন যেমন নমুনা [i - 1] <= কী <নমুনা [i] i হ্রাস করতে প্রেরণ করা হয়। এটি গ্যারান্টি দেয় যে হ্রাস i এর আউটপুট হ্রাস i + 1 এর আউটপুটের তুলনায় সব কম ""

সুতরাং তাদের কৌশলটি মানচিত্রের পর্বের সময় কীগুলি নির্ধারণ করার উপায়। মূলত তারা নিশ্চিত করে যে একক হ্রাসকারীর প্রতিটি মান অন্যান্য সমস্ত হ্রাসকারীদের বিরুদ্ধে 'প্রাক-সাজানো' গ্যারান্টিযুক্ত।

আমি জেমস হ্যামিল্টনের ব্লগ পোস্টের মাধ্যমে কাগজের রেফারেন্সটি পেয়েছি ।


3

গুগল রেফারেন্স: ম্যাপ্রেডিউস: বড় ক্লাস্টারে সহজতর ডেটা প্রসেসিং

এতে উপস্থিত হয়েছে :
ওএসডিআই'০৪: অপারেটিং সিস্টেম ডিজাইন ও বাস্তবায়নের উপর ষষ্ঠ সিম্পোজিয়াম,
সান ফ্রান্সিসকো, সিএ, ডিসেম্বর, ২০০৪।

এই লিঙ্কটির একটি পিডিএফ এবং এইচটিএমএল-স্লাইড রেফারেন্স রয়েছে।

বাস্তবায়ন রেফারেন্স সহ বিবরণ সহ একটি উইকিপিডিয়া পৃষ্ঠাও রয়েছে।

সমালোচনা,

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


উল্লিখিত দস্তাবেজগুলিতে বর্ণিত মানচিত্রের ধারণাগুলি আমি বেশিরভাগই বুঝতে পারি understand আমি বাছাই করা অ্যালগরিদম বোঝার চেষ্টা করছি।
নিলস বাসজেস

1

গুগলের মানচিত্রার কাগজ পড়ার সময় আমারও একই প্রশ্ন ছিল। @ ইউভাল এফ এর উত্তর আমার ধাঁধাটি বেশ সমাধান করেছে।

কাগজটি পড়ার সময় একটি জিনিস আমি লক্ষ্য করেছি যে জাদুটি বিভাজনে ঘটে (মানচিত্রের পরে, হ্রাস করার আগে)।

কাগজটি hash(key) mod Rপার্টিশন উদাহরণ হিসাবে ব্যবহার করে , তবে কাজগুলি হ্রাস করার জন্য মধ্যবর্তী ডেটা বিভাজনের একমাত্র উপায় এটি নয় is

এটি সম্পূর্ণ করার জন্য কেবলমাত্র ইউভাল এফ এর উত্তরে সীমানা শর্ত যুক্ত করুন : ধরুন নমুনাযুক্ত কীগুলির মধ্যে ন্যূনতম কী এবং সর্বাধিক কী; সমস্ত কী <মিনিট (এস) কে একটি হ্রাস টাস্কে বিভক্ত করা হয়; তদ্বিপরীতভাবে, সমস্ত কী> = সর্বোচ্চ (এস) কে একটি হ্রাস করার জন্য ভাগ করা হয়।

নমুনাযুক্ত কীগুলিতে কোনও মিনিট বা সর্বোচ্চের মতো কোনও কঠোর সীমাবদ্ধতা নেই। কেবলমাত্র, আরও সমানভাবে এই কীগুলি সমস্ত কীগুলির মধ্যে বিতরণ করা হয়েছে, আরও "সমান্তরাল" এই বিতরণ সিস্টেমটি কম হ্রাসকারী অপারেটরের মেমরির ওভারফ্লো ইস্যুতে কম less


0

শুধু মনন...

একটি বিশাল সংখ্যক ডেটা দেওয়া, আপনি সমান্তরালভাবে প্রক্রিয়া করার জন্য কিছু অংশগুলিতে ডেটা ভাগ করে নিবেন (সম্ভবত রেকর্ড সংখ্যার দ্বারা রেকর্ড 1 - 1000 = পার্টিশন 1 এবং আরও কিছু)।

ক্লাস্টারের একটি নির্দিষ্ট নোডে প্রতিটি পার্টিশন নির্ধারণ / নির্ধারণ করুন।

প্রতিটি ক্লাস্টার নোড পার্টিশনটিকে তার নিজের মিনি পার্টিশনে আরও ভাঙ্গবে (মানচিত্র), সম্ভবত কী বর্ণমালা অনুসারে। সুতরাং, পার্টিশন 1-এ, এ এর ​​সাথে শুরু হওয়া সমস্ত জিনিস আমাকে পান এবং এটিকে x এর মিনি বিভাজনে আউটপুট করুন। যদি ইতিমধ্যে ইতিমধ্যে একটি (এক্স) থাকে তবে একটি নতুন এ (এক্স) তৈরি করুন। অনুক্রমিক সংখ্যার সাথে এক্স প্রতিস্থাপন (সম্ভবত এটি কাজ করার জন্য শিডিয়ুলার কাজ) আই আমাকে পরবর্তী এ (এক্স) অনন্য আইডি দিন।

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

একবার হয়ে গেলে, বাছাই করা পার্টিশনটি আবার একটি একক ডাটাবেসে একত্রিত করুন। এই মুহুর্তে এটি কেবলমাত্র এন ফাইলগুলির একটি সরল সংমিশ্রণ (যেখানে আপনি কেবল এ - জেড করছেন যদি ইত্যাদি 26 হয়) ইত্যাদি etc.

এর মধ্যে মধ্যবর্তী পদক্ষেপ থাকতে পারে ... আমি নিশ্চিত নই :)। অর্থাৎ আরও মানচিত্র এবং প্রাথমিক হ্রাস পদক্ষেপের পরে হ্রাস।

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