欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > ZooKeeper集群指南-安装配置

ZooKeeper集群指南-安装配置

2025/9/26 15:52:47 来源:https://blog.csdn.net/sj1163739403/article/details/143708165  浏览:    关键词:ZooKeeper集群指南-安装配置

节点之间配置ssh免密,第一台节点配置完成后将目录scp到其他节点,除了5. 节点ID配置不同以外,其他都一致

1. 安装Java环境

# 安装OpenJDK 8
apt-get update
apt-get install openjdk-8-jdk -y

2. 下载并安装ZooKeeper

# 下载指定版本
cd /data
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz# 解压安装
tar -zxf apache-zookeeper-3.6.2-bin.tar.gz
mv apache-zookeeper-3.6.2-bin zookeeper# 创建必要目录
mkdir -p /data/zookeeper/data
mkdir -p /data/zookeeper/logs

3. 配置环境变量

创建环境变量配置文件

vim /etc/profile.d/zookeeper.sh

添加以下配置

# ZooKeeper Environment
export ZOOKEEPER_HOME=/data/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin# Java Environment
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin# ZooKeeper Security Configuration
export ZK_CLIENT_OPTS="-Djava.security.auth.login.config=/data/zookeeper/conf/zookeeper_jaas.conf"
export JVMFLAGS="-Djava.security.auth.login.config=/data/zookeeper/conf/zookeeper_jaas.conf"

使环境变量生效

source /etc/profile.d/zookeeper.sh

4. ZooKeeper配置

创建配置文件

vim /data/zookeeper/conf/zoo.cfg

添加以下配置内容

# 基础配置
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
admin.serverPort=8081# 监听配置
quorumListenOnAllIPs=true# 集群配置
server.1=172.24.77.10:2888:3888
server.2=172.24.77.11:2888:3888
server.3=172.24.77.12:2888:3888# 四字母命令配置
4lw.commands.whitelist=*# 自动清理配置
autopurge.snapRetainCount=3
autopurge.purgeInterval=1# 会话超时配置
maxSessionTimeout=60000
minSessionTimeout=4000# 安全认证配置
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

jaas配置

Server是zk之间加密通信用的,Client是kafka或者zkClient使用的。默认情况下,zk谁都可以连接查询数据

$ cat zookeeper_jaas.conf 
# 1. Server部分 - ZooKeeper服务器认证配置
Server {org.apache.zookeeper.server.auth.DigestLoginModule requireduser_super="super_password"    # super是用户名,super_password是密码user_kafka="kafka_password";   # kafka是用户名,kafka_password是密码
};
# 2. Client部分 - ZK客户端认证配置
Client {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="super"               # 使用Server中定义的super用户password="super_password";     # 必须匹配Server中user_super的密码
};

5. 节点ID配置

# 在每个节点的dataDir目录下创建myid文件
# 节点1
echo "1" > /data/zookeeper/data/myid# 节点2
echo "2" > /data/zookeeper/data/myid# 节点3
echo "3" > /data/zookeeper/data/myid

6. 配置说明

配置项说明默认值
tickTime基本时间单位(毫秒)2000
initLimit初始同步时限10
syncLimit同步时限5
clientPort客户端连接端口2181
admin.serverPort管理端口8081
server.X集群服务器配置-

7. 服务管理

# 启动服务
zkServer.sh start# 检查状态
zkServer.sh status# 停止服务
zkServer.sh stop# 重启服务
zkServer.sh restart

8. 验证安装

# 检查进程
ps aux | grep zookeeper# 检查端口
netstat -nlpt | grep -E '2181|2888|3888|8081'# 检查日志
tail -f /data/zookeeper/logs/zookeeper.log

9. ACL配置

# 1. 首先确保已正确配置JAAS并连接(前面已经定义,这里检查一下)
export JVMFLAGS="-Djava.security.auth.login.config=/data/zookeeper/conf/zookeeper_jaas.conf"
export ZK_CLIENT_OPTS="-Djava.security.auth.login.config=/data/zookeeper/conf/zookeeper_jaas.conf"# 2. 使用zkCli连接并认证
zkCli.sh -server localhost:2181# 3. 查看当前ACL
[zk: localhost:2181(CONNECTED) 0] getAcl /
'world,'anyone
: cdrwa# 4. 设置新的ACL (使用sasl方案)
[zk: localhost:2181(CONNECTED) 0] setAcl / sasl:super:cdrwa# 5. 验证ACL已修改
[zk: localhost:2181(CONNECTED) 0] getAcl /
'sasl,'super
: cdrwa

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词