Thứ năm, 03/01/2019 | 00:00 GMT+7

Cách cài đặt và cấu hình Apache ZooKeeper Cluster trên Ubuntu 18.04

Apache ZooKeeper là phần mềm open-souce cho phép điều phối phân tán linh hoạt và có độ tin cậy cao. Nó thường được sử dụng trong các hệ thống phân tán để quản lý thông tin cấu hình, dịch vụ đặt tên, đồng bộ hóa phân tán, túc số và trạng thái. Ngoài ra, các hệ thống phân tán dựa vào ZooKeeper để thực hiện đồng thuận, bầu cử lãnh đạo và quản lý group .

Trong hướng dẫn này, bạn sẽ cài đặt và cấu hình Apache ZooKeeper 3.4.13 trên Ubuntu 18.04. Để đạt được khả năng phục hồi và tính sẵn sàng cao, ZooKeeper dự định sẽ được nhân rộng trên một tập hợp các server , được gọi là một group . Đầu tiên, bạn sẽ tạo một cài đặt độc lập của một server ZooKeeper một nút và sau đó thêm các chi tiết để cài đặt một cụm nhiều nút. Việc cài đặt độc lập rất hữu ích trong môi trường phát triển và thử nghiệm, nhưng một cụm là giải pháp thiết thực nhất cho môi trường production .

Yêu cầu

Trước khi bắt đầu hướng dẫn cài đặt và cấu hình này, bạn cần những thứ sau:

  • Việc cài đặt độc lập cần một server Ubuntu 18.04 với tối thiểu 4GB RAM được cài đặt theo hướng dẫn cài đặt server ban đầu Ubuntu 18.04 , bao gồm cả user không phải root có quyền sudo và firewall . Bạn cần hai server bổ sung, được cài đặt theo các bước tương tự, cho cụm nhiều nút.
  • OpenJDK 8 được cài đặt trên server của bạn, vì ZooKeeper yêu cầu Java để chạy. Để thực hiện việc này, hãy làm theo bước “Cài đặt các version cụ thể của OpenJDK” từ hướng dẫn Cách cài đặt Java với `apt` trên Ubuntu 18.04 .

Vì ZooKeeper giữ dữ liệu trong bộ nhớ để đạt được thông lượng cao và độ trễ thấp, hệ thống production hoạt động tốt nhất với 8GB RAM. Lượng RAM thấp hơn có thể dẫn đến swap JVM, điều này có thể gây ra độ trễ server ZooKeeper. Độ trễ của server ZooKeeper cao có thể dẫn đến các vấn đề như hết thời gian chờ phiên ứng dụng client có tác động xấu đến chức năng hệ thống.

Bước 1 - Tạo user cho ZooKeeper

User chuyên dụng nên chạy các dịch vụ xử lý các truy cập qua mạng và sử dụng tài nguyên. Phương pháp này tạo ra sự tách biệt và kiểm soát sẽ cải thiện tính bảo mật và khả năng quản lý môi trường của bạn. Trong bước này, bạn sẽ tạo một user sudo không phải root, có tên là zk trong hướng dẫn này, để chạy dịch vụ ZooKeeper.

Trước tiên, hãy đăng nhập với quyền là user sudo không phải root mà bạn đã tạo trong yêu cầu .

ssh sammy@your_server_ip 

Tạo user sẽ chạy dịch vụ ZooKeeper:

  • sudo useradd zk -m

Chuyển cờ -m vào lệnh useradd sẽ tạo một folder chính cho user này. Thư mục chính cho zk sẽ là /home/ zk theo mặc định.

Đặt bash làm shell mặc định cho user zk :

  • sudo usermod --shell /bin/bash zk

Đặt password cho user này:

  • sudo passwd zk

Tiếp theo, bạn sẽ thêm user zk vào group sudo để nó có thể chạy các lệnh ở chế độ quyền :

  • usermod -aG sudo zk

