Linux_CentOS 7.2 64之安装zookeeper3.4.14 集群搭建(高可用)

zookeeper(高可用)集群搭建,服务器数量最低3个,且必须是奇数个。
因为zookeeper有一个投票机制,当有超过半数的节点认为其中1个节点挂了。那么这个节点将不再服务了。
1. 先安装jdk (参考我写的教程):
https://blog.csdn.net/chuxin_mm/article/details/81000553
 
2. zookeeper下载教程 (参考我写的教程):
https://blog.csdn.net/chuxin_mm/article/details/88991513
由于环境有限,这里的集群就先在2台服务器上搭建,其中腾讯云的1台服务器,我用2个端口表示2个zookeeper。

也就是说,修改解压后zookeeper的conf目录的配置文件中的端口号( clientPort=2181 )
到时候会改, 如果有3个服务器,就不存在这种情况。

后面会提到:
开始:
1. 登录腾讯云服务器

2. 解压下载的zookeeper文件
[root@wqm zookeeper]# tar -xvf zookeeper-3.4.14.tar.gz 

3. 将解压后的文件复制2份
[root@wqm zookeeper]# cp -r zookeeper-3.4.14 /wangqinmin/zookeeper/zookeeper01
[root@wqm zookeeper]# cp -r zookeeper-3.4.14 /wangqinmin/zookeeper/zookeeper02

4. 进入zookeeper01目录下,创建目录 data
[root@wqm zookeeper01]# mkdir data

5. 进入data目录,创建文件myid  (注意是文件,不是文件夹)
[root@wqm zookeeper01]# cd data/
[root@wqm data]# touch myid

6. 复制data目录
[root@wqm data]# pwd
/wangqinmin/zookeeper/zookeeper01/data

7. 编辑myid,插入数据:1 (保存)
[root@wqm data]# vim myid

8. 查看 (结果只有1, 也不一定是1,整数就行,为了后面能映射上)
[root@wqm data]# cat myid
1

9. 在conf目录下,zoo_sample.cfg 改名为 zoo.cfg
[root@wqm conf]# mv zoo_sample.cfg zoo.cfg

10. 编辑zoo.cfg 将dataDir=/tmp/zookeeper 修改为上面复制的内容,我这里的结果如下:
dataDir=/wangqinmin/zookeeper/zookeeper01/data

保存!!!

另一份解压文件( zookeeper02 )一样:
第7步修改数据为:2
第10步编辑路径根据实际情况修改一下;
最后一步:编辑zoo.cfg的动作,在加1步修改端口号动作, 我这里修改为: 2182


开始登录阿里云服务器:
安装jdk、上传zookeeper压缩包, 然后再执行上面2到10的步骤
(第7步修改数据为:3 ,第10步编辑路径根据实际情况修改一下)
现在开始配置集群:
每一个要启动的每个zookeeper文件
把第10步再编辑一次,这次需要在末尾增加配置:

如下: (2881表示:3个zookeeper内部连接的端口,3881表示:投票机制的端口)
这两个端口,可以随便写,但是不能冲突。
最后面的server.3因为是不同的ip,别把眼睛看花了。

server.1=119.27.184.220:2881:3881
server.2=119.27.184.220:2882:3882
server.3=47.96.100.61:2881:3881

然后再用命令:.

启动: ./zkServer.sh start

查看运行状态:./zkServer.sh status

你会很绝望,结果如下:

[root@wqm bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /wangqinmin/zookeeper/zookeeper01/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

启动出错 !!!

原因: 

server.1=119.27.184.220:2881:3881
server.2=119.27.184.220:2882:3882
server.3=47.96.100.61:2881:3881

切记,不可写外网地址;

也就是说,集群搭建不能一会儿用阿里云、一会儿用腾讯云。

只能用其中一个,然后同一个云服务器之间使用内网ip;

例如:

如果是不同服务器:
server.1=192.168.2.1:2881:3881
server.2=192.168.2.2:2881:3881
server.3=192.168.2.3:2881:3881

相同服务器的话,其实不算是分布式,只能算伪分布式,那个时候就需要改端口号,只要端口号不一样就可以了。

还有种情况,比如阿里云的服务器,可能有上海节点、江苏节点 可能这些节点之间内网ip也连接不上。
提示到这里,这个我没有试过。

 

你可能感兴趣的:(linux)