需先确认java环境可用,再完成解压、目录准备、配置修改、环境变量设置及服务启停全流程:验证java -version与$java_home,下载解压至/usr/local/zookeeper,创建data/log目录,修改zoo.cfg中datadir、datalogdir、clientport,配置zookeeper_home,启动后用zkserver.sh status和echo stat | nc localhost 2181验证。

在银河麒麟服务器操作系统上部署Zookeeper,需先确认Java环境可用,再完成解压、目录准备、配置修改、环境变量设置及服务启停全流程,缺一不可。
检查并安装Java运行环境
Zookeeper依赖JDK 8或11以上版本,未安装会导致后续所有命令报错“No such file or directory”或“JAVA_HOME not set”。
执行 java -version 查看是否已安装;若提示命令未找到,需先安装OpenJDK:
对于Kylin V10 SP3及更新版本,运行:dnf install java-11-openjdk-devel -y;若系统为SP2或旧版且yum源不可用,需手动上传JDK tar包并解压到/usr/local/jdk,再配置JAVA_HOME。
【必须验证】执行 echo $JAVA_HOME 和 java -version 两者均应返回有效路径与版本号,否则Zookeeper启动必定失败。
下载、解压并规划安装目录
推荐将Zookeeper安装至/usr/local/zookeeper,避免权限混乱和路径过长问题。
有网络时直接下载(以3.9.2为例):wget https://downloads.apache.org/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz。
无网络则上传压缩包至服务器任意目录(如/root),然后执行:tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz -C /usr/local/ → mv /usr/local/apache-zookeeper-3.9.2-bin /usr/local/zookeeper。
这一步操作起来很简单,直接把文件拖进去就行。但注意:不要解压到/home或普通用户目录下,否则zkServer.sh可能因权限不足无法写入日志。
初始化数据与日志目录
进入Zookeeper主目录:cd /usr/local/zookeeper。
创建两个必需子目录:mkdir -p data log。
其中data用于存储快照与myid(单机必设,集群每节点唯一),log用于存放事务日志——Zookeeper默认不自动创建这些目录,缺失会导致启动时抛出IOException: Unable to create data directory错误。
配置zoo.cfg核心参数
第一步:复制模板配置文件:cp conf/zoo_sample.cfg conf/zoo.cfg。
第二步:编辑conf/zoo.cfg,重点修改以下三行:
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
clientPort=2181
若部署单机模式,删掉所有以server.开头的行(如server.1=...),否则Zookeeper会尝试连接不存在的节点并超时卡死。
第三步:保存退出后,执行grep -E "^(dataDir|dataLogDir|clientPort)" conf/zoo.cfg确认修改已生效。
配置系统级环境变量
编辑全局配置:vim /etc/profile,在末尾添加:
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
立即生效:source /etc/profile。
验证:echo $ZOOKEEPER_HOME 应输出路径,zkServer.sh --version 应显示Zookeeper版本号。这步漏掉会导致后续所有zkServer.sh命令提示“command not found”。
启动并验证服务状态
方法一:前台启动(便于调试):/usr/local/zookeeper/bin/zkServer.sh start-foreground,观察控制台输出是否出现Started server和binding to port 0.0.0.0/0.0.0.0:2181。
方法二:后台启动:zkServer.sh start,几秒后执行zkServer.sh status,正常应返回Mode: standalone(单机)或Mode: leader/follower(集群)。
验证连通性:echo stat | nc localhost 2181,成功时会打印Zookeeper运行时统计信息;若返回空或Connection refused,说明服务未启动或端口被防火墙拦截。











