如何在 Ubuntu 18.04 LTS 上设置 Apache ZooKeeper 集群如何在 Ubuntu 18.04 LTS 上设置 Apache ZooKeeper 集群如何在 Ubuntu 18.04 LTS 上设置 Apache ZooKeeper 集群如何在 Ubuntu 18.04 LTS 上设置 Apache ZooKeeper 集群
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 18.04 LTS 上设置 Apache ZooKeeper 集群

本教程适用于这些操作系统版本

  • Ubuntu 20.04(Focal Fossa)
  • Ubuntu 18.04(仿生海狸)

在此页

  1. 要求
  2. 开始
  3. 安装Java
  4. 创建 ZooKeeper 用户
  5. 安装动物园管理员
  6. 配置动物园管理员
  7. 为 ZooKeeper 创建一个 Systemd 服务文件

Zookeeper 是一种集中式服务,用于管理配置信息、命名、分布式同步和提供作为开源软件发布的组服务。它是用 Java 语言编写的,使您可以专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。 ZooKeepers 架构通过冗余服务支持高可用性。 Zookeeper 使分布式进程能够通过数据寄存器的公共分层命名空间相互协调。 Zookeeper 还为其客户提供高吞吐量、高可用性、低延迟和对 Znode 的严格控制访问。 Zookeeper 专门用于存储状态信息、配置、位置信息等。 ZooKeeper 提供许多特性,如可靠的系统、简单的架构、快速处理、可扩展性等等。

在本教程中,我们将学习如何在 Ubuntu 18.04 上设置单节点 Apache ZooKeeper 集群。

要求

  • 一台运行 Ubuntu 18.04 的服务器。
  • 在您的服务器上设置了根密码。

入门

首先,您需要使用最新版本更新您的系统。您可以通过运行以下命令来执行此操作:

apt-get update -y
apt-get upgrade -y

系统更新后,重新启动系统以应用所有更改。

安装Java

Zookeeper 是用 Java 编写的。因此,您需要在系统中安装 Java。默认情况下,最新版本的 Java 在 Ubuntu 18.04 默认存储库中不可用。因此,使用以下命令添加 Java 存储库:

add-apt-repository ppa:linuxuprising/java

接下来,更新存储库并使用以下命令安装 Java:

apt-get update -y
apt-get install oracle-java11-set-default

安装 Java 后,您可以使用以下命令检查 Java 版本:

java --version

您应该看到以下输出:

java 11.0.2 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+7-LTS, mixed mode)

完成后,您可以继续下一步。

创建 ZooKeeper 用户

接下来,您需要创建一个 zookeeper 用户来运行 zookeeper 服务。

首先,使用以下命令创建一个 zookeeper 用户:

useradd zookeeper -m
usermod --shell /bin/bash zookeeper

接下来,使用以下命令设置密码:

passwd zookeeper

接下来,将 zookeeper 用户添加到 sudo 组,以便它可以在特权模式下运行命令:

usermod -aG sudo zookeeper

创建用户后,您可以安装 ZooKeeper。

安装 ZooKeeper

ZooKeeper 将所有配置和状态数据存储到磁盘。因此,您需要使用以下命令为 ZooKeeper 创建一个目录结构:

mkdir -p /data/zookeeper

接下来,使用以下命令为 /data 目录赋予适当的所有权:

chown -R zookeeper:zookeeper /data/zookeeper

接下来,将目录更改为 /opt 并使用以下命令下载最新版本的 ZooKeeper:

cd /opt
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

接下来,使用以下命令解压缩下载的文件:

tar -xvzf zookeeper-3.4.9.tar.gz

接下来,使用以下命令重命名提取的二进制文件:

mv zookeeper-3.4.9 zookeeper

接下来,使用以下命令将所有权授予 ZooKeeper 用户:

chown -R zookeeper:zookeeper /opt/zookeeper

配置 ZooKeeper

接下来,您需要为 ZooKeeper 创建一个配置文件。您可以使用以下命令执行此操作:

nano /opt/zookeeper/conf/zoo.cfg

添加以下行:

tickTime=2500
dataDir=/data/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 服务器:

bin/zkCli.sh -server 127.0.0.1:2181

成功连接后,您应该会看到以下输出:

[zk: 127.0.0.1:2181(CONNECTED) 1] 

现在,在提示符下键入 help,您应该会看到可以从客户端执行的命令列表。

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

现在,键入 quit 以退出连接的会话。

您可以使用以下命令停止 ZooKeeper:

bin/zkServer.sh stop

您应该看到以下输出:

ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

为 ZooKeeper 创建一个 Systemd 服务文件

接下来,您需要创建一个 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 守护进程,启动 ZooKeeper 服务并使用以下命令使其在引导时启动:

systemctl daemon-reload
systemctl start zookeeper
systemctl enable zookeeper

您可以使用以下命令检查 ZooKeeper 服务的状态:

systemctl status zookeeper

您应该看到以下输出:

? zookeeper.service - Zookeeper Daemon
   Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-03-06 15:03:01 UTC; 5s ago
     Docs: http://zookeeper.apache.org
  Process: 3909 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS)
 Main PID: 3926 (java)
    Tasks: 17 (limit: 1113)
   CGroup: /system.slice/zookeeper.service
           ??3926 java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/..

Mar 06 15:03:00 ubuntu1804 systemd[1]: Starting Zookeeper Daemon...
Mar 06 15:03:00 ubuntu1804 zkServer.sh[3909]: ZooKeeper JMX enabled by default
Mar 06 15:03:00 ubuntu1804 zkServer.sh[3909]: Using config: /opt/zookeeper/conf/zoo.cfg
Mar 06 15:03:01 ubuntu1804 zkServer.sh[3909]: Starting zookeeper ... STARTED
Mar 06 15:03:01 ubuntu1804 systemd[1]: Started Zookeeper Daemon.

恭喜!您已在 Ubuntu 18.04 服务器上成功安装和配置 ZooKeeper 单节点集群。您现在可以为生产部署多节点 ZooKeeper 集群。如果您有任何问题,请随时问我。

©2015-2025 艾丽卡 support@alaica.com