Zookeeper একটি ডিস্ট্রিবিউটেড কোঅর্ডিনেশন সার্ভিস যা ডিস্ট্রিবিউটেড সিস্টেমের মধ্যে সিঙ্ক্রোনাইজেশন, কনফিগারেশন ম্যানেজমেন্ট এবং নামিং সিস্টেম প্রভাইড করে। Zookeeper ক্লাস্টার তৈরি করা একটি অত্যন্ত গুরুত্বপূর্ণ পদক্ষেপ, কারণ এটি Zookeeper এর ক্ষমতা বৃদ্ধি করে এবং সিস্টেমের স্কেলেবিলিটি, রিলায়েবিলিটি এবং হাই অ্যাভেইলেবিলিটি নিশ্চিত করে। একটি Zookeeper ক্লাস্টার সাধারণত একাধিক সার্ভার (জনে যেগুলো নোড হিসেবে পরিচিত) নিয়ে গঠিত, এবং তারা একসাথে কাজ করে।
Zookeeper ক্লাস্টার কী?
Zookeeper ক্লাস্টার হল একাধিক Zookeeper সার্ভার (নোড) এর একটি গ্রুপ যা একসাথে কাজ করে এবং একে অপরের সাথে সিঙ্ক্রোনাইজড থাকে। Zookeeper ক্লাস্টার সাধারণত একটি উচ্চ উপলভ্য (high availability) এবং ডিস্ট্রিবিউটেড সিস্টেম তৈরি করতে ব্যবহৃত হয়। ক্লাস্টারের প্রতিটি নোড Zookeeper সার্ভিস প্রদান করে এবং একে অপরের সাথে উপস্থিতি এবং সিঙ্ক্রোনাইজেশন বজায় রাখে। এর মধ্যে একটি leader-election প্রক্রিয়া থাকে, যেখানে একটিতে প্রধান (leader) সার্ভার হিসেবে কাজ করে এবং অন্যগুলো follower হিসেবে থাকে।
Zookeeper ক্লাস্টার তৈরি করার ধাপ
Zookeeper ক্লাস্টার তৈরি করার জন্য কিছু নির্দিষ্ট ধাপ অনুসরণ করতে হয়। নিচে Zookeeper ক্লাস্টার সেটআপ করার প্রক্রিয়া বিস্তারিতভাবে উল্লেখ করা হলো:
1. প্রাথমিক প্রস্তুতি
Zookeeper ক্লাস্টার সেটআপ করার জন্য প্রথমে নিচের বিষয়গুলো নিশ্চিত করতে হবে:
- Java: Zookeeper Java-ভিত্তিক একটি অ্যাপ্লিকেশন, তাই আপনার সিস্টেমে Java ইনস্টল থাকতে হবে। আপনি
java -versionকমান্ড দিয়ে Java ইনস্টলেশন চেক করতে পারেন। - Zookeeper সফটওয়্যার ডাউনলোড: Zookeeper এর সর্বশেষ সংস্করণ Zookeeper অফিসিয়াল সাইট থেকে ডাউনলোড করুন।
2. Zookeeper কনফিগারেশন ফাইল তৈরি করা
Zookeeper ক্লাস্টার তৈরি করতে হলে, প্রতিটি সার্ভারের জন্য কনফিগারেশন ফাইল তৈরি করতে হবে। Zookeeper কনফিগারেশন ফাইলটি zoo.cfg নামে পরিচিত এবং এটি Zookeeper সার্ভারের সেটিংস এবং ক্লাস্টারের পারামিটার সংরক্ষণ করে।
কনফিগারেশন ফাইলের উদাহরণ (zoo.cfg):
# Zookeeper ক্লাস্টারের জন্য পোর্ট এবং অন্যান্য কনফিগারেশন সেটিংস
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
# সার্ভারগুলোর আইডি এবং তাদের আইপি অ্যাড্রেস
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
এখানে,
- tickTime: Zookeeper এর ক্লাস্টারের মধ্যে নোডগুলোর মধ্যে যোগাযোগের জন্য সময়কাল।
- dataDir: Zookeeper এর ডেটা সংরক্ষণের জন্য ডিরেক্টরি।
- clientPort: ক্লায়েন্টের জন্য Zookeeper সার্ভার পোর্ট।
- initLimit এবং syncLimit: ক্লাস্টারের মধ্যে নোডের প্রাথমিক সংযোগ এবং সিঙ্ক্রোনাইজেশন সময়।
- server.x: এখানে x হল সার্ভারের আইডি এবং আইপি অ্যাড্রেস বা হোস্টনেম যা ক্লাস্টারের সদস্যদের নির্ধারণ করে।
3. Zookeeper ক্লাস্টারে নোডের আইডি সেট করা
প্রতিটি Zookeeper সার্ভারের একটি ইউনিক আইডেন্টিফায়ার (ID) থাকতে হবে, যা তাদের ক্লাস্টারে সনাক্ত করতে সাহায্য করে। প্রতিটি সার্ভারের জন্য একটি ফাইল তৈরি করতে হবে যাতে তার সার্ভার আইডি থাকে। এই ফাইলের নাম হবে myid এবং এটি dataDir ডিরেক্টরির মধ্যে রাখতে হবে।
উদাহরণ:
- সার্ভার 1 (myid 1):
/var/lib/zookeeper/myidফাইলে1লিখুন। - সার্ভার 2 (myid 2):
/var/lib/zookeeper/myidফাইলে2লিখুন। - সার্ভার 3 (myid 3):
/var/lib/zookeeper/myidফাইলে3লিখুন।
4. Zookeeper সার্ভার শুরু করা
এখন যে সমস্ত সার্ভার প্রস্তুত আছে, তাদের শুরু করতে হবে। প্রতিটি সার্ভারের উপর Zookeeper সার্ভিস চালু করতে নিম্নলিখিত কমান্ড ব্যবহার করুন:
zkServer.sh start
এটি সার্ভারকে শুরু করবে এবং সার্ভারের লগ ফাইল চেক করার জন্য আপনি zkServer.sh status কমান্ড ব্যবহার করতে পারেন।
5. Leader Election এবং ক্লাস্টার সিঙ্ক্রোনাইজেশন
Zookeeper ক্লাস্টারের মধ্যে Leader Election প্রক্রিয়া শুরু হয় যখন সার্ভিসগুলি চালু হয়। এই প্রক্রিয়া ক্লাস্টারে একটি নেতা (Leader) নির্বাচন করে, যেটি সমস্ত লেখার অপারেশন পরিচালনা করবে, এবং অন্যান্য সার্ভার Follower হিসেবে কাজ করবে। Zookeeper ক্লাস্টারের মধ্যে Leader এবং Follower-এর সিঙ্ক্রোনাইজেশন স্বয়ংক্রিয়ভাবে সম্পন্ন হয়, এবং এটি নিশ্চিত করে যে সিস্টেমের কোনো একটি অংশে ব্যর্থতা ঘটলেও, সার্ভিস চালু থাকে।
6. Zookeeper ক্লাস্টার মনিটরিং
Zookeeper ক্লাস্টারের স্বাস্থ্য এবং কার্যক্ষমতা পর্যবেক্ষণ করতে zkCli.sh (Zookeeper CLI) ব্যবহার করা যেতে পারে। Zookeeper CLI এর মাধ্যমে আপনি ক্লাস্টারের অবস্থা চেক করতে পারেন, যেমন ক্লাস্টারের নোড, লিডার, সিঙ্ক্রোনাইজেশন ইত্যাদি।
উদাহরণ:
zkCli.sh
এর পরে, আপনি stat কমান্ড ব্যবহার করে ক্লাস্টারের স্টেট দেখতে পারেন:
stat /zookeeper
এটি ক্লাস্টারের লিডার এবং ফলোয়ারের অবস্থা প্রদর্শন করবে।
7. Zookeeper ক্লাস্টারের ফেইলওভার সমর্থন
Zookeeper ক্লাস্টারে ফেইলওভার সমর্থন রয়েছে। যদি কোনো ফলোয়ার নোড ব্যর্থ হয়, তবে অন্য ফলোয়ার নোড দ্রুত লিডার হিসেবে দায়িত্ব গ্রহণ করবে এবং সিস্টেমের কার্যক্রম অব্যাহত রাখবে।
সারাংশ
Zookeeper ক্লাস্টার তৈরি করা একটি গুরুত্বপূর্ণ প্রক্রিয়া যা ডিস্ট্রিবিউটেড সিস্টেমের মধ্যে সিঙ্ক্রোনাইজেশন এবং কোঅর্ডিনেশন কার্যকরীভাবে পরিচালনা করতে সাহায্য করে। ক্লাস্টার সেটআপ করতে হলে Zookeeper সার্ভারের কনফিগারেশন, server.x আইডি, এবং myid ফাইল তৈরি করতে হয়, যা সার্ভারের মধ্যে সঠিক সিঙ্ক্রোনাইজেশন এবং নেতা নির্বাচন নিশ্চিত করে। Zookeeper ক্লাস্টার ব্যবহার করলে সিস্টেমের নির্ভরযোগ্যতা, স্কেলেবিলিটি এবং রিলায়েবিলিটি বৃদ্ধি পায়।
Read more