zookeeper linux分布式部署

为君一笑 提交于 2020-01-06 16:09:20

安装包下载地址:http://mirror.bit.edu.cn/apache/zookeeper,记住要下载那个bin的不要下tar.gz包不然即使你安装了也会报错误: 找不到或无法加载主类org.apache.zookeeper.server.quorum.QuorumPeerMain,你安装了也无法起来zk

 

wget   http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz

注意:在安装zk之前请先确保要部署的三台机器均已经安装JDK.

zk服务治理实现模型: 注册中心,生产者,消费者,注册中心注册了关于生产消费者的所有信息简单来说就是想要实现治理服务,必须要知道哪台机器提供什么服务,该找谁,也就ip映射服务之间的映射关系是怎样的,

zk通过心跳机制可以检测挂掉的机器并将挂掉机器的ip和服务对应关系从列表中删除

tar  -xvf  apache-zookeeper-3.5.6.tar.gz && cd  apache-zookeeper-3.5.6.tar.gz/conf

将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名):

cp zoo_sample.cfg zoo.cfg

zoo.cfg参数解释:

打开zoo.cfg,可以看到默认的一些配置。

    • tickTime 
      时长单位为毫秒,为zk使用的基本时间度量单位。例如,1 * tickTime是客户端与zk服务端的心跳时间,2 * tickTime是客户端会话的超时时间。 
      tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。
    • clientPort 
      zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。
    • dataDir 
      无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录;注意:如果想配置集群的话,请在clientPort下面添加服务器的ip

注意:如果想配置集群的话,请在clientPort下面添加服务器的ip
server.1=192.168.110.151:2888:3888
server.2=192.168.110.152:2888:3888
server.3=192.168.110.153:2888:3888

vim zoo.cfg

修改此三处:

接下来和重要的一步:

在每台机器刚才zoo.cfg dataDir路径下的data目录下创建myid :

touch  myid 

echo  1 > myid   这句在192.168.110.151执行

echo 2 > myid    这句在192.168.110.152

echo 3  > myid   这句在192.168.110.153

这里的1,2,3其实就是server.后面带的1,2,3标识符你也可以自己起别的:

server.1=192.168.110.151:2888:3888
server.2=192.168.110.152:2888:3888
server.3=192.168.110.153:2888:3888

在创建完后配置zk 环境以及配置的环境变量告诉zk 引用config 下刚才你cp 的zoo.cfg配置,这个执行命令行执行也可以,直接配置到/ect/profile也可以,如果这样记得source 激活

export ZOOKEEPER_INSTALL=/usr/local/apache-zookeeper-3.5.5-bin
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

以上操作每台机器都要来一遍

此外还要关闭防火墙或者开放zkport这里为了节省步骤我直接关闭防火墙了:

 

systemctl stop firewalld

 

最后逐个启动每台机器:

cd  usr/local/apache-zookeeper-3.5.5-bin/bin

执行:

sh zkServer.sh start 

启动状态查看:

sh  zkServer.sh status

 

 

follower:

 

 

 

 

如果启动失败就是这个myid 文件不存在导致的在logs目录下可以看见错误提示:

失败错误提示:

[root@hostuser3 bin]# sh zkServer.sh start
/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Starting zookeeper ... FAILED TO START

日志错误提示:

root@hostuser3 logs]# ll
total 4
-rw-r--r--. 1 root root 1385 Jan 4 23:42 zookeeper-root-server-hostuser3.out
[root@hostuser3 logs]# cat zookeeper-root-server-hostuser3.out
2020-01-04 23:42:30,720 [myid:] - INFO [main:QuorumPeerConfig@133] - Reading configuration from: /usr/local/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
2020-01-04 23:42:30,726 [myid:] - INFO [main:QuorumPeerConfig@385] - clientPortAddress is 0.0.0.0/0.0.0.0:2181
2020-01-04 23:42:30,726 [myid:] - INFO [main:QuorumPeerConfig@389] - secureClientPort is not set
2020-01-04 23:42:30,730 [myid:] - ERROR [main:QuorumPeerMain@89] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /usr/local/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:154)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:113)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:82)
Caused by: java.lang.IllegalArgumentException: myid file is missing
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.checkValidity(QuorumPeerConfig.java:734)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:605)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:420)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:150)
... 2 more
Invalid config, exiting abnormally

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!