一千萬個為什麽

搜索

在Ubuntu 16.04上為獨立和多節點部署安裝ZooKeeper的正確方法是什麽?



首先,請將我視為一個完整的Linux新手。我在這裏展示的所有工作都是從互聯網的各種來源拼湊而成的。

我正在嘗試設置一個ZooKeeper服務,其中包含開發機器的安裝步驟(在VirtualBox上運行Ubuntu客戶機操作系統),這些服務也可以在生產場景中輕松使用(即僅通過修改配置文件)。這些是我采取的步驟,問題在底部。

安裝Java:

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

建立一個zookeeper系統用戶:

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

使用wget下載二進制版本:

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

創建適當的目錄:

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

解壓縮tar存檔:

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

編輯配置:

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

將dataDir配置選項更改為dataDir =/var/lib/zookeeper

編輯環境腳本:

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

將此行添加到文件的頂部:ZOO_LOG_DIR =“/ var/lib/zookeeper/logs”

確保權限:

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

創建systemd服務文件:

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

文件內容:

[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

題: 當我使用“sudo systemctl start zookeeper”啟動服務時,服務器啟動並立即關閉。上面的設置有什麽問題嗎?我是否可以通過不同的方式改進這些步驟(即從安全角度來看)?

我嘗試使用“sudo apt-get install zookeeperd”並發現了一些障礙,一個是目錄位置令人困惑而且不是我喜歡的,兩個,我無法從另一臺機器(連接超時)連接到服務器雖然服務器在localhost和遠程機器上以“imok”響應“ruok”telnet測試(如果我手動調用“./zkServer.sh start”,服務器運行正常)。

編輯: 這是我嘗試運行服務時的控制臺輸出:

$ 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
$

轉載註明原文: 在Ubuntu 16.04上為獨立和多節點部署安裝ZooKeeper的正確方法是什麽?

一共有 0 個回答: