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

    Linux下zookeeper集群环境搭建
      自行搭建一个zookeeper集群(本例只使用3个zookeeper,搭建zookeeper集群,zookeeper个数必须为奇数)
      1.zookeeper下载
        第一种方式:下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/   (选择一个镜像地址后下载相应版本zookeeper)
           下载到电脑上然后传输到Linux系统上相应的文件中
        第二种方式:执行命令 yum -y install wget(安装了wget忽略此步骤)
           在相应文件加下直接 执行 wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz(我选用的是3.4.10版)
      2.修改配置文件后进行选举
        (我是下载到 /home/jiang/myapp/目录下,原文地址:http://www.cnblogs.com/northern-light/
        2.1    tar -zxf zookeeper-3.4.10.tar.gz 得到文件:zookeeper-3.4.10
        2.2    得到 zk1 zk2 zk3
          cp -r zookeeper-3.4.10 /usr/local/kafkacloud/zk1 :将文件拷贝到/usr/local/kafkacloud/目录下并重命名为zk1
          cd /usr/local/kafkacloud/ :切换到/usr/local/kafkacloud/目录下
          【下面的命令均是在/usr/local/kafkacloud/目录下执行】
          cp -r /usr/local/kafkacloud/zk1 zk2
          cp -r /usr/local/kafkacloud/zk1 zk3
        2.3   修改配置文件

          
          分别拷贝zoo_sample.cfg得到zoo.cfg文件并修改zoo.cfg参数(zk1/zk2/zk3均需要)
          cp     zk1/conf/zoo_sample.cfg zoo.cfg
          vim   zk1/conf/zoo.cfg
          设置参数:(路径根据自己需求进行设置)
            dataDir=/usr/local/kafkacloud/zk1/zkdata (并在对应文件目录下创建 zkdata文件夹)
          添加 dataLogDir=/usr/local/kafkacloud/zk1/zkdatalog (并在对应文件目录下创建 zkdatalog文件夹)
          clientPort=2181 (zk1设置为 2181 zk2 :2181 zk3:2183)
          添加 (zk1 zk2 zk3的zoo.cfg文件里都需要添加这三行参数)
          server.1=192.168.10.13:2881:3881
          server.2=192.168.10.13:2882:3882
          server.3=192.168.10.13:2883:3883
          :wq (保存退出)
          (myid文件中的数字用于标记zookeeper,用于选举)
          执行 echo "1" > zk1/zkdata/myid :wq (保存退出)
          echo "2" > zk1/zkdata/myid :wq (保存退出)
          echo "3" > zk1/zkdata/myid :wq (保存退出)
        2.4 启动zookeeper进行选举
           zk1/bin/zkServer.sh start
           zk2/bin/zkServer.sh start
           zk3/bin/zkServer.sh start
        2.5 查看选举后的状态
          Mode: follower :表示跟随者
          Mode: leader :表示Leader
          zk1/bin/zkServer.sh status
          zk2/bin/zkServer.sh status
          zk3/bin/zkServer.sh status
      3. 写一个简单的zookeeper集群启动和停止脚本
        启动zookeeper集群脚本:
        vim start-zks.sh (文件名字克可随意选取)
        打开文件添加以下语句后保存退出
          #!/bin/bash
          /usr/local/kafkacloud/zk1/bin/zkServer.sh start
          /usr/local/kafkacloud/zk2/bin/zkServer.sh start
          /usr/local/kafkacloud/zk3/bin/zkServer.sh start
          关闭zookeeper集群脚本:
        vim stop-zks.sh (文件名字克可随意选取)
          #!/bin/bash
            /usr/local/kafkacloud/zk1/bin/zkServer.sh stop
            /usr/local/kafkacloud/zk2/bin/zkServer.sh stop
            /usr/local/kafkacloud/zk3/bin/zkServer.sh stop
          给创建的两个脚本文件赋予执行权限
          chmod +x start-zks.sh
          chmod +x stop-zks.sh
      4.防火墙端口开放

        
        执行 vim /etc/sysconfig/iptables (将 2181 2182 2183端口开放)
        文件示例:
        # Manual customization of this file is not recommended.
        *filter
        :INPUT ACCEPT [0:0]
        :FORWARD ACCEPT [0:0]
        :OUTPUT ACCEPT [0:0]
        -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        -A INPUT -p icmp -j ACCEPT
        -A INPUT -i lo -j ACCEPT
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT (需要添加)
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 2182 -j ACCEPT (需要添加)
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 2183 -j ACCEPT (需要添加)

        -A INPUT -j REJECT --reject-with icmp-host-prohibited

        -A FORWARD -j REJECT --reject-with icmp-host-prohibited
        COMMIT   (这三句不能掉)



        :wq (保存退出
      重启防火墙: service iptables restart

      关于zoo.cfg配置文件参数说明

      tickTime:基本事件单元,以毫秒为单位。这个时间作为zookeeper服务器之间或客户端与服务器

          之间维持心跳的时间间隔,也就是每隔tickTime时长会发送一个心跳。

           dataDir: 存储内存中数据库快照的位置,即zookeeper保存数据的目录,默认情况下,zookeeper

                          将写数据的日志文件也保存在这个目录里。

           dataLogDir: 写数据的日志文件保存的目录。

           initLimit : 用来配置zookeeper接受客户端初始化连接时最长能忍受initLimit个心跳时间间隔数

           syncLimit : 这个参数表示Leader与Follwer之间发送消息,请求和应答时长,最长不能超过syncLimit个心跳时间间隔             

      server.A = B:C:D     A:表示这是第几个服务器

                 B :表示这个服务器的IP

               C : 表示这个服务器与集群中的Leader服务器交换数据的端口

               D :用于选举的端口(C和D表示的两个端口号不能一样)


      


      

    人生没有彩排,每天都是现场直播!
  • 相关阅读:
    JAVA 基础
    【爬虫】爬取豆瓣图书TOP250
    error: src refspec master does not match any. error: failed to push some refs to 'git@github.com:xxx/xxx.git'
    el-upload如何做到在添加文件时限制文件类型
    :last-child无法选中父元素中最后一个元素
    桥接模式-图形界面配置centos7的ip
    tomcat输出日志乱码
    精简步骤 Centos7命令行安装Tomcat、配置tomcat端口及配置防火墙开放端口
    命令行设置远程访问mysql
    No archetype found in remote catalog. Defaulting to internal catalog
  • 原文地址:https://www.cnblogs.com/northern-light/p/8109666.html
Copyright © 2011-2022 走看看