Về mặt bảo mật, bạn nên cho phép truy cập SSH với càng ít user càng tốt. Đăng nhập từ xa với quyền sammy và sau đó sử dụng su để chuyển sang user mong muốn tạo ra một mức độ tách biệt giữa thông tin xác thực để truy cập hệ thống và các quy trình đang chạy. Bạn sẽ vô hiệu hóa quyền truy cập SSH cho cả user zkroot của bạn trong bước này.

Mở file sshd_config của bạn:

  • sudo nano /etc/ssh/sshd_config

Tìm dòng PermitRootLogin và đặt giá trị thành no để vô hiệu hóa quyền truy cập SSH cho user root :

/ etc / ssh / sshd_config
PermitRootLogin no 

Dưới giá trị PermitRootLogin , hãy thêm dòng DenyUsers và đặt giá trị như mọi user phải tắt quyền truy cập SSH:

/ etc / ssh / sshd_config
DenyUsers zk 

Lưu và thoát khỏi file , sau đó khởi động lại trình SSH để kích hoạt các thay đổi.

  • sudo systemctl restart sshd

Chuyển sang user zk :

  • su -l zk

Cờ -l gọi một shell đăng nhập sau khi chuyển đổi user . Một shell đăng nhập đặt lại các biến môi trường và cung cấp một khởi đầu rõ ràng cho user .

Nhập password tại dấu nhắc để xác thực user .

Đến đây bạn đã tạo, cấu hình và đăng nhập với quyền user zk , bạn sẽ tạo một folder để lưu trữ dữ liệu ZooKeeper của bạn .

Bước 2 - Tạo folder dữ liệu cho ZooKeeper

ZooKeeper duy trì tất cả dữ liệu cấu hình và trạng thái vào đĩa để nó có thể tồn tại sau khi khởi động lại. Trong bước này, bạn sẽ tạo một folder dữ liệu mà ZooKeeper sẽ sử dụng để đọc và ghi dữ liệu. Bạn có thể tạo folder dữ liệu trên hệ thống file local hoặc trên ổ đĩa lưu trữ từ xa. Hướng dẫn này sẽ tập trung vào việc tạo folder dữ liệu trên hệ thống file local của bạn.

Tạo một folder cho ZooKeeper để sử dụng:

  • sudo mkdir -p /data/zookeeper

Cấp quyền sở hữu user zk của bạn cho folder :

  • sudo chown zk:zk /data/zookeeper

chown thay đổi quyền sở hữu và group của folder /data/zookeeper để user zk , người thuộc group zk , sở hữu folder dữ liệu.

Bạn đã tạo và cấu hình thành công folder dữ liệu. Khi bạn chuyển sang cấu hình ZooKeeper, bạn sẽ chỉ định đường dẫn này làm folder dữ liệu mà ZooKeeper sẽ sử dụng để lưu trữ các file của nó.

Bước 3 - Download và extract ZooKeeper Binaries

Trong bước này, bạn sẽ download và extract thủ công các file binary ZooKeeper vào folder /opt . Bạn có thể sử dụng Công cụ đóng gói nâng cao, apt , để download ZooKeeper, nhưng nó có thể cài đặt version cũ hơn với các tính năng khác nhau. Việc cài đặt ZooKeeper theo cách thủ công sẽ cung cấp cho bạn toàn quyền kiểm soát để chọn version bạn muốn sử dụng.

Vì bạn đang download các file này theo cách thủ công, hãy bắt đầu bằng cách thay đổi sang folder /opt :

  • cd /opt

Từ máy local của bạn, chuyển đến trang download Apache . Trang này sẽ tự động cung cấp cho bạn gương gần bạn nhất để download nhanh nhất. Nhấp vào liên kết đến trang nhân bản được đề xuất, sau đó cuộn xuống và nhấp vào Zookeeper / để xem các bản phát hành có sẵn. Chọn version ZooKeeper mà bạn muốn cài đặt. Hướng dẫn này sẽ tập trung vào việc sử dụng 3.4.13 . Khi bạn chọn version , hãy nhấp chuột phải vào file binary kết thúc bằng .tar.gz và sao chép địa chỉ liên kết.

Từ server của bạn, sử dụng lệnh wget cùng với liên kết đã sao chép để download file binary ZooKeeper:

  • sudo wget http://apache.osuosl.org/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

Extract các file binary từ repository đã nén:

  • sudo tar -xvf zookeeper-3.4.13.tar.gz

Phần mở rộng .tar.gz đại diện cho sự kết hợp của đóng gói TAR theo sau là nén GNU zip (gzip). Bạn sẽ nhận thấy rằng bạn đã chuyển cờ -xvf cho lệnh để extract repository . Cờ x là viết tắt của chiết xuất, v cho phép chế độ tiết để hiển thị tiến trình extract và f cho phép chỉ định đầu vào, trong trường hợp của ta là zookeeper- 3.4.13 .tar.gz , trái ngược với STDIN.

Tiếp theo, cấp cho user zk quyền sở hữu các file binary được extract để nó có thể chạy các file thực thi. Bạn có thể thay đổi quyền sở hữu như vậy:

  • sudo chown zk:zk -R zookeeper-3.4.13

Tiếp theo, bạn sẽ cấu hình một softlink đảm bảo rằng folder ZooKeeper của bạn sẽ vẫn có liên quan qua các bản cập nhật. Bạn cũng có thể sử dụng các softlink để rút ngắn tên folder , điều này có thể làm giảm thời gian cài đặt các file cấu hình của bạn.

Tạo một softlink bằng lệnh ln .

  • sudo ln -s zookeeper-3.4.13 zookeeper

Thay đổi quyền sở hữu của liên kết đó thành zk:zk . Lưu ý bạn đã chuyển cờ -h để thay đổi quyền sở hữu của chính liên kết. Không chỉ định -h sẽ thay đổi quyền sở hữu đích của liên kết, điều mà bạn đã làm rõ ràng ở bước trước.

  • sudo chown -h zk:zk zookeeper

Với các softlink được tạo, các đường dẫn folder của bạn trong các cấu hình sẽ vẫn có liên quan và không thay đổi qua các lần nâng cấp trong tương lai. Đến đây bạn có thể cấu hình ZooKeeper.

Bước 4 - Cấu hình ZooKeeper

Đến đây bạn đã cài đặt môi trường của bạn , bạn đã sẵn sàng để cấu hình ZooKeeper.

Tệp cấu hình sẽ nằm trong folder /opt/zookeeper/conf . Thư mục này chứa file cấu hình mẫu đi kèm với bản phân phối ZooKeeper. Tệp mẫu này, có tên là zoo_sample.cfg , chứa các định nghĩa thông số cấu hình phổ biến nhất và giá trị mẫu cho các thông số này. Một số thông số phổ biến như sau:

  • tickTime : Đặt độ dài của dấu tích tính bằng mili giây. Tích tắc là một đơn vị thời gian được ZooKeeper sử dụng để đo độ dài giữa các nhịp tim. Thời gian chờ của phiên tối thiểu gấp đôi thời gian tickTime.
  • dataDir : Chỉ định folder được sử dụng để lưu trữ ảnh chụp nhanh của database trong bộ nhớ và log giao dịch để cập nhật. Bạn có thể chọn chỉ định một folder riêng cho log giao dịch.
  • clientPort : Cổng được sử dụng để lắng nghe các kết nối của client .
  • maxClientCnxns : Giới hạn số lượng kết nối client tối đa.

Tạo file cấu hình có tên là zoo.cfg tại /opt/zookeeper/conf zoo.cfg /opt/zookeeper/conf . Bạn có thể tạo và mở file bằng nano hoặc editor yêu thích của bạn :

  • nano /opt/zookeeper/conf/zoo.cfg

Thêm tập hợp các thuộc tính và giá trị sau vào file đó:

/opt/zookeeper/conf/zoo.cfg
tickTime=2000 dataDir=/data/zookeeper clientPort=2181 maxClientCnxns=60 

