1:准备三台服务器hadoop2、hadoop3、hadoop4。zookeeper集群部署最好是奇数个节点,目的是增加容错率(集群需要保证半数以上机器正常)和防止脑裂。
2:准备zookeeper压缩包,官网下载地址:http://mirror.bit.edu.cn/apache/zookeeper/
3:通过scp命令将压缩包上传到三台服务器
4:解压 tar -zxvf apache-zookeeper-3.5.8-bin -C /opt/module
5:将zookepper的conf的zoo_sample.cfg 重命名
mv zoo_sample.cfg zoo.cfg
6:编辑配置文件zoo.cfg
vi zoo.cfg
tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime
dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。
client:监听客户端连接的端口。
initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址;
C:Leader选举的端口;
D:Zookeeper服务器之间的通信端口。
7:创建myid,我们需要在/opt/module/zookeeper3.5.8/data目录下创建
touch myid
vi myid
#myid内容需要和zoo.cfg中对应,如在hadoop2服务器中创建myid的内容为0,在hadoop3服务器中创建myid的内容为1,在hadoop4服务器中创建myid的内容为2
8:zookeepr命令,在/opt/module/zookeeper3.5.8/bin路径下执行
#启动 ./zkServer.sh start
#关闭 ./zkServer.sh stop
#重启 ./zkServer.sh restart
#查看状态 ./zkServer.sh status
9:在三台机器上分别执行启动命令,然后查看状态
到此,zookeeper集群搭建完成。