zookeeper 安装启动(集群配置)

本文主要介绍zk的安装,和简单的集群化部署,以能正常启动为结果导向。

1 环境介绍

   操作系统:centos7

   下载地址  https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso  (在阿里云镜像 https://opsx.alibaba.com/mirror 中找的)

    zk版本: 3.4.10 

    下载地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/

   (使用前确认jdk已经正确安装)

2  安装wget(如果以安装 跳过该步骤)

   2.1 查看wget 命令是否安装 

          rpm -qa | grep wget    查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字"。

   2.2 安装wget

         yum –y install wget

3 安装zk

   3.1 下载

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

   3.2 解压 

       tar -zxvf zookeeper-3.4.10.tar.gz

   3.3 移动目录到usr/local下面

        mv ./zookeeper-3.4.10  /usr/local

4 单机部署多个zk实例(伪分布式)

   这里部署3个实例

    4.1 进入zk文件夹下的conf的文件     

     cd ./zookeeper-3.4.10/conf/

 4.2 打开 zoo_sample.cfg 文件,我们先认识一下这个文件

         

   这里先关注两个参数

           dataDir:用于存放zk数据的文件夹。

   clientPort:服务的监听端口。

    4.2 把zoo_sample.cfg 文件复制一份叫 zoo1.cfg,作为实例1的配置     

           4.2.1   复制  cp zoo_sample.cfg  zoo1.cfg

           4.2.2   修改 zoo1.cfg 的 dataDir  存放的位置(不是必须),文件夹先建好

       

            4.2.3   在最后添加集群信息

                        

                        server.[myid] = hostname:节点同步数据端口:zk选举接口

                        myid 和hostname后面会配置

     4.3  从zoo1.cfg 复制出两份zoo2.cfg  和zoo3.cfg 分别作为实例2 和实例3的配置

              修改zoo2.cfg  的dataDir  和 clientPort  

              

              修改 zoo3.cfg 的dataDir  和 clientPort  

              

       总结:zoo1,cfg  zoo2.cfg  zoo3.cfg  三分文件 除了端口和文件目录外 其他都一致

   4.4 配置myid信息

          4.4.1 进入dataDir 所配置的目录 ,应该有3个文件夹

           

   4.4.2  分别进入这三个文件夹 创建myid文件

              cd zk1

              touch  myid

           4.4.3 分别给这3个myid文件写入1,2,3 即在4.2.3中配置的server后面的id

                     

                     用如下命令分别写入

                     echo 1 >> ./zk1/myid

      echo 2 >> ./zk2/myid

      echo 3 >> ./zk3/myid

   4.5 修改你所在机器的hostname,这里我需要改成master

           有两种修改方式 , 一种是临时修改,机器重启后会自动还原, 一种是永久修改。我这里用临时修改。

            #hostname master         

·       然后重新连接就能看到hostname 被修改成功了           

            

   5 启动,查看

      进入到bin目录

      启动三个实例

      # ./zkServer.sh start ../conf/zoo1.cfg

      # ./zkServer.sh start ../conf/zoo2.cfg

       # ./zkServer.sh start ../conf/zoo3.cfg

    当存在实例没有启动的时候,你查看已启动的状态会出现如下异常

      

      查看状态的命令 即把 启动命令中的start换成status

      当3个实例全部启动后,使用jps命令查看是否启动

       

         jps 要做安装jdk后才能使用,当看到出现3个QuorumPeerMain的时候表示成功   

         全部启动成功后,然后查看实例的状态  这里我查看实例3的状态

         # ./zkServer.sh status ../conf/zoo3.cfg

        

         这里可以看到 实例3 是个follower ,实例1和实例2中有一个master.

  6 真分布式

     即把上面的三个实例分布在不同的机器上,然后分别配置自己的zoo.cfg文件和myid ,然后分别启动即可

  

  7 总结

     在配置过程中,要注意3个实例的端口号不能冲突,myid文件必须在各种的数据目录下面,myid的内容必须和你配置的集群信息相同

     当3个实例全部启动后,查看状态的时候,出现Error contacting service.It is probably not running ,可能原因是防火墙没有关闭。可以尝试关闭防火墙

     同时可以在bin目录下的zookeeper.out文件中查看出错的具体原因。

     一个集群有N个节点,必须保证有N/2 +1个几点正常,集群才能正常工作,推荐集群节点总是为基数

 

              

     

 

 

      

 

转载于:https://www.cnblogs.com/jmswag/p/8758356.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值