前提条件

一台运行Ubuntu 20.04的服务器,且配置了一个root密码。

安装Java

Apache ZooKeeper用Java编写,因此您需要在系统中安装Java。您可以使用以下命令进行安装:
apt-get install default-jdk -y
安装Java之后,请使用以下命令验证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
接下来,您将需要创建ZooKeeper配置文件以独立模式设置ZooKeeper。您可以使用以下命令创建它:
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

为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守护程序以应用配置更改:
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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