tickTime 2000 mili giây là khoảng thời gian được đề xuất giữa các nhịp tim. Khoảng thời gian ngắn hơn có thể dẫn đến chi phí hệ thống với các lợi ích hạn chế. Tham số dataDir trỏ đến đường dẫn được xác định bởi softlink mà bạn đã tạo trong phần trước. Thông thường, ZooKeeper sử dụng cổng 2181 để lắng nghe các kết nối của client . Trong hầu hết các tình huống, 60 kết nối client được phép là rất nhiều để phát triển và thử nghiệm.

Lưu file và thoát khỏi editor .

Bạn đã cấu hình ZooKeeper và sẵn sàng khởi động server .

Bước 5 - Khởi động ZooKeeper và kiểm tra cài đặt độc lập

Bạn đã cấu hình tất cả các thành phần cần thiết để chạy ZooKeeper. Trong bước này, bạn sẽ khởi động dịch vụ ZooKeeper và kiểm tra cấu hình của bạn bằng cách kết nối local với dịch vụ.

Điều hướng trở lại folder /opt/zookeeper .

  • cd /opt/zookeeper

Khởi động ZooKeeper bằng lệnh zkServer.sh .

  • bin/zkServer.sh start

Bạn sẽ thấy những điều sau trên kết quả chuẩn của bạn :

Output
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED

Kết nối với server ZooKeeper local bằng lệnh sau:

  • bin/zkCli.sh -server 127.0.0.1:2181

Bạn sẽ nhận được dấu nhắc có nhãn CONNECTED . Điều này xác nhận bạn đã cài đặt ZooKeeper local , độc lập thành công. Nếu bạn gặp lỗi, bạn cần xác minh cấu hình là chính xác.

Output
Connecting to 127.0.0.1:2181 ... ... [zk: 127.0.0.1:2181(CONNECTED) 0]

Nhập help trên dấu nhắc này để nhận danh sách các lệnh mà bạn có thể thực thi từ client . Đầu ra sẽ như sau:

Output
[zk: 127.0.0.1:2181(CONNECTED) 0] help ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port

Sau khi bạn đã thực hiện một số thử nghiệm, bạn sẽ đóng phiên khách hàng bằng lệnh quit trên dấu nhắc . Dịch vụ ZooKeeper sẽ tiếp tục chạy sau khi bạn đóng phiên khách. Tắt dịch vụ ZooKeeper, vì bạn sẽ cấu hình nó như một dịch vụ systemd trong bước tiếp theo:

  • bin/zkServer.sh stop

Đến đây bạn đã cài đặt, cấu hình và thử nghiệm một dịch vụ ZooKeeper độc lập. Cài đặt này hữu ích để làm quen với ZooKeeper, nhưng cũng hữu ích cho môi trường phát triển và thử nghiệm. Đến đây bạn đã biết cấu hình hoạt động, bạn sẽ cấu hình systemd để đơn giản hóa việc quản lý dịch vụ ZooKeeper của bạn.

Bước 6 - Tạo và sử dụng file đơn vị hệ thống

systemd , hệ thống và trình quản lý dịch vụ, là một hệ thống init được sử dụng để khởi động không gian user và quản lý các quy trình hệ thống sau khi khởi động. Bạn có thể tạo một daemon để khởi động và kiểm tra trạng thái của ZooKeeper bằng systemd .

Systemd Essentials là một tài nguyên giới thiệu tuyệt vời để tìm hiểu thêm về systemd và các thành phần cấu thành của nó.

Sử dụng trình soạn thảo để tạo ra một .service file có tên zk.service tại /etc/systemd/system/ .

  • sudo nano /etc/systemd/system/zk.service

Thêm các dòng sau vào file để xác định Dịch vụ ZooKeeper:

/etc/systemd/system/zk.service
[Unit] Description=Zookeeper Daemon Documentation=http://zookeeper.apache.org Requires=network.target After=network.target  [Service]     Type=forking WorkingDirectory=/opt/zookeeper User=zk Group=zk 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 

