Cách thích hợp để cài đặt ZooKeeper trên Ubuntu 16.04 cho cả triển khai độc lập và đa nút là gì?


2

Đầu tiên, xin vui lòng coi tôi là một người mới hoàn thành Linux. Tất cả các công việc tôi đã trình bày ở đây được ghép lại với nhau từ nhiều nguồn khác nhau từ Internet.

Tôi đang cố gắng thiết lập dịch vụ ZooKeeper với các bước cài đặt cho các máy phát triển (chạy hệ điều hành khách Ubuntu trên VirtualBox) cũng có thể dễ dàng sử dụng trong kịch bản sản xuất (nghĩa là chỉ bằng cách sửa đổi tệp cấu hình). Đây là những bước tôi đã thực hiện, câu hỏi ở phía dưới.

Cài đặt Java:

sudo apt-get update
sudo apt-get install default-jre

Tạo một người dùng hệ thống vườn thú:

sudo adduser --system --no-create-home --disabled-password --disabled-login zookeeper

Sử dụng wget để tải về bản phát hành nhị phân:

wget "http://www-eu.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz"

Tạo các thư mục thích hợp:

sudo mkdir /opt/zookeeper
sudo mkdir /var/lib/zookeeper
sudo mkdir /var/lib/zookeeper/logs
sudo mkdir /var/run/zookeeper

Trích xuất kho lưu trữ tar:

sudo tar -xvzf zookeeper-3.4.10.tar.gz --directory /opt/zookeeper --strip-components 1

Chỉnh sửa cấu hình:

sudo cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
sudo nano /opt/zookeeper/conf/zoo.cfg

Thay đổi tùy chọn cấu hình dataDir thành dataDir = / var / lib / zookeeper

Chỉnh sửa tập lệnh môi trường:

sudo nano /opt/zookeeper/bin/zkEnv.sh

Thêm dòng này vào đầu tệp: Zoo_LOG_DIR = "/ var / lib / zookeeper / log"

Đảm bảo quyền:

sudo chown -R zookeeper:nogroup /opt/zookeeper
sudo chown -R zookeeper:nogroup /var/lib/zookeeper
sudo chown -R zookeeper:nogroup /var/run/zookeeper

Tạo một tệp dịch vụ systemd:

sudo nano /etc/systemd/system/zookeeper.service

Nội dung tệp:

[Unit]
Description=Apache ZooKeeper
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
PIDFile=/var/run/zookeeper/zookeeper.pid
User=zookeeper
Group=nogroup
ExecStart=/opt/zookeeper/bin/zkServer.sh start
ExecStop=/opt/zookeeper/bin/zkServer.sh stop
Restart=on-failure
SyslogIdentifier=zookeeper

[Install]
WantedBy=multi-user.target

Câu hỏi: Khi tôi bắt đầu dịch vụ bằng cách sử dụng "sudo systemctl start zookeeper", máy chủ sẽ khởi động và tắt ngay lập tức. Có điều gì sai trong thiết lập ở trên? Có những điều mà tôi có thể làm khác đi để cải thiện các bước này (ví dụ: từ quan điểm bảo mật)?

Tôi đã thử sử dụng "sudo apt-get install zookeeperd" và thấy một vài nhược điểm, một là vị trí thư mục khó hiểu và không theo ý thích của tôi, và hai, tôi thậm chí không thể kết nối với máy chủ từ một máy khác (hết thời gian kết nối) mặc dù máy chủ phản hồi với "imok" để kiểm tra telnet "ruok" cả trên localhost và từ máy từ xa (máy chủ chạy tốt nếu tôi gọi "./zkServer.sh bắt đầu" theo cách thủ công).

EDIT: Đây là đầu ra giao diện điều khiển khi tôi cố chạy dịch vụ:

$ sudo systemctl start zookeeper
$ sudo systemctl status zookeeper
● zookeeper.service - Apache Zookeeper
   Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Apr 11 06:47:42 Ubuntu64 systemd[1]: Started Apache Zookeeper.
Apr 11 06:47:42 Ubuntu64 zookeeper[1871]: ZooKeeper JMX enabled by default
Apr 11 06:47:42 Ubuntu64 zookeeper[1871]: Using config: /opt/zookeeper/conf/zoo.cfg
Apr 11 06:47:43 Ubuntu64 zookeeper[1871]: Starting zookeeper ... STARTED
Apr 11 06:47:43 Ubuntu64 zookeeper[1891]: ZooKeeper JMX enabled by default
Apr 11 06:47:43 Ubuntu64 zookeeper[1891]: Using config: /opt/zookeeper/conf/zoo.cfg
Apr 11 06:47:43 Ubuntu64 zookeeper[1891]: Stopping zookeeper ... STOPPED
$ sudo journalctl -u zookeeper.service
-- Logs begin at Rab 2018-04-11 06:45:32 WIB, end at Rab 2018-04-11 06:55:55 WIB. --
Apr 11 06:47:42 Ubuntu64 systemd[1]: Started Apache Zookeeper.
Apr 11 06:47:42 Ubuntu64 zookeeper[1871]: ZooKeeper JMX enabled by default
Apr 11 06:47:42 Ubuntu64 zookeeper[1871]: Using config: /opt/zookeeper/conf/zoo.cfg
Apr 11 06:47:43 Ubuntu64 zookeeper[1871]: Starting zookeeper ... STARTED
Apr 11 06:47:43 Ubuntu64 zookeeper[1891]: ZooKeeper JMX enabled by default
Apr 11 06:47:43 Ubuntu64 zookeeper[1891]: Using config: /opt/zookeeper/conf/zoo.cfg
Apr 11 06:47:43 Ubuntu64 zookeeper[1891]: Stopping zookeeper ... STOPPED
$

@ user68186 Cảm ơn bạn về journalctlmẹo này, tôi đã cập nhật câu hỏi của mình câu hỏi để bao gồm đầu ra giao diện điều khiển.
Greg

Câu trả lời:


1

Thay đổi tối thiểu này từ startđể start-foregroundcó thể đủ:

ExecStart=/opt/zookeeper/bin/zkServer.sh start-foreground


0

kiểm tra quyền cho dataDir (zoo.cfg), nếu người dùng không thể ghi vào thư mục đó, dịch vụ sẽ không bắt đầu


Bạn có thể chèn dòng cụ thể vào câu trả lời bạn muốn xem không?
Semo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.