Apache Storm একটি ডিসট্রিবিউটেড সিস্টেম, যেখানে Storm Cluster ব্যবহৃত হয় ডেটা প্রসেসিং পরিচালনা করতে। Storm Cluster হলো একাধিক সার্ভারের একটি সেট, যা একসাথে কাজ করে এবং ডিস্ট্রিবিউটেড ডেটা প্রসেসিং সিস্টেমে কাজের চাপ (load) ভাগ করে নেয়। Storm Cluster এর প্রধান উপাদানগুলো হল Nimbus, Supervisor, এবং Zookeeper। এগুলোর প্রতিটির নিজস্ব কার্যকারিতা রয়েছে, যা একসাথে Storm এর কাজকে সুষ্ঠু ও দক্ষ করে তোলে।
Nimbus
Nimbus হলো Storm Cluster এর ম্যানেজমেন্ট এবং কোঅর্ডিনেশন উপাদান। এটি Storm Cluster এর মূল কম্পোনেন্ট হিসেবে কাজ করে এবং ডিস্ট্রিবিউটেড প্রসেসিং সিস্টেমের জন্য সমস্ত দায়িত্ব পরিচালনা করে। Nimbus-এর কাজের মধ্যে রয়েছে:
- টপোলজি ব্যবস্থাপনা: Nimbus টপোলজি প্ল্যান (Topology Plan) তৈরি করে এবং এটি Storm Cluster এর মধ্যে বিতরণ করে। টপোলজি হলো Storm-এ ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত গঠন (Structure)।
- টাস্ক ম্যানেজমেন্ট: এটি নির্ধারণ করে কোন Supervisor নোডে কোন টাস্ক চালানো হবে। Nimbus কম্পিউটার ক্লাস্টারের অবস্থা নিরীক্ষণ করে এবং প্রয়োজন অনুযায়ী নতুন টাস্ক (Task) বরাদ্দ করে।
- ফেইলওভার পরিচালনা: যদি কোনো Supervisor নোডে সমস্যা হয়, তাহলে Nimbus সেটি সনাক্ত করে এবং অন্য Supervisor-এ কাজের পুনঃস্থাপন নিশ্চিত করে।
Nimbus সাধারণত একক নোডে চলে এবং সিস্টেমের পুরো ব্যবস্থাপনা কাজগুলো সমন্বয় করে।
Supervisor
Supervisor হলো Storm Cluster এর কাজ করার ইউনিট, যা মূলত কর্মী নোড হিসেবে কাজ করে। এটি নিম্নলিখিত কাজগুলো সম্পন্ন করে:
- টাস্ক এক্সিকিউশন: Supervisor নির্ধারিত টাস্কগুলি বাস্তবায়ন করে। একটি Supervisor এর অধীনে একাধিক Worker প্রক্রিয়া চলতে পারে, যেখানে প্রতিটি Worker টপোলজি অনুযায়ী ডেটা প্রসেসিং সম্পন্ন করে।
- টপোলজি হ্যান্ডলিং: Supervisor বিভিন্ন টপোলজি এবং তার কার্যকলাপ পরিচালনা করে এবং সেগুলি Nimbus থেকে পেয়ে শুরু করে।
- ফেলওভার: যদি Supervisor একটি টাস্ক বাস্তবায়ন করতে ব্যর্থ হয়, তাহলে এটি স্বয়ংক্রিয়ভাবে অন্য Supervisor নোডকে ব্যাকআপ হিসেবে চালু করতে পারে।
Storm Cluster এর মধ্যে একাধিক Supervisor থাকতে পারে, এবং এটি কম্পিউটার ক্লাস্টারের শক্তি এবং স্কেল বাড়াতে সাহায্য করে।
Zookeeper
Zookeeper হলো একটি সেন্ট্রাল স্যাভার (Central Server), যা Storm Cluster এর মধ্যে সমস্ত নোডের সমন্বয় রক্ষা করে এবং সিস্টেমের স্টেট (State) ট্র্যাক করে। Zookeeper-এর মূল ভূমিকা হলো:
- নোড সিঙ্ক্রোনাইজেশন: Zookeeper Storm Cluster এর সমস্ত নোডের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখে। এটি নোডের তথ্য যেমন কোন টাস্ক চলছে, কোন Supervisor বন্ধ বা চালু হয়েছে, এবং অন্যান্য স্টেট রক্ষণাবেক্ষণ করে।
- কনফিগারেশন ম্যানেজমেন্ট: Zookeeper Storm Cluster এর কনফিগারেশন সেটিংস পরিচালনা করে, এবং এটি Cluster এর মধ্যে সমস্ত সিস্টেম ডেটার সিঙ্ক্রোনাইজেশন নিশ্চিত করে।
- ফেলওভার সাপোর্ট: Zookeeper যদি কোনো নোড ব্যর্থ হয়ে যায়, তবে এটি ক্লাস্টার পুনঃস্থাপন বা কাজ পুনরায় শুরুর জন্য অন্যান্য নোডকে নির্দেশনা দেয়।
Zookeeper Storm-এ প্রধান সমন্বয়কারী হিসেবে কাজ করে এবং নিশ্চিত করে যে পুরো সিস্টেম সুসংগত এবং সমন্বিত থাকে।
Storm Cluster এর আর্কিটেকচার
Storm Cluster এর আর্কিটেকচারটি নিম্নলিখিতভাবে কাজ করে:
- Nimbus টপোলজি পরিকল্পনা করে এবং এটি Supervisor গুলোর মধ্যে বিতরণ করে। Supervisor-এ প্রতিটি Worker প্রক্রিয়া টাস্ক চালায়।
- Zookeeper ক্লাস্টারের সমন্বয় বজায় রাখে এবং সমস্ত নোডের অবস্থা ট্র্যাক করে।
- যদি কোনো Supervisor নোড ব্যর্থ হয়, Zookeeper এবং Nimbus তা সনাক্ত করে এবং পুনরায় কাজ শুরু করতে সাহায্য করে।
উপসংহার
Nimbus, Supervisor, এবং Zookeeper Storm Cluster এর তিনটি অত্যন্ত গুরুত্বপূর্ণ উপাদান, যা একত্রে Storm এর রিয়েল-টাইম ডেটা প্রসেসিং ক্ষমতাকে কার্যকরভাবে পরিচালনা করে। Nimbus সিস্টেমের ব্যবস্থাপনা করে, Supervisor টাস্কগুলি বাস্তবায়ন করে, এবং Zookeeper পুরো সিস্টেমের সিঙ্ক্রোনাইজেশন এবং স্টেট ট্র্যাক করে। Storm Cluster এই তিনটি উপাদানকে একত্রিত করে ডিস্ট্রিবিউটেড ডেটা প্রসেসিংয়ের কার্যকরী এবং স্কেলেবল সমাধান প্রদান করে।