1、下载解压
2、配置环境变量:vi ~/.bashrc 或者 vi /etc/profile
[hadoopuser@Linux01 ~]$ vi ~/.bashrc
# zookeeper cdh5
export ZOOKEEPER_HOME=/home/hadoopuser/zookeeper-3.4.5-cdh5.6.0
export PATH=$PATH:$ZOOKEEPER_HOME/bin
[hadoopuser@Linux01 ~]$ source ~/.bashrc #生效
3、修改日志输出
[hadoopuser@Linux01 ~]$ vi $ZOOKEEPER_HOME/libexec/zkEnv.sh
#3.4.8非CDH版本的位置是:bin/zkEnv.sh
56行: 找到如下位置修改语句:ZOO_LOG_DIR="$ZOOKEEPER_HOME/logs"
4、修改配置文件
[hadoopuser@Linux01 ~]$ vi $ZOOKEEPER_HOME/conf/zoo.cfg
# zookeeper
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoopuser/zookeeper-3.4.5-cdh5.6.0/data
clientPort=2181
# cluster
server.1=Zookeeper-01:2888:3888
server.2=Zookeeper-02:2888:3888
server.3=Zookeeper-03:2888:3888
5、设置myid
(1)Zookeeper-01:
mkdir $ZOOKEEPER_HOME/data
echo 1 > $ZOOKEEPER_HOME/data/myid
(2)Zookeeper -02:
mkdir $ZOOKEEPER_HOME/data
echo 2 > $ZOOKEEPER_HOME/data/myid
(3)Zookeeper -03:
mkdir $ZOOKEEPER_HOME/data
echo 3 > $ZOOKEEPER_HOME/data/myid
6、各结点启动:
[hadoopuser@Linux01 ~]$ zkServer.sh start
7、验证
[hadoopuser@Linux01 ~]$ jps
3051 Jps
2829 QuorumPeerMain
8、状态
[hadoopuser@Linux01 ~]$ zkServer.sh status
JMX enabled by default
Using config: /home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/bin/../conf/zoo.cfg
Mode: follower
9、附录zoo.cfg各配置项说明
属性 |
意义 |
tickTime |
时间单元,心跳和最低会话超时时间为tickTime的两倍 |
dataDir |
数据存放位置,存放内存快照和事务更新日志 |
clientPort |
客户端访问端口 |
initLimit |
配 置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。 |
syncLimit |
这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 |
server.id=host:port:port server.A=B:C:D |
集群结点列表: A :是一个数字,表示这个是第几号服务器; B :是这个服务器的 ip 地址; C :表示的是这个服务器与集群中的 Leader 服务器交换信息的端口; D :表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。 |
10、常用命令
10.1 启动ZK服务: bin/zkServer.sh start 10.2 查看ZK服务状态: bin/zkServer.sh status 10.3 停止ZK服务: bin/zkServer.sh stop 10.4 重启ZK服务: bin/zkServer.sh restart 10.5 连接服务器: zkCli.sh -server 127.0.0.1:2181 10.6 查看根目录: ls / 10.7 创建 testnode节点,关联字符串"zz": create /zk/testnode "zz" 10.8 查看节点内容: get /zk/testnode 10.9 设置节点内容: set /zk/testnode abc 10.0 删除节点: delete /zk/testnode