1. 下载源代码地址
官方网站:http://mirrors.cnnic.cn/apache/zookeeper/
本次搭建下载为3.4.6,最新为release版本
2. zookeeper集群种类
1、单节点方式:部署在一台机器上
2、单IP多借点:部署在同一IP,但是有多个节点,各有自己的端口
3、多IP多借点:部署在不同IP,各有自己的端口
3. 集群搭建(ubuntu)
1、单节点方式比较简单:
如果没有特殊需求,不需要修改配置文件,直接使用默认配置文件即可。
配置内容为:
命令行格式为:
bin/zkServer.sh start
查看是否成功运行:
bin/zkServer.sh status
成功运行输出为:
注意事项:
(1)bin/zkServer.sh start运行后端输出信息不能代表已经成功运行,必须使用bin/zkServer.sh status查看状态来进行测试才能确定。
启动成功与否,执行bin/zkServer.sh start之后,终端都会输出:
(2)端口的占用有可能导致失败,失败原因可以在zookeeper.out文件中找到:
举例:使用8080作为端口:
(3)重复启动,则终端输出:
(4)退出zookeeper
bin/zkServer.sh stop
2、单IP多节点
(1)修改配置文件:
拷贝多份zookeeper程序,例如设置三个server,分别创建目录server1、server2、server3,每个目录下存放一份zookeeper程序,并修改各自配置文件如下:
Server1
Server2:
Server3:
注意:
同一IP上搭建多个节点的集群时,必须要注意端口问题,端口必须不一致才行;
创建多个节点集群时,在dataDir目录下必须创建myid文件,myid文件用于zookeeper验证server序号等,myid文件只有一行,并且为当前server的序号,例如server1的myid就是1,server2的myid就是2等,依次这样...
(2) 启动过程:
本次启动顺序为server1、server2、server3
在启动过程中会验证一些配置问题。
步骤一:启动server1
使用bin/zkServer.sh status查看server1的启动结果:
然后查看server1的zookeeper.out文件发现:
注:如上面两幅图片所示,当搭建集群时,如果启动一个节点,会出现两个现象;现象一,此时验证启动状态,会发现启动失败;现象二,zookeeper.out文件中也显示连接其他节点失败
此时不需要担心,这是正常状况。当再启动一个节点时,现象一就消失;当所有节点都成功启动时,现象二就会消失
步骤二:启动server2
查看server2启动后的zookeeper.out文件
上面两幅图片说明,server2启动后,server1和server2就自动组成集群,并且选举server2为leader,server1自然就为follower。
步骤3:启动server3
验证一:clientPort使用相同端口启动结果:
启动后,查看zookeeper.out文件:
验证二:server3的选举leader端口和连接leader通信端口和server1的相同时:
启动后,查看zookeeper.out文件
验证三:没有创建myid文件:
启动后查看zookeeper.out文件:
正常启动server3后:
查看zookeeper.out文件:
使用bin/zkServer.sh status查看三者状态:
3、多IP多节点
将zookeeper拷贝到每个节点一份。
多IP多节点与单IP多节点搭建过程基本一致,上述过程不再重复描述,有一个比较重要的地方:
主机名与IP地址的映射
本例中采用4个IP上的4个节点,域名和IP的对应关系为:
rman-nod1 10.110.0.60
rman-nod2 10.110.0.61
rtask-nod3 10.110.10.30
rtask-nod4 10.110.10.40
注:其中rman-nod1和rman-nod2为双网卡节点,其他为单网卡节点;
其中rman-nod1的网址为: 10.110.0.60----对外
10.110.10.2----对内
rman-nod2的网址为: 10.110.0.61---对外
10.110.10.6----对内
zookeeper配置文件server的IP为:
因此连接总是失败。当将zookeeper配置文件中server的IP改为对内IP时,就可以正确连接: