CentOS7单机和集群安装配置Zookeeper教程

下载

官网下载安装包“zookeeper-3.4.14.tar.gz:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/

单机

1.利用xftp复制到虚拟机服务器/usr/local,用tar zxvf命令解压;
2.创建日志和数据文件夹

mkdir -p /data/zookeeper/data
mkdir –p /data/zookeeper/log

3.zookeeper-x.x.x/conf目录下新建zoo.cfg,内容如下

touch  zoo.cfg
vim zoo.cfg
# 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.
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/log
# 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=10240
# 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

4.启动

cd  /usr/local/zookeeper-x.x.x/bin
./zkServer.sh  start

可用下面命令停止: 
sh zkServer.sh stop

集群

安装配置

三台机器

IP序号
192.168.230.1281
192.168.230.1292
192.168.230.1303

1.在每台机器安装目录的conf/zoo.cfg后面加入

server.1=192.168.230.128:2888:3888 
server.2=192.168.230.129:2888:3888
server.3=192.168.230.130:2888:3888

2.创建节点识别文件。128服务器里面内容1,129内容2,130内容3

cd  /data/zookeeper/data
touch  myid

3.启动。分别到3台服务器安装目录的bin下执行./zkServer.sh start

验证

# 128服务器
./bin/zkCli.sh -server 192.168.230.129
# 129服务器
./bin/zkCli.sh -server 192.168.230.130

参照下面命令,128服务器新建节点,可以看到129的节点是可以同步的

ls / ------- 查看znode
create /zk_test my_data ------- 创建znode
ls / ------- znode多了zk_test,
get /zk_test ------- 看到值为my_data
set /zk_test junk ------- 设置值为junk
get /zk_test ------- 看到值为junk
delete /zk_test ------- 删除znode

问题

启动正常,但查看状态则是失败,客户端也连不上

[root@localhost bin]# sh zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost bin]# sh zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
[root@localhost bin]# 
  • 原因一:集群误删data文件夹,里面的myid文件也被删掉了
  • 原因二:集群只启动一台机器,超过半数机器宕机,zookeeper会认为集群处于不可用状态。

解决

  • kill掉线程:./zkServer.sh stop,否则netstat -nap | grep 2181查看pid,并用kill -9 pid干掉线程;
  • 把version-2文件夹和zookeeper_server.pid文件删掉,log文件夹里面也干掉,把mypid恢复好;
  • 3台服务器都启动即可

参数说明

  • tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳,单位毫秒。
  • initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
  • syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
  • dataDir: Zookeeper 保存数据的目录
  • dataLogDir:Zookeeper保存日志的目录
  • clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
  • maxClientCnxns:最大客户端连接数
  • autopurge.snapRetainCount:数据目录里保存的快照数
  • autopurge.purgeInterval:删除快照的时间间隔,单位:小时

其他

  • 查看主从:./zkServer.sh status
  • 停止:./zkServer.sh stop
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值