ZooKeeper集群的安装

前提:①Linux服务器(3台)    ②已安装JDK    ③安装路径:/usr/local/bin目录下


目前3.5.5版本启动会报:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain,   因为3.5.5解压缩之后,zookeepr文件夹里面这个jar包没了(网友都有这问题,好像是解压缩之类的问题),此教程故由3.5.5降版本至3.4.14)

2021/06/15  发现 3.5.5 版本之后的,都没有这个 jar 包了,官网上下载的 tar.gz 也才 3.4M,3.4.14版本有34M多,估计是得自己编译这个jar包了吧。或者自己上传上去也可以?我没试。这句话仅供参考

ZooKeeper集群的安装_第1张图片


1.ZooKeeper的安装

    1.官网下载ZooKeeper安装包

        下载地址:https://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

                          https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

    2.使用命令 rz 将ZooKeeper安装包上传至Linux服务器;

    3.使用命令 tar -zxvf apache-zookeeper-3.4.14.tar.gz -C /usr/local/bin,解压缩tar.gz包至 /usr/local/bin 目录下

    4.解压后可删除tar.gz包

    5.进入源码 zookeeper-3.4.14目录下,可以删除 .txt 和 .md 结尾的文件 (命令:rm -rf *.txt *.md 

       删除后目录如图所示:

ZooKeeper集群的安装_第2张图片

    6.接下来,cd conf,修改配置文件

       conf目录下,有一个zoo_sample.cfg文件,该文件为示例文件,复制该文件,去掉sample即可(zookeeper只认zoo.cfg配置文件)

ZooKeeper集群的安装_第3张图片

    7.对zoo.cfg配置文件进行修改

ZooKeeper集群的安装_第4张图片

    8.将myid记录到数据文件夹(/tmp/zookeeper,如没有,需手动创建)中去(myid即为:上图②中1,2,3)

      每一台服务器myid都不一样,则数据文件夹中记录的也都不一样  

      命令:mkdir -p /tmp/zookeeper(-p 递归创建)

                 echo 1 >> myid(将1写入192.168.204.201服务器myid文件中)

    9.至此,第一台服务器zookeeper安装完毕


   10.zookeeper集群安装开始

        使用命令scp,将zookeeper的安装目录,发送至其他俩服务器(scp命令使用方法,请点击查看)

        命令:scp -r /usr/local/lib/apache-zookeeper-3.4.14 [email protected]:/usr/local/lib

                   scp -r /usr/local/lib/apache-zookeeper-3.4.14 [email protected]:/usr/local/lib

         将/tmp/zookeeper目录下的内容,也发送至其他俩服务器

                   scp -r /tmp/zookeeper [email protected]:/tmp

                   scp -r /tmp/zookeeper [email protected]:/tmp

   11.进入192.168.204.202服务器,修改/tmp/zookeeper目录下的myid文件

               echo 2 >> myid(将2写入192.168.204.202服务器myid文件中)

       同理,将3写入192.168.204.203服务器中

               echo 3 >> myid(将3写入192.168.204.203服务器myid文件中)

   12.至此,zookeeper集群安装完毕


   13.通过如下命令,启动zookeeper服务

./zkServer.sh start

        在启动zookeeper服务之前,先关闭防火墙(或者允许指定开放端口访问(推荐)),未关闭防火墙会报如下错误:

java.net.NoRouteToHostException: 没有到主机的路由
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:558)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:610)
	at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:838)
	at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:958)

建议生产上,不关闭防火墙,打开指定端口即可!!!

     ①通过如下命令,关闭防火墙(CentOS 6)

service iptables stop

     ②开放2888、3888端口

    如何开放指定端口,请移步:Linux开放指定端口

  14.端口开放完毕,使用如下命令,查看zookeeper服务开启状态

./zkServer.sh status

如下图可以看到:一主(leader)两从(follower)。这是通过选举机制产生的。 

  ZooKeeper集群的安装_第5张图片

   15.通过如下命令,可以关闭ZooKeeper服务

sh zkServer.sh stop 或./zkServer.sh stop

   16.至此,ZooKeeper集群安装完毕

   17.附:ZooKeeper常用命令

1. 启动ZK 服务:bin/zkServer.sh start
2. 查看ZK 服务状态:bin/zkServer.sh status
3. 停止ZK 服务:bin/zkServer.sh stop
4. 重启ZK 服务:bin/zkServer.sh restart


博主写作不易,来个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ

你可能感兴趣的:(#,Zookeeper,ZooKeeper)