zoukankan      html  css  js  c++  java
  • Zookeeper集群搭建

    一、前言

      在大型分布式集群系统中,Zookeeper是一个非常重要的分布式协调服务组件;其应用场景非常广泛,如做服务的注册中心、实现分布式锁以及集群Master选举等等。本文讲述的,就是Zookeeper集群的搭建。

    二、准备

      Zookeeper本身是由Java语言开发的一个相对独立的基础分布式组件,因此,Zookeeper的安装除了需要安装JVM外,不再需要依赖其它环境。

    2.1、机器环境准备
      我们准备3台机器,并都装好JDK且设置好hostname。

    机器IP hostname
    192.168.182.128 node-1
    192.168.182.129 node-2
    192.168.182.130 node-3

    三、搭建

    3.1、作域名映射

    vi /etc/hosts
    192.168.182.128 node-1 192.168.182.129 node-2 192.168.182.130 node-3

    注意:也可以使用ip,不是硬性要求

    3.2、下载,配置zookeeper

    wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
    tar -zxvf apache-zookeeper-3.4.12.tar.gz && cd apache-zookeeper-3.4.12
    cd conf/ && cp zoo_sample.cfg zoo.cfg
    # 创建数据存储目录,和日志目录
    mkdir /home/liuguoping/software/zookeeper-3.4.12/zkdata /home/liuguoping/software/zookeeper-3.4.12/logs -p

    vi zoo.cfg
    # 添加内容
    dataDir=/home/liuguoping/software/zookeeper-3.4.12/zkdata
    dataLogDir=/home/liuguoping/software/zookeeper-3.4.12/logs
    server.1=node-1:2888:3888 # 心跳端口,选举端口
    server.2=node-2:2888:3888
    server.3=node-3:2888:3888

    3.3、设置myid,三台分别设置1,2,3

    # node-1
    /home/liuguoping/software/zookeeper-3.4.12/zkdata
    echo 1 > myid

    3.4、分发安装包到其它机子上,并设置myid

    # node-2
    scp -r /home/liuguoping/software/apache-zookeeper-3.4.12/ root@192.168.182.129:/home/liuguoping/software/apache-zookeeper-3.4.12/ cd /home/liuguoping/software/zookeeper-3.4.12/zkdata echo 2 > myid
    # node-3 scp
    -r /home/liuguoping/software/apache-zookeeper-3.4.12/ root@192.168.182.130:/home/liuguoping/software/apache-zookeeper-3.4.12/ cd /home/liuguoping/software/zookeeper-3.4.12/zkdata echo 3 > myid

    3.5、即修改后的配置文件zoo.cfg中的有效配置内容如下:

    tickTime=2000
    initLimit=10
    syncLimit=5
    clientPort=2181
    dataDir=/home/liuguoping/software/zookeeper-3.4.12/zkdata
    dataLogDir=/home/liuguoping/software/zookeeper-3.4.12/logs
    server.1=node-1:2888:3888
    server.2=node-2:2888:3888
    server.3=node-3:2888:3888

    四、启动Zookeeper服务并简单测试

    4.1、启动服务
      Zookeeper集群的启动,需要进入各个节点单独启动。进入Zookeeper的/bin目录下执行命令 ./zkServer.sh start即可启动服务。然后执行命令./zkServer.sh status查看服务状态并可以看到当前节点是leader(主)节点还是follower(从)节点。
      启动失败原因:可以查看/bin目录下启动生成的日志文件zookeeper.out,看失败的原因是什么,然后对症下药调整。(常见的失败原因有:防火墙未关闭配置文件未创建数据目录未创建myid文件未创建或创建有误等)

      

      解决:关闭防火墙systemctl status firewalld.service,启动三台zookeeper服务./zkServer.sh start,因为启动服务会有选主的过程,会有点延时可以稍等一会,用./zkServer.sh status查看服务状态,如果按照上面的一步步来,应该没有啥问题,正常情况下三台机子zookeeper状态如下:

    node-1(192.168.182.128):follower(从)

    node-2(192.168.182.129):follower(从)

     

     node-3(192.168.182.130)leader(主)

     

  • 相关阅读:
    [译]MongoDB 3.0发布说明
    [译]MongoDb生产环境注意事项
    关于MongoDb Replica Set的故障转移集群——实战篇
    关于MongoDb Replica Set的故障转移集群——理论篇
    MongoDb 2.4 beta新特性——全文索引
    MongoDb Replica Set中使用的地址
    Eval is Devil-MongoDB master/slave上运行Eval遇到的问题
    ss
    SEO
    GruntJs
  • 原文地址:https://www.cnblogs.com/liugp/p/11701475.html
Copyright © 2011-2022 走看看