本文档采用3.4.13(stable)版本搭建,生产环境建议部署当前稳定版本。 zookeeper二进制包下载地址: http://archive.apache.org/dist/zookeeper/ 参考官方文档地址: http://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_systemReq
ZooKeeper 在 Java 中运行,版本 1.6 或更高版本(本文采用8版本)。它做为ZooKeeper服务器的运行基础环境。html
三个ZooKeeper服务器是总体的最小建议大小,建议部署在不一样的物理机器上。node
在Yahoo!,ZooKeeper一般部署在专用的RHEL盒子上,具备双核处理器,2GB RAM和80GB IDE硬盘。apache
为了生产环境的 ZooKeeper 服务的可靠性,咱们一般会部署多节点的 ZooKeeper 以确保服务的容错性。windows
准备三台测试服务器进行部署,分别添加进 hosts 文件bash
192.168.4.100 master 192.168.4.21 node 192.168.4.57 node1
添加同步时间的任务计划啊(三台机器都执行)服务器
yum install -y ntpdate echo "*/5 * * * * ntpdate time.windows.com" >> /var/spool/cron/root
注:搭建 Zookeeper 集群最好使用奇数个机器。例如,使用四台机器,ZooKeeper 只能处理单台机器的故障; 若是两台机器出现故障,其他两台机器不会占多数。可是,有了五台机器,ZooKeeper能够处理两台机器的故障,当有六台时也只能处理两台机器的故障。网络
冗余注意事项应包括环境的全部方面。若是有三台ZooKeeper服务器,但它们的网络电缆都插入同一个网络交换机,那么该交换机的故障将影响整个集群。测试
一、下载并解压二进制文件spa
[root@master ~]# tar zxf zookeeper-3.4.13.tar.gz
二、进入目录查看文件分布日志
三、进入配置文件目录
[root@master conf]# cp zoo_sample.cfg zoo.cfg
四、修改配置文件
[root@master conf]# cat zoo.cfg |grep -v ^$ |grep -v ^# tickTime=2000 initLimit=10 syncLimit=5 dataDir=/bigdata/zookeeper-3.4.13/data # 修改默认配置文件路径,不建议使用/tmp clientPort=2181 # 新增集群配置 server.id = host:port:port 地址,id值惟一,host地址对应的id值需与各节点data目录下myid一致 server.1=master:2888:3888 server.2=node:2888:3888 server.3=node1:2888:3888
五、编辑 bin/zkEnv.sh 设置日志目录(启动若是报错多从日志中寻找信息)
if [ "x${ZOO_LOG_DIR}" = "x" ] then ZOO_LOG_DIR="/bigdata/zookeeper-3.4.13/logs" fi
六、在data目录下建立myid文件,并写入指定id
myid文件由一行组成,只包含该机器id的文本。因此服务器1的myid将包含文本“1”而没有别的。id在总体中必须是惟一的,而且应该具备1到255之间的值。
[root@master zookeeper-3.4.13]# echo '1' >data/myid
七、将 zookeeper-3.4.13 文件传输到其余节点上
[root@master bigdata]# scp -r zookeeper-3.4.13 192.168.4.21:/bigdata/ [root@master bigdata]# scp -r zookeeper-3.4.13 192.168.4.57:/bigdata/
八、分别在节点上修改为对应myid
# node 节点 [root@node zookeeper-3.4.13]# echo '2' >data/myid # node1 节点 [root@node1 zookeeper-3.4.13]# echo '3' >data/myid
九、在各节点分别启动zookeeper
[root@node bin]# ./zkServer.sh start
十、查看各节点状态
[root@master bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /bigdata/zookeeper-3.4.13/bin/../conf/zoo.cfg Mode: follower [root@node bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /bigdata/zookeeper-3.4.13/bin/../conf/zoo.cfg Mode: leader [root@node1 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /bigdata/zookeeper-3.4.13/bin/../conf/zoo.cfg Mode: follower
在现有集群中三个节点的状况下,关闭两个节点后,第三个节点的状态会出现异常。
启动一个节点(两个节点)状态又能够恢复;主节点关闭后,会选举新的主节点,原主节点启动后会做为从节点。
十一、经过链接到主机来测试部署
在Java中,您能够运行如下命令来执行简单操做:
[root@master bin]# ./zkCli.sh -server master:2181