YARN (Yet Another Resource Negotiator) এবং MapReduce হাদুপের মধ্যে ডেটা প্রক্রিয়াকরণের জন্য প্রধান দুটি উপাদান। যেখানে YARN রিসোর্স ম্যানেজমেন্ট এবং ক্লাস্টারের পারফরম্যান্সের জন্য দায়ী, সেখানে MapReduce ডেটা প্রক্রিয়াকরণের মূল কাজটি করে। হাদুপ ক্লাস্টারের মধ্যে MapReduce টাস্কগুলোর জন্য Resource Allocation বা রিসোর্স বরাদ্দের কাজ YARN সম্পন্ন করে।
YARN (Yet Another Resource Negotiator) কী?
YARN হাদুপের একটি গুরুত্বপূর্ণ উপাদান, যা মূলত রিসোর্স ম্যানেজমেন্ট এবং কাজের পরিবেশ নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। YARN হাদুপ 2.x সংস্করণে JobTracker এবং TaskTracker এর পরিবর্তে নতুন ResourceManager এবং NodeManager সিস্টেম চালু করেছে।
YARN এর প্রধান উপাদান:
- ResourceManager:
- এটি ক্লাস্টারের Centralized Resource Management করে।
- সমস্ত রিসোর্সের জন্য একটি Scheduler এবং ApplicationManager প্রদান করে।
- Scheduler বিভিন্ন অ্যাপ্লিকেশন এবং তাদের রিসোর্সের জন্য সিডিউলিং করে।
- NodeManager:
- এটি হাদুপ ক্লাস্টারের Individual Node-এ রিসোর্স ব্যবস্থাপনা এবং মনিটরিং করার জন্য দায়ী।
- এটি Container তৈরি করে এবং সেগুলোতে অ্যাপ্লিকেশন চালানোর জন্য উপযুক্ত রিসোর্স বরাদ্দ করে।
- ApplicationMaster:
- এটি একটি নির্দিষ্ট অ্যাপ্লিকেশন বা কাজের জন্য ব্যবহৃত হয় এবং তার কার্যাবলী পরিচালনা করে।
- ResourceManager থেকে রিসোর্স চাওয়া এবং সেই রিসোর্সের ওপর কাজ পরিচালনা করা।
- Container:
- এটি YARN সিস্টেমে একটি ইন্সট্যান্স যা একটি নির্দিষ্ট কাজ চালানোর জন্য রিসোর্সের একটি বরাদ্দ।
- NodeManager এর মধ্যে তৈরি হয় এবং ApplicationMaster দ্বারা ব্যবহৃত হয়।
MapReduce এবং YARN এর জন্য Resource Allocation
YARN এবং MapReduce-এর মধ্যে রিসোর্স বরাদ্দের জন্য YARN এর Scheduler এবং ResourceManager একে অপরের সাথে কাজ করে।
MapReduce এবং YARN-এ রিসোর্স বরাদ্দের পদ্ধতি:
- Job Submission:
- যখন একটি MapReduce কাজ শুরু হয়, এটি Client থেকে ResourceManager এর কাছে পাঠানো হয়।
- ResourceManager তখন কাজের জন্য ApplicationMaster নির্ধারণ করে এবং তার জন্য রিসোর্স বরাদ্দের জন্য YARN Scheduler ব্যবহার করে।
- Scheduler:
- YARN Scheduler প্রধানত দুটি টাইপের হয়ে থাকে:
- Capacity Scheduler: এটি ক্লাস্টারে রিসোর্সের বিভিন্ন অংশে অ্যাপ্লিকেশনগুলোর জন্য বরাদ্দ নির্ধারণ করে।
- Fair Scheduler: এটি সমস্ত অ্যাপ্লিকেশনের জন্য রিসোর্স সমানভাবে ভাগ করে দেয়।
- সিডিউলার বিভিন্ন কাজের জন্য যথাযথ রিসোর্স বরাদ্দের জন্য ResourceManager থেকে নির্দেশনা নিয়ে কাজ শুরু করে।
- YARN Scheduler প্রধানত দুটি টাইপের হয়ে থাকে:
- ResourceManager:
- যখন Scheduler রিসোর্স বরাদ্দ করে, ResourceManager সেই রিসোর্সের জন্য NodeManager এর কাছে আবেদন পাঠায়।
- NodeManager সঠিক Container-এ রিসোর্স বরাদ্দ করে এবং কাজটি চালানোর জন্য একটি নির্দিষ্ট Node-এ রিসোর্স প্রদান করে।
- ApplicationMaster:
- ApplicationMaster হল কাজটির মালিক এবং এটি ResourceManager থেকে রিসোর্স বরাদ্দ করে এবং কাজটি চালানোর জন্য Container চালানোর দায়িত্ব নিয়ে থাকে।
- এটি নির্দিষ্ট NodeManager-এর সাথে যোগাযোগ করে এবং কাজটি সঠিকভাবে সম্পন্ন করার জন্য পর্যবেক্ষণ করে।
- Task Execution:
- যখন রিসোর্স বরাদ্দ করা হয়, NodeManager সেগুলো Container-এ প্রয়োগ করে এবং MapReduce কাজের জন্য নির্দিষ্ট কাজ শুরু হয়।
- প্রতিটি Map এবং Reduce টাস্ক নির্দিষ্ট Container-এ চলতে থাকে এবং ডেটার প্রক্রিয়াকরণ সম্পন্ন হয়।
YARN-এ Resource Allocation এর সুবিধা
- ডিস্ট্রিবিউটেড রিসোর্স ম্যানেজমেন্ট:
YARN ডিসেন্ট্রালাইজড রিসোর্স ম্যানেজমেন্ট প্রদান করে, যা আরও বড় হাদুপ ক্লাস্টারগুলোর মধ্যে রিসোর্স ব্যবস্থাপনা সহজ করে তোলে। - স্কেলেবিলিটি:
YARN-এ রিসোর্সের শক্তিশালী বরাদ্দ এবং কনটেইনার ম্যানেজমেন্ট থাকার কারণে এটি সহজে স্কেল করা যায় এবং বড় পরিসরের ডেটা প্রক্রিয়া করতে সহায়ক। - বিভিন্ন অ্যাপ্লিকেশন সাপোর্ট:
YARN MapReduce, Spark, Tez, এবং Hive এর মতো বিভিন্ন প্রোগ্রামিং ফ্রেমওয়ার্ককে সমর্থন করে, তাই একাধিক ডেটা প্রক্রিয়াকরণ ফ্রেমওয়ার্ক একই ক্লাস্টারে একত্রিতভাবে চলতে পারে। - লোড ব্যালান্সিং:
YARN রিসোর্স বরাদ্দের মাধ্যমে লোড ব্যালান্সিং নিশ্চিত করে, ফলে একটি নির্দিষ্ট Node-এ অতিরিক্ত চাপ না পড়ে, সমানভাবে রিসোর্স ব্যবহৃত হয়।
MapReduce এর জন্য Resource Allocation
MapReduce এর জন্য রিসোর্স বরাদ্দের প্রধান কাজ YARN সম্পন্ন করে। YARN এর মাধ্যমে MapReduce কাজের Map এবং Reduce টাস্কগুলি নির্দিষ্ট Containers-এ চলে এবং সঠিক রিসোর্স ব্যবহার করা হয়। Map টাস্কগুলো MapReduce Job এর প্রথম ধাপ হিসেবে চলতে থাকে, এবং তার পরের ধাপে Reduce টাস্কগুলি চলে, সব ডেটা একত্রিত এবং প্রক্রিয়াকৃত হয়।
সারাংশ
YARN হাদুপ ক্লাস্টারের রিসোর্স ম্যানেজমেন্ট সিস্টেম, যা MapReduce এর জন্য উপযুক্ত রিসোর্স বরাদ্দ এবং নিয়ন্ত্রণ করে। YARN এর ResourceManager, Scheduler, এবং NodeManager যৌথভাবে রিসোর্স ম্যানেজমেন্ট, কাজের সিডিউলিং এবং কার্যকরী MapReduce টাস্ক বরাদ্দে সহায়ক ভূমিকা পালন করে। এটি হাদুপের স্কেলেবিলিটি, পারফরম্যান্স এবং কার্যকারিতাকে বাড়িয়ে তোলে।
Read more