二、zookeeper集群安装

2.1 ZK 集群的安装配置
–配置文件改名zoo.cfg
mvzoo_sample.cfg zoo.cfg
–zoo.cfg 最后添加
–server.1=node1:2888:3888
–server.2=node2:2888:3888
–server.3=node3:2888:3888
–server.4=hann1:2888:3888:observer
2.2 配置/etc/hosts,所有主机集群能够互相ping通
2.3 安装java-1.8.0-openjdk-devel
2.4 安装zookeeper
[root@node1 ~]# tar -zxf zookeeper-3.4.10.tar.gz
[root@node1 ~]# mv zookeeper-3.4.10 /usr/local/zookeeper
2.5 配置zookeeper
[root@node1 local]# cd /usr/local/zookeeper/conf
[root@node1 conf]# mv zoo_sample.cfg zoo.cfg
[root@node1 local]# chown -R root:root hadoop
[root@node1 local]# chown -R root:root zookeeper
[root@node1 zookeeper]# vim conf/zoo.cfg
server.1=node1:2888:3888 #在最后一行追加写入
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
server.4=node4:2888:3888:observer
配置完成后吧zookeeper拷贝到node2-4上去
[root@node1 local]# rsync -aSH /usr/local/zookeeper node2:/usr/local/
[root@node1 local]# rsync -aSH /usr/local/zookeeper node3:/usr/local/
[root@node1 local]# rsync -aSH /usr/local/zookeeper node4:/usr/local/
2.6 创建datadir指定的目录
–mkdir/tmp/zookeeper
[root@nn01 ~]# for i in node{2..4};do ssh $i mkdir /tmp/zookeeper ; done
2.7在目录下创建id 对应的主机名的myid文件
[root@node1 ~]# echo 1 >/tmp/zookeeper/myid
[root@node2 ~]# echo 2 >/tmp/zookeeper/myid
[root@node3 ~]# echo 3 >/tmp/zookeeper/myid
[root@node4 ~]# echo 4 >/tmp/zookeeper/myid
注: 关于myid文件:
–myid文件中只有一个数字
–注意,请确保每个server的myid文件中id数字不同
–server.id 中的id 与myid中的id 必须一致
–id的范围是1~255
2.8 启动集群,查看验证
注:要启动半数+1的服务器才能状态才为正常
[root@node4 zookeeper]# /usr/local/zookeeper/bin/zkServer.sh start
[root@node4 zookeeper]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
[root@node1 tmp]# /usr/local/zookeeper/bin/zkServer.sh start
[root@node2 zookeeper]# /usr/local/zookeeper/bin/zkServer.sh start
[root@node3 ~]# /usr/local/zookeeper/bin/zkServer.sh start
2.9 查看状态确定角色
[root@node1 tmp]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@node2 zookeeper]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@node3 ~]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@node4 zookeeper]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: observer
2.9 如果我们想在1个节点上查看zookeeper服务节节点的状态
[root@node4 zookeeper]# yum -y install telnet
[root@node4 zookeeper]# telnet node1 2181
Trying 192.168.0.11...
Connected to node1.
Escape character is '^]'.
ruok
imokConnection closed by foreign host.

[root@node4 zookeeper]# { echo ruok;sleep 0.2; } | telnet node2 2181
Trying 192.168.0.12...
Connected to node2.
Escape character is '^]'.
imokConnection closed by foreign host.
-------------------------------------------------
[root@node4 zookeeper]# { echo ruok;sleep 0.2; } | telnet node2 2181 |grep imok
Connection closed by foreign host.
imok
注:上述命令可以用来状态监控
下面这个命令可以查看状态
[root@node4 zookeeper]# { echo stat;sleep 0.2; } | telnet node2 2181
Trying 192.168.0.12...
Connected to node2.
Escape character is '^]'.
Zookeeper version: 3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
Clients:
/192.168.0.22:40058[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 4
Sent: 3
Connections: 1
Outstanding: 0
Zxid: 0x200000000
Mode: follower
Node count: 4
Connection closed by foreign host.
[root@node4 zookeeper]#
2.10 编写shell脚本查看zookeeper状态
[root@node4 zookeeper]# vim zkzt.sh
#!/bin/bash
function getstatus(){
  exec 9<>/dev/tcp/$1/2181 2>/dev/null
  echo stat >&9
  MODE=$(cat <&9 | grep -Po "(?<=Mode:).*")
  exec 9<&-
  echo ${MODE:-NULL}
}
for i in node{1..4};do
   echo -ne "${i}\t"
   getstatus ${i}
done
[root@node4 zookeeper]# sh zkzt.sh
node1 follower
node2 follower
node3 leader
node4 observer

 

posted @ 2021-09-09 16:42  落樰兂痕  阅读(39)  评论(0)    收藏  举报