Cách cài đặt Apache ZooKeeper trên Ubuntu 20.04

theanh

Administrator
Nhân viên
ZooKeeper là một dự án phần mềm của Apache Software Foundation cung cấp dịch vụ dữ liệu chia sẻ hiệu suất cao được sử dụng để xây dựng các ứng dụng phân tán. Nó được sử dụng bởi một cụm để duy trì dữ liệu chia sẻ với các kỹ thuật đồng bộ hóa mạnh mẽ. Nó cung cấp một giao diện đơn giản để quản lý thông tin cấu hình, đặt tên, đồng bộ hóa phân tán và cung cấp các dịch vụ nhóm.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Apache ZooKeeper trên máy chủ Ubuntu 20.04.

Điều kiện tiên quyết​

  • Một máy chủ chạy Ubuntu 20.04.
  • Một mật khẩu gốc được cấu hình cho máy chủ.

Cài đặt Java​

Apache ZooKeeper được viết bằng Java nên bạn sẽ cần cài đặt Java vào hệ thống của mình. Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get install default-jdk -y
Sau khi cài đặt Java, hãy xác minh phiên bản Java đã cài đặt bằng lệnh sau:
Mã:
java --version
Bạn sẽ nhận được kết quả sau:
Mã:
openjdk 11.0.8 2020-07-14Môi trường chạy thời gian OpenJDK (bản dựng 11.0.8+10-post-Ubuntu-0ubuntu120.04)Máy ảo máy chủ OpenJDK 64-Bit (bản dựng 11.0.8+10-post-Ubuntu-0ubuntu120.04, chế độ hỗn hợp, chia sẻ)

Cài đặt Zookeeper​

Trước khi cài đặt Apache zookeeper, bạn sẽ cần tạo một người dùng mới cho zookeeper. Bạn có thể tạo nó bằng lệnh sau:
Mã:
useradd zookeeper -m
Tiếp theo, đặt mật khẩu cho người dùng này và thêm vào nhóm sudo bằng lệnh sau:
Mã:
usermod --shell /bin/bash zookeeper
passwd zookeeper
usermod -aG sudo zookeeper
Tiếp theo, tạo một thư mục dữ liệu cho zookeeper và thay đổi quyền sở hữu của thư mục này:
Mã:
mkdir /zookeeper
chown -R zookeeper:zookeeper /zookeeper
Tiếp theo, bạn sẽ cần tải xuống phiên bản mới nhất của zookeeper vào thư mục /opt. Bạn có thể tải xuống bằng lệnh sau:
Mã:
cd /opt
wget https://mirrors.estointernet.in/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
tar -xvzf apache-zookeeper-3.6.2-bin.tar.gz
Tiếp theo, đổi tên thư mục đã giải nén thành zookeeper bằng lệnh sau:
Mã:
mv apache-zookeeper-3.6.2-bin zookeeper
Tiếp theo, thay đổi quyền sở hữu của thư mục zookeeper bằng lệnh sau:
Mã:
chown -R zookeeper:zookeeper /opt/zookeeper

Cấu hình ZooKeeper ở chế độ độc lập​

