jjlu521016

分享知识的点点滴滴

  • 主页
  • 所有文章
目录 关于我

jjlu521016

分享知识的点点滴滴

  • 主页
  • 所有文章

zookeeper集群搭建步骤

2018-01-01

文章导航

× 文章目录
  1. 1. zookeeper集群搭建步骤
    1. 1.1. 1. 下载zookeeper
    2. 1.2. 2. 进入conf文件夹,配置zookeeper
    3. 1.3. 3. 编辑zoo.cf文件
    4. 1.4. 4.复制zookeeper到其他机器
    5. 1.5. 4. 创建myid文件
    6. 1.6. 启动服务并查看(可以在/etc/profile配置zk)
    7. 1.7. *注意事项:
  • zookeeper服务器的数量是 2*n+1台

    zookeeper集群搭建步骤

    本人下载目录为 /opt/microServer/ 集群ip为192.168.188.111、192.168.188.112、192.168.188.113

    1. 下载zookeeper

    执行命令下载
    1
    2
    3
    4
    5
    wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz
    tar -zxvf zookeeper-3.4.11.tar.gz
    cd zookeeper-3.4.11
    ## 创建 data和log文件夹
    mkdir data log

2. 进入conf文件夹,配置zookeeper

1
2
cd conf
cp zoo_sample.cfg zoo.cfg

3. 编辑zoo.cf文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
## tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
tickTime=2000
## initLimit: 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
initLimit=10
## syncLimit:这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
syncLimit=5
## dataDir:快照日志的存储路径
dataDir=/opt/microServer/zookeeper-3.4.11/data
## dataLogDir:事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
dataLogDir=/opt/microServer/zookeeper-3.4.11/log
clientPort=2181
server.1=192.168.188.111:12888:13888
server.2=192.168.188.112:12888:13888
server.3=192.168.188.113:12888:13888
#server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
#192.168.188.111为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888

4.复制zookeeper到其他机器

1
2
scp -r zookeeper-3.4.11/ root@192.168.188.112:/opt/microServer/
scp -r zookeeper-3.4.11/ root@192.168.188.113:/opt/microServer/

4. 创建myid文件

1
2
3
4
5
6
#server1
echo "1" > /opt/microServer/zookeeper-3.4.11/data/myid
#server2
echo "2" > /opt/microServer/zookeeper-3.4.11/data/myid
#server3
echo "3" > /opt/microServer/zookeeper-3.4.11/data/myid

启动服务并查看(可以在/etc/profile配置zk)

1
2
3
4
5
6
#进入到Zookeeper的bin目录下
cd /opt/zookeeper/zookeeper-3.4.6/bin
#启动服务(3台都需要操作)
./zkServer.sh start
#检查服务器状态
./zkServer.sh status

1.png
2.png
3.png

*注意事项:

如果zkServer.sh status出现以下错误:

1
2
3
4
]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/microserver/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

到 /root/zookeeper.out看报错信息。如下:

1
2
3
4
5
6
7
8
9
10
11
12
 [myid:1] - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Learner@237] - Unexpected exception, tries=0, connecting to /192.168.188.113:12888
java.net.ConnectException: 拒绝连接 (Connection refused)
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.Learner.connectToLeader(Learner.java:229)
at org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:72)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:981)
2018-01-14 20:35:45,726 [myid:1] - INFO [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Learner@332] - Getting a diff from the leader 0x0

这种情况需要关闭防火墙,执行

1
2
3
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

赏

谢谢您的打赏!!

支付宝
微信
  • 集群
  • zookeeper

扫一扫,分享到微信

微信分享二维码
Kafka集群搭建步骤
[转载]关于垃圾回收被误解的 7 件事
  1. 1. zookeeper集群搭建步骤
    1. 1.1. 1. 下载zookeeper
    2. 1.2. 2. 进入conf文件夹,配置zookeeper
    3. 1.3. 3. 编辑zoo.cf文件
    4. 1.4. 4.复制zookeeper到其他机器
    5. 1.5. 4. 创建myid文件
    6. 1.6. 启动服务并查看(可以在/etc/profile配置zk)
    7. 1.7. *注意事项:

0 评论
Powered By Valine
v1.5.2
© 2020 jjlu521016
  • 目录
  • 关于我

标签:

  • redis
  • 中间件
  • elk
  • log
  • rabbitmq
  • 分布式事务
  • java
  • threadlocal
  • dubbo
  • jvm
  • oracle
  • mybatis
  • mysql
  • Mysql
  • JVM
  • exception
  • Mybatis
  • AOP
  • Spring
  • spring
  • hashmap
  • jmap
  • Multipartfile
  • GC
  • jedis
  • 多线程
  • localStorage
  • jquery
  • Kafka
  • 集群
  • ELK
  • -elk
  • 运维
  • zookeeper
  • classloader
  • cat
  • 分布式链路跟踪
  • 翻译
  • 微服务
  • 翻译
  • 并发

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

一个坚持不懈的码农