yum安装zookeeper

本文详细介绍了在CentOS系统上安装Zookeeper的步骤,包括下载、配置、启动、停止、日志查看以及解决启动报错问题。同时,文章还提及了单机Zookeeper集群的设置方法,为读者提供了全面的Zookeeper部署指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

centos安装zookeeper

安装路径/usr/local/src/project

下载安装

zookeeper.3.6.3

以zookeeper.3.6.2版本为例

wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz

修改配置文件

[root@centos-linux1 apache-zookeeper-3.6.2]# tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
[root@centos-linux1 apache-zookeeper-3.6.2]# cd conf/
[root@centos-linux1 conf]# cp zoo_sample.cfg zoo.cfg
[root@centos-linux1 conf]# ll
total 16
-rw-rw-r--. 1 cancanliu cancanliu  535 Sep  4 20:43 configuration.xsl
-rw-rw-r--. 1 cancanliu cancanliu 3435 Sep  4 20:43 log4j.properties
-rw-r--r--. 1 root      root      1148 Feb  5 11:25 zoo.cfg
-rw-rw-r--. 1 cancanliu cancanliu 1148 Sep  4 20:43 zoo_sample.cfg
[root@centos-linux1 conf]# ll
dataDir=/usr/local/src/program/apache-zookeeper-3.6.2-bin/data
dataLogDir=/usr/local/src/program/apache-zookeeper-3.6.2-bin/logs

启动和停止

bin/zkServer.sh start

启动报错

ZooKeeper JMX enabled by default
Using config: /usr/local/src/program/apache-zookeeper-3.6.2/bin/../conf/zoo.cfg
Starting zookeeper ... FAILED TO START

查看日志

Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain

原因是需要安装编译好的二进制文件包,重新下载apache-zookeeper-3.6.2-bin.tar.gz包安装

重新启动

[root@centos-linux1 apache-zookeeper-3.6.2-bin]# bin/zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

停止和重启

bin/zkServer.sh stop

bin/zkServer.sh restart

验证

