Hadoop একটি ডিস্ট্রিবিউটেড সিস্টেম, যার মধ্যে একাধিক মেশিন একসাথে কাজ করে একটি বৃহৎ ডেটাসেট প্রসেস করতে। Hadoop এর আর্কিটেকচার মূলত Master-Slave Architecture ভিত্তিক, যেখানে প্রধান দুটি ভূমিকা থাকে— Master Node এবং Slave Nodes। এই আর্কিটেকচারটি Hadoop এর কার্যকারিতা এবং দক্ষতাকে আরও বৃদ্ধি করে, যাতে বড় পরিমাণ ডেটা সহজে এবং দ্রুত প্রসেস করা যায়।
Master-Slave Architecture কী?
Master-Slave Architecture হলো একটি ডিজাইন প্যাটার্ন, যেখানে একটি Master Node বা নিয়ন্ত্রক নোড সমস্ত কার্যক্রম পরিচালনা করে এবং এক বা একাধিক Slave Nodes বা কর্মী নোড তার নির্দেশনা অনুযায়ী কাজ করে। Hadoop এর ক্ষেত্রে, Master Node ডেটা পরিচালনা এবং প্রসেসিং এর জন্য রিসোর্স নিয়ন্ত্রণ করে, এবং Slave Nodes ডেটা স্টোরেজ এবং ডেটা প্রসেসিং এর কাজ করে।
Hadoop এর Master-Slave Architecture এর উপাদান
Master Node
Master Node Hadoop ক্লাস্টারের কেন্দ্রীয় নিয়ন্ত্রক। এটি ডেটা পরিচালনা, কাজের বরাদ্দ, এবং ক্লাস্টারের বিভিন্ন রিসোর্স নিয়ন্ত্রণের কাজ করে। Hadoop এ মূলত তিনটি Master Node থাকে:
- NameNode
NameNode হলো Hadoop Distributed File System (HDFS) এর প্রধান নিয়ন্ত্রক। এটি ডেটা ব্লকগুলির অবস্থান এবং ডেটা স্টোরেজ ব্যবস্থাপনা পরিচালনা করে। - ResourceManager
ResourceManager YARN (Yet Another Resource Negotiator) এর প্রধান উপাদান, যা Hadoop ক্লাস্টারের রিসোর্স ব্যবস্থাপনা করে। এটি ক্লাস্টারে থাকা সমস্ত স্লেভ নোডে রিসোর্স বরাদ্দ এবং কাজ শিডিউলিং করে। - JobTracker (বিশেষভাবে পুরানো Hadoop সংস্করণে)
JobTracker হতো প্রধান উপাদান, যা MapReduce কাজ পরিচালনা করে, তবে নতুন YARN মডেলে এটি ResourceManager এর অধীনে চলে গেছে।
Slave Nodes
Slave Nodes কাজের বাস্তবায়নকারী নোড। এগুলি NameNode বা ResourceManager থেকে কাজ পান এবং সেগুলি সম্পন্ন করেন। Hadoop এর মধ্যে মূলত দুই ধরনের Slave Node থাকে:
- DataNode
DataNode হলো Hadoop এর HDFS সিস্টেমের অংশ, যা ডেটা স্টোর করে। DataNode ডেটার ব্লকগুলি রক্ষণাবেক্ষণ এবং ডেটার কপি তৈরি করার কাজ করে। - NodeManager
NodeManager হলো YARN এর অংশ, যা স্লেভ নোডের অবস্থান এবং রিসোর্স ব্যবস্থাপনা করে। এটি ResourceManager এর সাথে যোগাযোগ করে এবং কাজের জন্য নির্ধারিত রিসোর্স বাস্তবায়ন করে।
Hadoop Master-Slave Architecture এর কাজের প্রক্রিয়া
- ডেটা সংরক্ষণ (Data Storage):
NameNode ক্লাস্টারের প্রধান মেটাডেটা পরিচালনা করে এবং ডেটাকে DataNode এ ভাগ করে রাখে। যখন একটি ফাইল HDFS তে আপলোড করা হয়, তখন NameNode সেই ফাইলটি DataNode এ সঞ্চয় করার নির্দেশ দেয়। - ডেটা প্রসেসিং (Data Processing):
ResourceManager MapReduce বা অন্য কোনো টাস্ক শিডিউল করার সময়, এটি বিভিন্ন NodeManager বা স্লেভ নোডে কাজের বরাদ্দ করে। স্লেভ নোড কাজটি সম্পন্ন করে এবং ফলাফল Return করে। - ফল্ট টলারেন্স (Fault Tolerance):
Hadoop এর Master-Slave Architecture স্বয়ংক্রিয়ভাবে ডেটার কপি তৈরি করে (রিপ্লিকেশন) যাতে কোনো DataNode বা NodeManager ব্যর্থ হলে অন্য নোড থেকে ডেটা পুনরুদ্ধার করা যায়। - স্কেলেবিলিটি (Scalability):
সিস্টেমে নতুন Slave Node যুক্ত করা সহজ, যার মাধ্যমে সিস্টেমের ক্ষমতা বাড়ানো যায়। Master Node রিসোর্স বরাদ্দ ও কার্যক্রম পরিচালনা করতে থাকে, এবং নতুন স্লেভ নোডের জন্য কাজ বরাদ্দ করা হয়।
Hadoop Master-Slave Architecture এর সুবিধা
- বৃহৎ ডেটা পরিচালনা (Big Data Management):
Hadoop এর Master-Slave Architecture বড় আকারের ডেটা পরিচালনা করার জন্য উপযুক্ত, কারণ এটি ডেটা ভাগ করে এবং একাধিক নোডে প্রসেস করে। - ফল্ট টলারেন্স (Fault Tolerance):
ডেটার একাধিক কপি তৈরি করে হাদুপ, তাই কোনো একটি নোড ব্যর্থ হলেও সিস্টেম কাজ করে থাকে। - স্কেলেবিলিটি (Scalability):
সিস্টেমে নতুন স্লেভ নোড যুক্ত করা সহজ, ফলে সিস্টেমের সক্ষমতা বৃদ্ধি করা যায়। - দ্রুত ডেটা প্রসেসিং (Fast Data Processing):
একাধিক স্লেভ নোডে ডেটা প্রসেস করার ফলে দ্রুত ফলাফল পাওয়া যায়।
Hadoop এর Master-Slave Architecture নিশ্চিত করে যে, ডিস্ট্রিবিউটেড ক্লাস্টারে ডেটা কার্যকরভাবে সংরক্ষণ এবং প্রসেস করা সম্ভব, এবং এটি উচ্চ ক্ষমতাসম্পন্ন, স্কেলেবল এবং ফল্ট টলারেন্ট সিস্টেম প্রদান করে।
Read more