recent
أخبار ساخنة

شرح تثبيت Apache ZooKeeper على Ubuntu ... بالخطوات

الصفحة الرئيسية

شرح تثبيت Apache ZooKeeper على Ubuntu ... بالخطوات

 


ZooKeeper يوفر خدمة بيانات مشتركة (shared data service) عالية الأداء تستخدم لبناء distributed applications.

يتم استخدامه عن طريق الـ cluster للحفاظ على البيانات المشتركة مع تقنيات التزامن القوية.

يوفر واجهة بسيطة.


سنشرح هنا تثبيت Apache ZooKeeper على خادم Ubuntu 20.04.


المتطلبات الأساسية

خادم يعمل بنظام التشغيل Ubuntu 20.04.

إعداد  كلمة مرور الـ root  للخادم.


تثبيت Java


سنحتاج إلى تثبيت Java على النظام.

يمكنك تثبيتها بالأمر التالي:


apt-get install default-jdk -y


تحقق من إصدار Java المثبت بالأمر التالي:


java --version


يجب أن تحصل على النتيجة التالية:


openjdk 11.0.8 2020-07-14

OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)

OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)


تثبيت Zookeeper


قبل تثبيت Apache zookeeper ستحتاج إلى إنشاء مستخدم جديد لـ zookeeper. 

يمكنك إنشائه بالأمر التالي:


useradd zookeeper -m


قم بتعيين كلمة مرور لهذا المستخدم وأضفها إلى مجموعة sudo باستخدام الأمر التالي:


usermod --shell /bin/bash zookeeper

passwd zookeeper

usermod -aG sudo zookeeper


بعد ذلك ، قم بإنشاء مجلد بيانات لـ zookeeper وقم بتغيير ملكية هذا المجلد:


mkdir /zookeeper

chown -R zookeeper:zookeeper /zookeeper


قم بتحميل أحدث إصدار من zookeeper إلى المجلد / opt.

 يمكنك تحميله بالأمر التالي:


cd /opt

wget https://mirrors.estointernet.in/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz


قم بفك ضغط الملف الذي تم تنزيله باستخدام الأمر التالي:


tar -xvzf apache-zookeeper-3.6.2-bin.tar.gz


أعد تسمية المجلد المستخرج إلى zookeeper باستخدام الأمر التالي:


mv apache-zookeeper-3.6.2-bin zookeeper


قم بتغيير ملكية المجلد zookeeper باستخدام الأمر التالي:


chown -R zookeeper:zookeeper /opt/zookeeper


إعداد ZooKeeper في وضع Standalone


سنحتاج إلى إنشاء ملف إعداد ZooKeeper.

لإعداد ZooKeeper في الوضع standalone يمكنك إنشائه بالأمر التالي:


nano /opt/zookeeper/conf/zoo.cfg


أضف الأسطر التالية:


tickTime=2500

dataDir=/zookeeper

clientPort=2181

maxClientCnxns=80


احفظ وأغلق الملف.

ابدأ خدمة ZooKeeper بالأمر التالي:


cd /opt/zookeeper

bin/zkServer.sh start


يجب أن تحصل على النتيجة التالية:


ZooKeeper JMX enabled by default

Using config: /opt/zookeeper/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED


بشكل افتراضي ، يستمع ZooKeeper على المنفذ 2181.

يمكنك التحقق من ذلك باستخدام الأمر التالي:


ss -ntpl | grep 2181


يجب أن تحصل على النتيجة التالية:


LISTEN    0         50                       *:2181                   *:*        users:(("java",pid=12749,fd=53)) 


يمكنك الآن الاتصال بخادم ZooKeeper المحلي باستخدام الأمر التالي:


bin/zkCli.sh -server 127.0.0.1:2181


بمجرد الاتصال ، يجب أن تحصل على الإخراج التالي:


WATCHER::

WatchedEvent state:SyncConnected type:None path:null

[zk: 127.0.0.1:2181(CONNECTED) 0] 


الآن ، اخرج بالأمر التالي:


quit


أوقف خدمة ZooKeeper بالأمر التالي:


bin/zkServer.sh stop


يجب أن ترى النتيجة التالية:


ZooKeeper JMX enabled by default

Using config: /opt/zookeeper/bin/../conf/zoo.cfg

Stopping zookeeper ... STOPPED


إنشاء ملف خدمة Systemd لـ ZooKeeper


سنحتاج إلى إنشاء ملف خدمة systemd لإدارة خدمة ZooKeeper.

يمكنك إنشائه بالأمر التالي:


nano /etc/systemd/system/zookeeper.service


أضف الأسطر التالية:


[Unit]

Description=Zookeeper Daemon

Documentation=http://zookeeper.apache.org

Requires=network.target

After=network.target

[Service]    

Type=forking

WorkingDirectory=/opt/zookeeper

User=zookeeper

Group=zookeeper

ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg

ExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfg

ExecReload=/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg

TimeoutSec=30

Restart=on-failure

[Install]

WantedBy=default.target


احفظ وأغلق الملف.

أعد تحميل systemd daemon لتطبيق التغييرات:


systemctl daemon-reload


بعد ذلك ، قم بتغيير ملكية ZooKeeper ومجلد البيانات باستخدام الأمر التالي:


chown -R zookeeper:zookeeper /opt/zookeeper

chown -R zookeeper:zookeeper /zookeeper


ابدأ خدمة ZooKeeper وقم بتمكينها من البدء تلقائياً عند إعادة تشغيل النظام باستخدام الأمر التالي:


systemctl start zookeeper

systemctl enable zookeeper


يمكنك الآن التحقق من حالة خدمة ZooKeeper باستخدام الأمر التالي:


systemctl status zookeeper


يجب أن تحصل على النتيجة التالية:


? zookeeper.service - Zookeeper Daemon

     Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled)

     Active: active (running) since Sun 2020-09-27 06:43:28 UTC; 8s ago

       Docs: http://zookeeper.apache.org

    Process: 13915 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS)

   Main PID: 13946 (java)

      Tasks: 37 (limit: 4691)

     Memory: 50.6M

     CGroup: /system.slice/zookeeper.service

             ??13946 java -Dzookeeper.log.dir=/opt/zookeeper/bin/../logs -Dzookeeper.log.file=zookeeper-zookeeper-server-ubuntu2004.log -Dzook>

Sep 27 06:43:27 ubuntu2004 systemd[1]: Starting Zookeeper Daemon...

Sep 27 06:43:27 ubuntu2004 zkServer.sh[13915]: /usr/bin/java

Sep 27 06:43:27 ubuntu2004 zkServer.sh[13915]: ZooKeeper JMX enabled by default

Sep 27 06:43:27 ubuntu2004 zkServer.sh[13915]: Using config: /opt/zookeeper/conf/zoo.cfg

Sep 27 06:43:28 ubuntu2004 zkServer.sh[13915]: Starting zookeeper ... STARTED

Sep 27 06:43:28 ubuntu2004 systemd[1]: Started Zookeeper Daemon.

google-playkhamsatmostaqltradent