[root@centos-linux1 apache-zookeeper-3.6.2-bin]# bin/zkCli.sh -server localhost:2181
/usr/bin/java
Connecting to localhost:2181
2021-02-05 13:44:30,756 [myid:] - INFO  [main:Environment@98] - Client environment:zookeeper.version=3.6.2--803c7f1a12f85978cb049af5e4ef23bd8b688715, built on 09/04/2020 12:44 GMT
2021-02-05 13:44:30,758 [myid:] - INFO  [main:Environment@98] - Client environment:host.name=centos-linux1.shared
2021-02-05 13:44:30,758 [myid:] - INFO  [main:Environment@98] - Client environment:java.version=1.8.0_242
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:java.vendor=Oracle Corporation
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:java.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64/jre
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:java.class.path=/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../zookeeper-server/target/classes:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../build/classes:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../zookeeper-server/target/lib/*.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../build/lib/*.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/zookeeper-prometheus-metrics-3.6.2.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/zookeeper-jute-3.6.2.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/zookeeper-3.6.2.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/snappy-java-1.1.7.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/simpleclient_servlet-0.6.0.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/simpleclient_hotspot-0.6.0.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/simpleclient_common-0.6.0.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/simpleclient-0.6.0.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/netty-transport-native-unix-common-4.1.50.Final.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/netty-transport-native-epoll-4.1.50.Final.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/netty-transport-4.1.50.Final.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/netty-resolver-4.1.50.Final.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/netty-handler-4.1.50.Final.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/netty-common-4.1.50.Final.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/netty-codec-4.1.50.Final.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/netty-buffer-4.1.50.Final.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/metrics-core-3.2.5.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/log4j-1.2.17.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/json-simple-1.1.1.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jline-2.14.6.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jetty-util-9.4.24.v20191120.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jetty-servlet-9.4.24.v20191120.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jetty-server-9.4.24.v20191120.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jetty-security-9.4.24.v20191120.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jetty-io-9.4.24.v20191120.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jetty-http-9.4.24.v20191120.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jackson-databind-2.10.3.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jackson-core-2.10.3.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/jackson-annotations-2.10.3.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/commons-lang-2.6.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/commons-cli-1.2.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../zookeeper-*.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/local/src/program/apache-zookeeper-3.6.2-bin/bin/../conf:
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:java.io.tmpdir=/tmp
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:java.compiler=<NA>
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:os.name=Linux
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:os.arch=amd64
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:os.version=3.10.0-1127.el7.x86_64
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:user.name=root
2021-02-05 13:44:30,760 [myid:] - INFO  [main:Environment@98] - Client environment:user.home=/root
2021-02-05 13:44:30,761 [myid:] - INFO  [main:Environment@98] - Client environment:user.dir=/usr/local/src/program/apache-zookeeper-3.6.2-bin
2021-02-05 13:44:30,761 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.free=22MB
2021-02-05 13:44:30,761 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.max=228MB
2021-02-05 13:44:30,761 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.total=29MB
2021-02-05 13:44:30,764 [myid:] - INFO  [main:ZooKeeper@1006] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@379619aa
2021-02-05 13:44:30,766 [myid:] - INFO  [main:X509Util@77] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2021-02-05 13:44:30,770 [myid:] - INFO  [main:ClientCnxnSocket@239] - jute.maxbuffer value is 1048575 Bytes
2021-02-05 13:44:30,775 [myid:] - INFO  [main:ClientCnxn@1716] - zookeeper.request.timeout value is 0. feature enabled=false
2021-02-05 13:44:30,779 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1167] - Opening socket connection to server localhost/127.0.0.1:2181.
2021-02-05 13:44:30,779 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1169] - SASL config status: Will not attempt to authenticate using SASL (unknown error)
Welcome to ZooKeeper!
JLine support is enabled
2021-02-05 13:44:30,848 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@999] - Socket connection established, initiating session, client: /127.0.0.1:39740, server: localhost/127.0.0.1:2181
2021-02-05 13:44:30,876 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1433] - Session establishment complete on server localhost/127.0.0.1:2181, session id = 0x1000079c0270000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] 

单机zk集群

1.复制zookeeper根目录,创建zookeeper1,zookeeper2,zookeeper3

2.修改对应的zoo.cfg文件

dataDir=/usr/local/src/program/zookeeper3/data
dataLogDir=/usr/local/src/program/zookeeper3/logs
# the port at which the clients will connect
# 端口号修改
clientPort=2183
# 每个节点的zoo.cfg文件中都要添加节点server地址
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

3.分别启动每个节点

### 在服务器上安装和配置 Zookeeper 以支持 Kafka #### 环境准备 为了确保 Zookeeper 能够正常运行并支持 Kafka,需要先准备好 CentOS 操作系统的环境。这包括关闭防火墙和服务增强功能,设置主机名以及配置 `/etc/hosts` 文件以便于快速解析 IP 地址[^3]。 ```bash # 关闭防火墙 systemctl stop firewalld # 设置 SELinux 为宽松模式 setenforce 0 # 修改主机名 (以 zk01 为例) hostnamectl set-hostname zk01 # 编辑 /etc/hosts 文件 vim /etc/hosts ``` 在 `/etc/hosts` 中添加如下内容: ``` 192.168.88.70 zk01 192.168.88.80 zk02 192.168.88.90 zk03 ``` #### 安装 Java 开发环境 Zookeeper 和 Kafka 均基于 JVM 运行,因此需要提前安装 OpenJDK 或 Oracle JDK。以下是通过 Yum 安装 OpenJDK 的命令: ```bash yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel java -version ``` 确认 Java 版本是否正确安装完成。 #### 下载并解压 Zookeeper 从 Apache 官方网站下载最新稳定版的 Zookeeper 并将其解压至目标路径。以下是以版本 `zookeeper-3.5.7` 为例的操作步骤: ```bash cd /opt wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz mv apache-zookeeper-3.5.7-bin zookeeper ``` #### 配置 Zookeeper 进入 Zookeeper 解压后的目录,并创建必要的子目录结构。这些目录分别用于存储配置文件、数据文件和日志文件[^4]。 ```bash mkdir -p /mydata/zookeeper_kafka/master/conf mkdir -p /mydata/zookeeper_kafka/master/data mkdir -p /mydata/zookeeper_kafka/master/datalog mkdir -p /mydata/zookeeper_kafka/master/logs ``` 接着编辑 Zookeeper 的核心配置文件 `zoo.cfg`,该文件通常位于 `conf` 目录下[^2]。 ```bash cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg nano /opt/zookeeper/conf/zoo.cfg ``` 在 `zoo.cfg` 文件中修改或新增以下参数: ``` tickTime=2000 initLimit=10 syncLimit=5 dataDir=/mydata/zookeeper_kafka/master/data dataLogDir=/mydata/zookeeper_kafka/master/datalog clientPort=2181 server.1=zk01:2888:3888 server.2=zk02:2888:3888 server.3=zk03:2888:3888 ``` > **注意**: 如果仅部署单机测试环境,则可以省略 `server.x` 参数;但在生产环境中建议至少搭建三节点集群来提高可用性和可靠性。 最后,在每台机器的数据目录 (`/mydata/zookeeper_kafka/master/data`) 下新建一个名为 `myid` 的文件,并写入对应的 ID 号码(范围为 1 到 n)。例如对于 zk01 来说应执行下面这条指令[^3]: ```bash echo "1" > /mydata/zookeeper_kafka/master/data/myid ``` 重复以上操作直到所有计划参与集群组建的设备都完成了相应调整为止。 启动服务之前记得赋予脚本可执行权限: ```bash chmod +x /opt/zookeeper/bin/zkServer.sh ``` 现在可以通过以下方式开启 Zookeeper 服务进程: ```bash /opt/zookeeper/bin/zkServer.sh start ``` 验证状态: ```bash /opt/zookeeper/bin/zkServer.sh status ``` 当显示类似于 “Mode: follower” 或者 “Mode: leader”,则表明一切正常运转当中。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gzh-程序员灿灿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值