Phần Service trong cấu hình file đơn vị chỉ định folder làm việc, user mà dịch vụ sẽ chạy và các lệnh thực thi để bắt đầu, dừng và khởi động lại dịch vụ ZooKeeper. Để biết thêm thông tin về tất cả các tùy chọn cấu hình file đơn vị, bạn có thể đọc bài viết Hiểu Đơn vị Systemd và Tệp Đơn vị .

Lưu file và thoát khỏi editor .

Bây giờ cấu hình systemd của bạn đã sẵn sàng, bạn có thể bắt đầu dịch vụ:

  • sudo systemctl start zk

Khi bạn đã xác nhận file systemd của bạn có thể khởi động dịch vụ thành công, bạn sẽ cho phép dịch vụ bắt đầu khi server khởi động .

  • sudo systemctl enable zk

Đầu ra này xác nhận việc tạo softlink :

Output
Created symlink /etc/systemd/system/multi-user.target.wants/zk.service → /etc/systemd/system/zk.service.

Kiểm tra trạng thái của dịch vụ ZooKeeper bằng cách sử dụng:

  • sudo systemctl status zk

Dừng dịch vụ systemctl bằng systemctl .

  • sudo systemctl stop zk

Cuối cùng, để khởi động lại daemon, sử dụng lệnh sau:

  • sudo systemctl restart zk

Cơ chế systemd đang trở thành hệ thống init được lựa chọn trên nhiều bản phân phối Linux. Đến đây bạn đã cấu hình systemd để quản lý ZooKeeper, bạn có thể tận dụng mô hình init nhanh và linh hoạt này để bắt đầu, dừng và khởi động lại dịch vụ ZooKeeper.

Bước 7 - Cấu hình một cụm ZooKeeper nhiều nút

Mặc dù server ZooKeeper độc lập hữu ích cho việc phát triển và thử nghiệm, mọi môi trường production nên có một cụm đa nút được nhân rộng.

Các node trong cụm ZooKeeper hoạt động cùng nhau như một ứng dụng tạo thành một group túc số . Quorum đề cập đến số lượng nút tối thiểu cần phải đồng ý về một giao dịch trước khi nó được commit . Một túc số cần một số nút lẻ để nó có thể cài đặt đa số. Số lượng nút chẵn có thể dẫn đến hòa, nghĩa là các node sẽ không đạt được đa số hoặc đồng thuận.

Trong môi trường production , bạn nên chạy từng nút ZooKeeper trên một server riêng biệt. Điều này ngăn chặn gián đoạn dịch vụ do lỗi phần cứng server lưu trữ hoặc khởi động lại. Đây là một xem xét kiến trúc quan trọng và cần thiết để xây dựng một hệ thống phân tán có khả năng phục hồi và khả dụng cao.

Trong hướng dẫn này, bạn sẽ cài đặt và cấu hình ba nút trong số đại biểu để chứng minh cài đặt nhiều nút. Trước khi bạn cấu hình một cụm ba nút, bạn sẽ tạo ra hai server bổ sung có cùng cấu hình như cài đặt ZooKeeper độc lập của bạn. Đảm bảo rằng hai nút bổ sung đáp ứng các yêu cầu , sau đó làm theo các bước từ một đến sáu để cài đặt version ZooKeeper đang chạy.

Khi bạn đã làm theo các bước từ một đến sáu cho các node mới, hãy mở zoo.cfg trong editor trên mỗi nút.

  • sudo nano /opt/zookeeper/conf/zoo.cfg

Tất cả các node trong một group túc số cần cùng một file cấu hình. Trong file zoo.cfg của bạn trên mỗi nút trong số ba nút, hãy thêm các thông số và giá trị cấu hình bổ sung cho initLimit , syncLimit và các server trong túc số, ở cuối file .

/opt/zookeeper/conf/zoo.cfg
tickTime=2000 dataDir=/data/zookeeper clientPort=2181 maxClientCnxns=60 initLimit=10 syncLimit=5 server.1=your_zookeeper_node_1:2888:3888 server.2=your_zookeeper_node_2:2888:3888 server.3=your_zookeeper_node_3:2888:3888 

