安装
https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/
各个配置项的含义:
tickTime:每个时钟周期的毫秒数。ZooKeeper使用一个内部时钟来跟踪时间,这个配置项定义了时钟周期的长度。
initLimit:初始同步阶段可以花费的时钟周期数。当ZooKeeper启动时,它会进行一次初始化同步,这个配置项定义了同步阶段可以花费的最大时钟周期数。
syncLimit:发送请求和接收确认之间可以经过的时钟周期数。当集群中的ZooKeeper服务器之间进行数据同步时,这个配置项定义了可以经过的最大时钟周期数。
dataDir:快照文件存储的目录路径。ZooKeeper会定期将其数据写入快照文件,以便在重启时恢复数据。
clientPort:客户端连接的端口号。ZooKeeper提供一个用于客户端连接的固定端口,可以通过该端口与ZooKeeper集群进行通信。
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/export/server/zookeeper/zkdata
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
xsync同步分发到其他服务
sudo /home/hadoop/bin/xsync /export/server/apache-zookeeper-3.5.7-bin
ln -s apache-zookeeper-3.5.7-bin zookeeper
sudo /home/hadoop/bin/xsync /export/server/zookeeper/bin/zk.sh
修改所有的服务id
安装步骤
# 上传到指定的目录
ls /export/server/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
# 修改配置文件
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改指定配置zoo.cfg
clientPort=2181
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/export/server/zookeeper/zkdata
dataLogDir=/export/server/zookeeper/zkdatalog
# 标识符(标识特定的服务器):主机名:心跳端口:数据端口
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
拷贝文件
scp -r /export/server/zookeeper node2:/export/server
scp -r /export/server/zookeeper node3:/export/server
修改每一台zookeeper的myid
# myid的内容数字是跟`server.数字`相对应的
# dataDir=/export/server/zookeeper/zkdata
cd /export/server/zookeeper/zkdata
vim myid
1
vim myid
2
vim myid
3
配置一键启动脚本
vim /export/server/zookeeper/bin/zk.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start"){
echo " =================== 启动zookeeper集群 ==================="
for host in node1 node2 node3
do
echo =============== $host ===============
ssh $host /export/server/zookeeper/bin/zkServer.sh start
done
}
;;
"stop"){
echo " =================== 关闭zookeeper集群 ==================="
for host in node1 node2 node3
do
echo =============== $host ===============
ssh $host /export/server/zookeeper/bin/zkServer.sh stop
done
}
;;
"status"){
echo " =================== 查看zookeeper集群状态 ==================="
for host in node1 node2 node3
do
echo =============== $host ===============
ssh $host /export/server/zookeeper/bin/zkServer.sh status
done
}
;;
esac
同步zk.sh
scp -r /export/server/zookeeper/bin/zk.sh node2:/export/server/zookeeper/bin
scp -r /export/server/zookeeper/bin/zk.sh node3:/export/server/zookeeper/bin
配置每一台path
vim /etc/profile
export ZOOKEEPER_HOME=/export/server/zookeeper
PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
测试是否成功
bin/zk.sh start
bin/zk.sh status
命令
bin/zkServer.sh start
bin/zkServer.sh stop
bin/zkServer.sh status
bin/zkCli.sh
ll /
quit