MapReduce এর পরিচিতি
MapReduce হলো Hadoop এর একটি প্রোগ্রামিং মডেল, যা ডিস্ট্রিবিউটেড এবং প্যারালাল ডেটা প্রসেসিংয়ের জন্য ব্যবহৃত হয়। এটি একটি দুটি পর্যায়ে কাজ করে: Map এবং Reduce। প্রথমে Map পর্যায়ে ডেটা প্রক্রিয়াকরণ করা হয়, তারপর Reduce পর্যায়ে সেই ডেটার উপর কাজ করে ফলাফল প্রদান করা হয়।
MapReduce-এর Execution Flow বা কার্যকারিতা ধাপে ধাপে নির্দিষ্ট প্রক্রিয়ার মাধ্যমে চলে, যা একটি ডিস্ট্রিবিউটেড সিস্টেমে ডেটাকে কার্যকরভাবে প্রসেস করতে সাহায্য করে।
MapReduce এর Execution Flow
১. Job Submission
MapReduce জব শুরু হয় ক্লায়েন্টের মাধ্যমে। ক্লায়েন্ট একটি MapReduce জব তৈরি করে এবং এটি Hadoop ক্লাস্টারে পাঠায়। এই Job-টি ডেটা প্রসেসিংয়ের জন্য নির্দিষ্ট কাজ বা অপারেশন নির্ধারণ করে।
২. Job Initialization and Job Tracker
Job পাঠানোর পর, Job Tracker (Hadoop 1.x) অথবা Resource Manager (Hadoop 2.x) সেই Job গ্রহণ করে। এটি কাজটি পরিচালনা এবং মনিটর করতে শুরু করে। Job Tracker রিসোর্স ম্যানেজার হিসেবে কাজ করে এবং বিভিন্ন কাজের জন্য উপযুক্ত Task Tracker-এ কাজগুলি বরাদ্দ করে।
৩. Input Splitting
MapReduce-এ ডেটা অনেকগুলো ছোট ছোট অংশে (splits) ভাগ করে নেয়, যাতে সেগুলি ডিস্ট্রিবিউটেড ক্লাস্টার নোডে প্রসেস করা যায়। এই split গুলি HDFS থেকে পড়ে আসে এবং Map Task এর জন্য প্রস্তুত করা হয়।
৪. Mapping Phase (Map Task)
এই পর্যায়ে, Map ফেজ শুরু হয়। ডেটা ফাইলগুলি পঠন এবং Map function চালানো হয়। Map function ইনপুট হিসাবে একটি key-value পেয়ার গ্রহণ করে এবং একটি মধ্যবর্তী key-value পেয়ার আউটপুট হিসেবে প্রদান করে। এই মধ্যবর্তী আউটপুট পরবর্তী Shuffle and Sort ফেজে ব্যবহার হয়।
- Map Function: এটি ইনপুট ডেটার উপর কাজ করে এবং ডেটাকে প্রাসঙ্গিক key-value পেয়ারে রূপান্তরিত করে।
৫. Shuffling and Sorting
Map এর আউটপুট (মধ্যবর্তী key-value পেয়ার) shuffle এবং sort করা হয়। এই প্রক্রিয়া হল যে, সমান key গুলি একই জায়গায় একত্রিত করা হয়। যেমন, যদি একটি key 'A' অনেকবার তৈরি হয়, তবে সেগুলি একত্রিত হয়ে একটি সঙ্গতিপূর্ণ আউটপুট তৈরি করে।
- Shuffle: একই key এর সব value কে একত্রিত করা হয়।
- Sort: key গুলি সাজানো হয় যাতে পরবর্তী প্রক্রিয়াতে সঠিকভাবে কার্যকরী হয়।
৬. Reducing Phase (Reduce Task)
Shuffle এবং Sort শেষ হলে, Reduce ফেজ শুরু হয়। এখানে একই key এর সমস্ত value একত্রিত করা হয় এবং সেখানে একটি Aggregation বা সঠিক প্রক্রিয়া প্রয়োগ করা হয়। Reduce function প্রতিটি key-এর জন্য একক আউটপুট প্রদান করে, যা চূড়ান্ত ফলাফল।
- Reduce Function: এটি মধ্যবর্তী key-value পেয়ারের উপর কাজ করে এবং কোনো নির্দিষ্ট কাজ (যেমন যোগফল, গড় বের করা ইত্যাদি) প্রয়োগ করে। Reducer একটি key এর জন্য একক আউটপুট প্রদান করে।
৭. Output
Reduce ফেজের পর, চূড়ান্ত আউটপুট ফাইল তৈরি হয় এবং এটি HDFS-এ সংরক্ষিত হয়। এর মধ্যে সব কাজের ফলাফল অন্তর্ভুক্ত থাকে। ক্লায়েন্ট এই আউটপুট ফাইলটি অ্যাক্সেস করতে পারে।
MapReduce Execution Flow Diagram
Client -> Job Submission -> Job Tracker / Resource Manager
-> Input Splitting -> Map Task (Mapping)
-> Shuffle and Sort (Grouping and Sorting)
-> Reduce Task (Aggregation)
-> Output (HDFS Storage)
সারাংশ
MapReduce-এর Execution Flow হল একটি স্টেপ-বাই-স্টেপ প্রক্রিয়া, যেখানে ডেটা প্রথমে ম্যাপিং হয়, তারপরে শাফলিং এবং সোর্টিংয়ের মাধ্যমে গ্রুপ করা হয়, এবং শেষে রিডুসিং করে চূড়ান্ত ফলাফল তৈরি হয়। এই প্রক্রিয়াটি ডিস্ট্রিবিউটেড ক্লাস্টারে কাজের দক্ষতা এবং প্যারালাল প্রসেসিং নিশ্চিত করে, যার মাধ্যমে বিশাল পরিমাণ ডেটা দ্রুত এবং কার্যকরীভাবে প্রক্রিয়া করা যায়।
Read more