zoukankan      html  css  js  c++  java
  • ZooKeeper的本地安装和分布式安装

    一、安装包下载地址

    http://archive.apache.org/dist/zookeeper/

    二、选择其中的一个版本,这里我选择的是3.4.10

      这些都是在Linux系统下的安装包 ,所以要么你事先要有安装了Linux系统的虚拟机,要么系统是Linux的,要么有个Linux服务器,然后将安装包拷贝到Linux系统下

    三、本地安装

    1、进入到安装包的存储目录下,将压缩包解压到指定的目录下

    tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/

    2、进行一些配置的修改

    (1)进入到解压之后的zookeeper目录下,查看一下这个目录下都有哪些文件,进行配置的文件在conf这个文件夹下

     (2)将conf这个文件夹下的zoo_sample.cfg修改为zoo.cfg

    mv zoo_sample.cfg zoo.cfg

    (3)然后回退到zookeeper目录下,创建一个存放数据的文件夹,进入到这个文件夹下,复制获取它的路径:/opt/module/zookeeper-3.4.10/zkData

    mkdir zkData

    (4)再次进入到conf文件夹,编辑zoo.cfg,修改dataDir这个字段的值为我们刚才复制的路径,然后保存退出。

    3、服务端和客户端的本地启动

    至此,zookeeper的本地安装和配置已经完成,下面就是启动zookeeper的服务端和客户端了

    (1)启动zookeeper的服务端

    bin/zkServer.sh start

    可以看到,进程已经存在了:

    (2)查看状态

    bin/zkServer.sh status

    (3)启动客户端

    bin/zkCli.sh

    注意,启动客户端的时候,是没有start这个关键字的。

    (4)退出客户端

      直接在命令行输入“quit”

    (5)停止服务端

    bin/zkServer.sh stop

    三、分布式安装

      首先需要几个服务器,这几个服务器都已经安装了Jdk,这里我安装了三个服务器,系统是centos的。其实安装的过程和本地安装几乎没什么区别,只不过我们需要给集群的每个节点进行编号,然后将编号和对应节点的IP地址和相关需要用到的端口号联系起来。

      现在一个机器上,按照本地安装的方式进行安装配置,然后开始下一部分操作:为集群节点编号

      进入到之前创建的zkData文件下,然后创建一个文件“myid”

    touch myid

      编辑这个文件,其实就是将当前的服务器设置序号,这个序号可以自己自定义,这里我设置我1

      

      然后,到conf文件夹,继续编辑zoo.cfg文件,在其最下方添加以下内容:

    #######################cluster##########################
    server.1=192.168.182.101:2888:3888
    server.2=192.168.182.102:2888:3888
    server.3=192.168.182.103:2888:3888

    解读一下,上面三行内容的含义,它们的通用格式如下:

    server.A=B:C:D

    A是一个数字,表示这个是第几号服务器,它对应我们在每个服务器中设置的myid中的值。集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。

    B是序号为A的服务器的ip地址,如果事先为ip设置了域名,可以用域名代替;

    C是序号为A的服务器与集群中的Leader服务器交换信息的端口;

    D也是一个端口号,万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

      至此,我们将分布式部署的基本信息配置完毕了,但是还需要将它们发送到其他的服务器上面,可以手动拷贝,也可以编写一个shell发送文件的脚本,这里我们编写了一个发送文件到集群其他节点的脚本,直接在命令行进入到zookeeper的父目录下执行以下命令即可,xsync是自己编写的sh文件,并不是命令,至于怎么写,可以百度如何编写发送文件的脚本。

    xsync zookeeper-3.4.10/

    然后分别在三个机器上启动,三个机器的zookeeper的服务端:

    $ bin/zkServer.sh start
    $ bin/zkServer.sh start
    $ bin/zkServer.sh start

    启动第二个服务端的时候,查看状态,会看到已经选举出leader了:

     而第一个服务端和第三个服务端都是follower

  • 相关阅读:
    Linux的命令、用户、权限管理
    Java中快捷键
    数组的学习
    Java中方法定义和调用的学习
    java中的标识符、修饰符、关键字
    MYSQL的学习
    JavaScript小白教程2
    navicat中选择utf-8时的困惑
    python小白教程
    英语单词
  • 原文地址:https://www.cnblogs.com/yxym2016/p/13168391.html
Copyright © 2011-2022 走看看