initLimit chỉ định thời gian mà giai đoạn đồng bộ hóa ban đầu có thể mất. Đây là thời gian mà mỗi nút trong group túc số cần kết nối với group trưởng. syncLimit chỉ định thời gian có thể trôi qua từ khi gửi yêu cầu đến khi nhận được xác nhận. Đây là thời gian tối đa các node có thể không đồng bộ với người dẫn đầu. Các node ZooKeeper sử dụng một cặp cổng,: :2888:3888 , cho các node theo dõi để kết nối với nút lãnh đạo và cho cuộc bầu cử lãnh đạo, tương ứng.

Khi bạn đã cập nhật file trên mỗi nút, bạn sẽ lưu và thoát khỏi editor .

Để hoàn thành cấu hình nhiều nút của bạn, bạn sẽ chỉ định một ID nút trên mỗi server . Để làm điều này, bạn sẽ tạo một file myid trên mỗi nút. Mỗi file sẽ chứa một số tương ứng với số server được chỉ định trong file cấu hình.

Trên your_zookeeper_node_1 , tạo file myid sẽ chỉ định ID nút:

  • sudo nano /data/zookeeper/myid

your_zookeeper_node_1 được xác định là máy server.1 , bạn sẽ nhập 1 để xác định ID nút. Sau khi thêm giá trị, file của bạn sẽ giống như sau:

your_zookeeper_node_1 /data/zookeeper/myid
1

Thực hiện các bước tương tự cho các node còn lại. Tệp myid trên mỗi nút phải như sau:

your_zookeeper_node_1 /data/zookeeper/myid
1
your_zookeeper_node_2 /data/zookeeper/myid
2
your_zookeeper_node_3 /data/zookeeper/myid
3

Đến đây bạn đã cấu hình một cụm ZooKeeper ba nút. Tiếp theo, bạn sẽ chạy cụm và kiểm tra cài đặt của bạn .

Bước 8 - Chạy và kiểm tra cài đặt đa nút

Với mỗi nút được cấu hình để hoạt động như một cụm, bạn đã sẵn sàng để bắt đầu một group túc số. Trong bước này, bạn sẽ bắt đầu số đại biểu trên mỗi nút và sau đó kiểm tra cụm của bạn bằng cách tạo dữ liệu mẫu trong ZooKeeper.

Để bắt đầu một nút đại biểu, trước tiên hãy thay đổi thành folder /opt/zookeeper trên mỗi nút:

  • cd /opt/zookeeper

Bắt đầu mỗi nút bằng lệnh sau:

  • java -cp zookeeper-3.4.13.jar:lib/log4j-1.2.17.jar:lib/slf4j-log4j12-1.7.25.jar:lib/slf4j-api-1.7.25.jar:conf org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo.cfg

Khi các node khởi động, bạn sẽ liên tục thấy một số lỗi kết nối, sau đó là giai đoạn chúng tham gia group túc số và bầu ra một nhà lãnh đạo trong số mình. Sau một vài giây khởi tạo, bạn có thể bắt đầu kiểm tra cài đặt của bạn .

Đăng nhập qua SSH vào your_zookeeper_node_3 với quyền là user không phải root mà bạn đã cấu hình trong yêu cầu :

  • ssh sammy@your_zookeeper_node_3

Sau khi đăng nhập, hãy chuyển sang user zk của bạn:

your_zookeeper_node_3 /data/zookeeper/myid
  • su -l zk

Nhập password cho user zk . Sau khi đăng nhập, hãy thay đổi folder thành /opt/zookeeper :

your_zookeeper_node_3 /data/zookeeper/myid
  • cd /opt/zookeeper

Đến đây bạn sẽ bắt đầu một ứng dụng client dòng lệnh ZooKeeper và kết nối với ZooKeeper trên your_zookeeper_node_1 :

your_zookeeper_node_3 /data/zookeeper/myid
  • bin/zkCli.sh -server your_zookeeper_node_1:2181

Trong cài đặt độc lập, cả client và server đều chạy trên cùng một server . Điều này cho phép bạn cài đặt kết nối client với server ZooKeeper bằng localhost . Vì client và server đang chạy trên các node khác nhau trong cụm nhiều nút của bạn, trong bước trước, bạn cần chỉ định địa chỉ IP của your_zookeeper_node_1 để kết nối với nó.