Tiếp theo, bạn sẽ cần tạo tệp cấu hình ZooKeeper để thiết lập ZooKeeper ở chế độ độc lập. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /opt/zookeeper/conf/zoo.cfg
Thêm các dòng sau:
Mã:
tickTime=2500dataDir=/zookeeperclientPort=2181maxClientCnxns=80
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động dịch vụ ZooKeeper bằng lệnh sau:
Mã:
cd /opt/zookeeper
bin/zkServer.sh start
Bạn sẽ nhận được kết quả sau:
Mã:
ZooKeeper JMX được bật theo mặc địnhSử dụng cấu hình: /opt/zookeeper/bin/../conf/zoo.cfgĐang khởi động zookeeper ... ĐÃ BẮT ĐẦU
Theo mặc định, ZooKeeper đang lắng nghe trên cổng 2181. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
ss -ntpl | grep 2181
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
LISTEN 0 50 *:2181 *:* users:(("java",pid=12749,fd=53))
Bây giờ bạn có thể kết nối với máy chủ cục bộ ZooKeeper bằng lệnh sau:
Mã:
bin/zkCli.sh -server 127.0.0.1:2181
Sau khi kết nối, bạn sẽ nhận được kết quả đầu ra sau:
Mã:
WATCHER::WatchedEvent state:SyncConnected type:None path:null[zk: 127.0.0.1:2181(CONNECTED) 0]
Bây giờ, thoát khỏi phiên bằng lệnh sau:
Mã:
quit
Tiếp theo, dừng dịch vụ ZooKeeper bằng lệnh sau:
Mã:
bin/zkServer.sh stop
Bạn sẽ thấy kết quả sau:
Mã:
ZooKeeper JMX được bật theo mặc địnhSử dụng cấu hình: /opt/zookeeper/bin/../conf/zoo.cfgDừng zookeeper ... STOPPED

Tạo tệp dịch vụ Systemd cho ZooKeeper​

Tiếp theo, bạn sẽ cần tạo tệp dịch vụ systemd để quản lý dịch vụ ZooKeeper. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/systemd/system/zookeeper.service
Thêm các dòng sau:
Mã:
[Unit]Description=Zookeeper DaemonDocumentation=http://zookeeper.apache.orgRequires=network.targetAfter=network.target[Service]Type=forkingWorkingDirectory=/opt/zookeeperUser=zookeeperGroup=zookeeperExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfgExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfgExecReload=/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfgTimeoutSec=30Restart=on-failure[Install]WantedBy=default.target
Lưu và đóng tệp, sau đó tải lại daemon systemd để áp dụng cấu hình thay đổi:
Mã:
systemctl daemon-reload
Tiếp theo, thay đổi quyền sở hữu của thư mục ZooKeeper và dữ liệu bằng lệnh sau:
Mã:
chown -R zookeeper:zookeeper /opt/zookeeper
chown -R zookeeper:zookeeper /zookeeper
Tiếp theo, khởi động dịch vụ ZooKeeper và cho phép dịch vụ này khởi động khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start zookeeper
systemctl enable zookeeper
Bây giờ bạn có thể kiểm tra trạng thái của dịch vụ ZooKeeper bằng lệnh sau:
Mã:
systemctl status zookeeper
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? zookeeper.service - Zookeeper Daemon Đã tải: đã tải (/etc/systemd/system/zookeeper.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2020-09-27 06:43:28 UTC; 8 giây trước Tài liệu: http://zookeeper.apache.org Tiến trình: 13915 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS) PID chính: 13946 (java) Nhiệm vụ: 37 (giới hạn: 4691) Bộ nhớ: 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>27/09 06:43:27 ubuntu2004 systemd[1]: Đang khởi động Zookeeper Daemon...27/09 06:43:27 ubuntu2004 zkServer.sh[13915]: /usr/bin/java27/09 06:43:27 ubuntu2004 zkServer.sh[13915]: ZooKeeper JMX được bật theo mặc định27/09 06:43:27 ubuntu2004 zkServer.sh[13915]: Đang sử dụng config: /opt/zookeeper/conf/zoo.cfg27/09 06:43:28 ubuntu2004 zkServer.sh[13915]: Đang khởi động zookeeper ... ĐÃ BẮT ĐẦU27/09 06:43:28 ubuntu2004 systemd[1]: Đã khởi động Zookeeper Daemon.

Kết luận​

Xin chúc mừng! Bạn đã cài đặt và cấu hình thành công ZooKeeper trên máy chủ Ubuntu 20.04. Bây giờ bạn có thể dễ dàng xây dựng và triển khai ứng dụng phân tán với ZooKeeper.
 
Back
Bên trên