Apache ZooKeeper হলো একটি ওপেন সোর্স সেন্ট্রালাইজড সার্ভিস, যা বিভিন্ন বিতরণকৃত অ্যাপ্লিকেশন এবং সিস্টেমের মধ্যে কনফিগারেশন, নাম নির্ধারণ, লকিং, এবং ডিস্ট্রিবিউটেড সমন্বয়ের জন্য ব্যবহৃত হয়। এটি একটি উচ্চ প্রাপ্যতা এবং উচ্চ পারফরম্যান্স নিশ্চিত করার জন্য ডিজাইন করা হয়েছে এবং এটি Hadoop এবং Apache Kafka-এর মতো বড় ডিস্ট্রিবিউটেড সিস্টেমে ব্যবহৃত হয়।
Apache ZooKeeper হলো একটি ওপেন-সোর্স ডিস্ট্রিবিউটেড কো-অর্ডিনেশন সার্ভিস, যা ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন এবং ডিস্ট্রিবিউটেড সিস্টেম এর জন্য ব্যবহৃত হয়। ZooKeeper মূলত বিভিন্ন ডিস্ট্রিবিউটেড সিস্টেমের মধ্যে সমন্বয় ও সংযোগ তৈরি করার জন্য তৈরি করা হয়েছে। এটি একটি হাই-অ্যাভেইলেবিলিটি এবং রিসিলিয়েন্ট সার্ভিস, যা ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনের মধ্যে নেম সার্ভিস, কনফিগারেশন ম্যানেজমেন্ট, এবং ডিস্ট্রিবিউটেড লক ম্যানেজমেন্ট সেবা প্রদান করে।
ZooKeeper মূলত একটি সেন্ট্রালাইজড সার্ভার হিসেবে কাজ করে, যা বিভিন্ন ডিস্ট্রিবিউটেড সার্ভারের মধ্যে ডেটার সমন্বয় ও পরিচালনা করে।
Apache ZooKeeper প্রথমে তৈরি করা হয়েছিল Yahoo! এর গবেষণা ল্যাবের একটি প্রজেক্ট হিসেবে। এর মূল লক্ষ্য ছিল ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনগুলির মধ্যে সমন্বয় তৈরি করা এবং সেগুলিকে আরও কার্যকর ও রেসিলিয়েন্ট করা। পরে, Apache Software Foundation ZooKeeper কে একটি ওপেন-সোর্স প্রজেক্ট হিসেবে গ্রহণ করে এবং ২০১০ সালে Apache ZooKeeper আনুষ্ঠানিকভাবে প্রকাশ করা হয়।
১. ZooKeeper সার্ভার সেটআপ করা
ZooKeeper সার্ভার সেটআপ করার জন্য প্রথমে Apache ZooKeeper ডাউনলোড করতে হবে। নিচের ধাপগুলোতে Ubuntu-তে ZooKeeper ইনস্টলেশন এবং কনফিগারেশন দেখানো হলো:
ধাপ ১: ZooKeeper ডাউনলোড করা
wget https://downloads.apache.org/zookeeper/stable/apache-zookeeper-3.7.0-bin.tar.gzধাপ ২: ZooKeeper আনজিপ করা
tar -xvf apache-zookeeper-3.7.0-bin.tar.gzধাপ ৩: ZooKeeper কনফিগারেশন করা
ZooKeeper ইনস্টল হওয়ার পর, zoo.cfg নামে একটি কনফিগারেশন ফাইল তৈরি করতে হবে। এই ফাইলটি ZooKeeper সার্ভারের জন্য প্রয়োজনীয় সেটিংস সংরক্ষণ করে।
cd apache-zookeeper-3.7.0-bin/conf cp zoo_sample.cfg zoo.cfgএরপর, zoo.cfg ফাইলের ভেতরে ZooKeeper সার্ভারের ডেটা ডিরেক্টরি এবং পোর্ট নাম্বার কনফিগার করা যাবে। উদাহরণস্বরূপ:
tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 initLimit=5 syncLimit=2ধাপ ৪: ZooKeeper সার্ভার চালু করা
ZooKeeper সার্ভার চালু করতে নিচের কমান্ডটি চালান:
bin/zkServer.sh startধাপ ৫: ZooKeeper ক্লায়েন্ট সংযোগ করা
ZooKeeper এর সাথে সংযোগ স্থাপন করতে ক্লায়েন্ট কমান্ড লাইন ইন্টারফেস ব্যবহার করা যায়:
bin/zkCli.sh -server 127.0.0.1:2181১. ZNode তৈরি করা
ZooKeeper-এ ডেটা ZNode আকারে সংরক্ষণ করা হয়। একটি ZNode তৈরি করতে নিচের মতো কমান্ড ব্যবহার করা যায়:
create /myapp "Hello ZooKeeper"এটি /myapp নামে একটি ZNode তৈরি করবে এবং তাতে "Hello ZooKeeper" ডেটা যোগ করবে।
২. ZNode পড়া
ZooKeeper এর ZNode পড়তে get কমান্ড ব্যবহার করা হয়:
get /myapp৩. ZNode আপডেট করা
ZNode এর ডেটা আপডেট করতে set কমান্ড ব্যবহার করা হয়:
set /myapp "Updated Data"৪. ZNode ডিলিট করা
ZNode ডিলিট করতে delete কমান্ড ব্যবহার করা হয়:
delete /myapp৫. Watchers সেট করা
ZooKeeper এর একটি বিশেষ ফিচার হলো Watchers, যা ZNode তে কোনো পরিবর্তন হলে ক্লায়েন্টকে নোটিফাই করে। একটি Watcher সেট করতে নিচের মতো কমান্ড ব্যবহার করা যায়:
get /myapp watchযখন /myapp এর ডেটা পরিবর্তিত হবে, তখন ক্লায়েন্টকে নোটিফাই করা হবে।
| বিষয় | ZooKeeper | etcd | Consul |
|---|---|---|---|
| ডেটা স্টোরেজ | ZNode (Tree-structure) | Key-Value Store | Key-Value Store |
| লিডার নির্বাচন | সমর্থিত | সমর্থিত | সমর্থিত |
| কনফিগারেশন ম্যানেজমেন্ট | সমর্থিত | সমর্থিত | সমর্থিত |
| নোটিফিকেশন | Watchers সমর্থিত | সমর্থিত | সমর্থিত |
| ক্লাস্টার সমর্থন | খুব ভালো | ভালো | ভালো |
| ব্যবহারযোগ্যতা | মাঝারি | সহজ | সহজ |
Apache ZooKeeper হলো একটি শক্তিশালী এবং নির্ভরযোগ্য কো-অর্ডিনেশন সার্ভিস, যা ডিস্ট্রিবিউটেড সিস্টেম এবং অ্যাপ্লিকেশনগুলোর মধ্যে সমন্বয় এবং ডেটা ম্যানেজমেন্ট সহজ করে। এর লিডার-ফলোয়ার আর্কিটেকচার এবং Watchers মেকানিজমের কারণে এটি বড় ডিস্ট্রিবিউটেড সিস্টেমগুলোর জন্য আদর্শ। যদিও এটি কিছুটা জটিল, একবার ঠিকভাবে কনফিগার করা হলে ZooKeeper সিস্টেমের কার্যকারিতা এবং ডেটা সুরক্ষা নিশ্চিত করে।
Apache ZooKeeper হলো একটি ওপেন সোর্স সেন্ট্রালাইজড সার্ভিস, যা বিভিন্ন বিতরণকৃত অ্যাপ্লিকেশন এবং সিস্টেমের মধ্যে কনফিগারেশন, নাম নির্ধারণ, লকিং, এবং ডিস্ট্রিবিউটেড সমন্বয়ের জন্য ব্যবহৃত হয়। এটি একটি উচ্চ প্রাপ্যতা এবং উচ্চ পারফরম্যান্স নিশ্চিত করার জন্য ডিজাইন করা হয়েছে এবং এটি Hadoop এবং Apache Kafka-এর মতো বড় ডিস্ট্রিবিউটেড সিস্টেমে ব্যবহৃত হয়।
Apache ZooKeeper হলো একটি ওপেন-সোর্স ডিস্ট্রিবিউটেড কো-অর্ডিনেশন সার্ভিস, যা ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন এবং ডিস্ট্রিবিউটেড সিস্টেম এর জন্য ব্যবহৃত হয়। ZooKeeper মূলত বিভিন্ন ডিস্ট্রিবিউটেড সিস্টেমের মধ্যে সমন্বয় ও সংযোগ তৈরি করার জন্য তৈরি করা হয়েছে। এটি একটি হাই-অ্যাভেইলেবিলিটি এবং রিসিলিয়েন্ট সার্ভিস, যা ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনের মধ্যে নেম সার্ভিস, কনফিগারেশন ম্যানেজমেন্ট, এবং ডিস্ট্রিবিউটেড লক ম্যানেজমেন্ট সেবা প্রদান করে।
ZooKeeper মূলত একটি সেন্ট্রালাইজড সার্ভার হিসেবে কাজ করে, যা বিভিন্ন ডিস্ট্রিবিউটেড সার্ভারের মধ্যে ডেটার সমন্বয় ও পরিচালনা করে।
Apache ZooKeeper প্রথমে তৈরি করা হয়েছিল Yahoo! এর গবেষণা ল্যাবের একটি প্রজেক্ট হিসেবে। এর মূল লক্ষ্য ছিল ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনগুলির মধ্যে সমন্বয় তৈরি করা এবং সেগুলিকে আরও কার্যকর ও রেসিলিয়েন্ট করা। পরে, Apache Software Foundation ZooKeeper কে একটি ওপেন-সোর্স প্রজেক্ট হিসেবে গ্রহণ করে এবং ২০১০ সালে Apache ZooKeeper আনুষ্ঠানিকভাবে প্রকাশ করা হয়।
১. ZooKeeper সার্ভার সেটআপ করা
ZooKeeper সার্ভার সেটআপ করার জন্য প্রথমে Apache ZooKeeper ডাউনলোড করতে হবে। নিচের ধাপগুলোতে Ubuntu-তে ZooKeeper ইনস্টলেশন এবং কনফিগারেশন দেখানো হলো:
ধাপ ১: ZooKeeper ডাউনলোড করা
wget https://downloads.apache.org/zookeeper/stable/apache-zookeeper-3.7.0-bin.tar.gzধাপ ২: ZooKeeper আনজিপ করা
tar -xvf apache-zookeeper-3.7.0-bin.tar.gzধাপ ৩: ZooKeeper কনফিগারেশন করা
ZooKeeper ইনস্টল হওয়ার পর, zoo.cfg নামে একটি কনফিগারেশন ফাইল তৈরি করতে হবে। এই ফাইলটি ZooKeeper সার্ভারের জন্য প্রয়োজনীয় সেটিংস সংরক্ষণ করে।
cd apache-zookeeper-3.7.0-bin/conf cp zoo_sample.cfg zoo.cfgএরপর, zoo.cfg ফাইলের ভেতরে ZooKeeper সার্ভারের ডেটা ডিরেক্টরি এবং পোর্ট নাম্বার কনফিগার করা যাবে। উদাহরণস্বরূপ:
tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 initLimit=5 syncLimit=2ধাপ ৪: ZooKeeper সার্ভার চালু করা
ZooKeeper সার্ভার চালু করতে নিচের কমান্ডটি চালান:
bin/zkServer.sh startধাপ ৫: ZooKeeper ক্লায়েন্ট সংযোগ করা
ZooKeeper এর সাথে সংযোগ স্থাপন করতে ক্লায়েন্ট কমান্ড লাইন ইন্টারফেস ব্যবহার করা যায়:
bin/zkCli.sh -server 127.0.0.1:2181১. ZNode তৈরি করা
ZooKeeper-এ ডেটা ZNode আকারে সংরক্ষণ করা হয়। একটি ZNode তৈরি করতে নিচের মতো কমান্ড ব্যবহার করা যায়:
create /myapp "Hello ZooKeeper"এটি /myapp নামে একটি ZNode তৈরি করবে এবং তাতে "Hello ZooKeeper" ডেটা যোগ করবে।
২. ZNode পড়া
ZooKeeper এর ZNode পড়তে get কমান্ড ব্যবহার করা হয়:
get /myapp৩. ZNode আপডেট করা
ZNode এর ডেটা আপডেট করতে set কমান্ড ব্যবহার করা হয়:
set /myapp "Updated Data"৪. ZNode ডিলিট করা
ZNode ডিলিট করতে delete কমান্ড ব্যবহার করা হয়:
delete /myapp৫. Watchers সেট করা
ZooKeeper এর একটি বিশেষ ফিচার হলো Watchers, যা ZNode তে কোনো পরিবর্তন হলে ক্লায়েন্টকে নোটিফাই করে। একটি Watcher সেট করতে নিচের মতো কমান্ড ব্যবহার করা যায়:
get /myapp watchযখন /myapp এর ডেটা পরিবর্তিত হবে, তখন ক্লায়েন্টকে নোটিফাই করা হবে।
| বিষয় | ZooKeeper | etcd | Consul |
|---|---|---|---|
| ডেটা স্টোরেজ | ZNode (Tree-structure) | Key-Value Store | Key-Value Store |
| লিডার নির্বাচন | সমর্থিত | সমর্থিত | সমর্থিত |
| কনফিগারেশন ম্যানেজমেন্ট | সমর্থিত | সমর্থিত | সমর্থিত |
| নোটিফিকেশন | Watchers সমর্থিত | সমর্থিত | সমর্থিত |
| ক্লাস্টার সমর্থন | খুব ভালো | ভালো | ভালো |
| ব্যবহারযোগ্যতা | মাঝারি | সহজ | সহজ |
Apache ZooKeeper হলো একটি শক্তিশালী এবং নির্ভরযোগ্য কো-অর্ডিনেশন সার্ভিস, যা ডিস্ট্রিবিউটেড সিস্টেম এবং অ্যাপ্লিকেশনগুলোর মধ্যে সমন্বয় এবং ডেটা ম্যানেজমেন্ট সহজ করে। এর লিডার-ফলোয়ার আর্কিটেকচার এবং Watchers মেকানিজমের কারণে এটি বড় ডিস্ট্রিবিউটেড সিস্টেমগুলোর জন্য আদর্শ। যদিও এটি কিছুটা জটিল, একবার ঠিকভাবে কনফিগার করা হলে ZooKeeper সিস্টেমের কার্যকারিতা এবং ডেটা সুরক্ষা নিশ্চিত করে।
আপনি আমাকে যেকোনো প্রশ্ন করতে পারেন, যেমনঃ
Are you sure to start over?