Bạn sẽ thấy dấu nhắc quen thuộc với nhãn CONNECTED , tương tự như những gì bạn đã thấy ở Bước 5.

Tiếp theo, bạn sẽ tạo, liệt kê và sau đó xóa một znode . Các znodes là những trừu tượng cơ bản trong ZooKeeper tương tự như các file và folder trên hệ thống file . ZooKeeper duy trì dữ liệu của nó trong một không gian tên phân cấp và znodes là các thanh ghi dữ liệu của không gian tên này.

Kiểm tra xem bạn có thể tạo, liệt kê và sau đó xóa thành công một znode là điều cần thiết để cài đặt rằng cụm ZooKeeper của bạn được cài đặt và cấu hình chính xác hay không.

Tạo một znode có tên là zk_znode_1 và liên kết chuỗi sample_data với nó.

  • create /zk_znode_1 sample_data

Bạn sẽ thấy kết quả sau khi được tạo:

Output
Created /zk_znode_1

Liệt kê znode mới được tạo:

  • ls /

Lấy dữ liệu được liên kết với nó:

  • get /zk_znode_1

ZooKeeper sẽ trả lời như vậy:

Output
[zk: your_zookeeper_node_1:2181(CONNECTED)] ls / [zk_znode_1, zookeeper] [zk: your_zookeeper_node_1:2181(CONNECTED)] get /zk_znode_1 sample_data cZxid = 0x100000002 ctime = Tue Nov 06 19:47:41 UTC 2018 mZxid = 0x100000002 mtime = Tue Nov 06 19:47:41 UTC 2018 pZxid = 0x100000002 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 11 numChildren = 0

Sản lượng khẳng định giá trị, sample_data , mà bạn gắn liền với zk_node_1 . ZooKeeper cũng cung cấp thêm thông tin về thời gian tạo, ctime và thời gian sửa đổi, mtime . ZooKeeper là một repodata đã được tạo version , vì vậy nó cũng cung cấp cho bạn metadata về version dữ liệu.

Xóa zk_znode_1 zk_znode_1:

  • delete /zk_znode_1

Trong bước này, bạn đã kiểm tra thành công kết nối giữa hai trong số các node ZooKeeper của bạn . Bạn cũng đã học cách quản lý znode cơ bản bằng cách tạo, liệt kê và xóa znode. Cấu hình đa nút của bạn đã hoàn tất và bạn đã sẵn sàng để bắt đầu sử dụng ZooKeeper.

Kết luận

Trong hướng dẫn này, bạn đã cấu hình và thử nghiệm cả môi trường ZooKeeper độc lập và nhiều nút. Như vậy, việc triển khai ZooKeeper đa nút của bạn đã sẵn sàng để sử dụng, bạn có thể xem lại tài liệu ZooKeeper chính thức để biết thêm thông tin và dự án.


Tags:

Các tin liên quan

Cách backup, nhập và di chuyển dữ liệu Apache Kafka của bạn trên Ubuntu 18.04
2018-12-20
Cách tạo chứng chỉ SSL tự ký cho Apache trong Debian 9
2018-09-07
Cách viết lại URL bằng mod_rewrite cho Apache trên Debian 9
2018-09-07
Cách cài đặt web server Apache trên Debian 9
2018-09-05
Cách bảo mật Apache bằng Let's Encrypt trên Debian 9
2018-09-05
Cách cài đặt Apache Tomcat 9 trên Debian 9
2018-09-05
Cách cài đặt Linux, Apache, MariaDB, PHP (LAMP) trên Debian 9
2018-09-04
Cách cài đặt web server Apache trên Ubuntu 18.04 [Quickstart]
2018-07-23
Cách di chuyển web root Apache đến vị trí mới trên Ubuntu 18.04
2018-07-11
Cách cài đặt Apache Tomcat 9 trên Ubuntu 18.04
2018-07-06