• Zookeeper安装配置及简单使用


    我使用的CentOS 7阿里云服务器,ZK依赖JDK,需要先安装jdk并配置jdk环境变量。

    1、安装wget:

      yum –y install wget

    2、下载Zookeeper(http://mirror.bit.edu.cn/apache/zookeeper上面查看版本):

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

    3、解压:

      tar -zxvf zookeeper-3.4.11.tar.gz

    4、建议将解压后的文件夹移动到/usr/local或/usr/share/或/usr/opt目录下:

      mv ./zookeeper-3.4.11 /usr/local

    5、单机环境配置:

      5.1 切换到zookeeper的配置文件目录conf:

        cd /usr/local/zookeeper-3.4.11/conf

      5.2 复制zoo_sample.cfg文件并重命名为zoo.cfg:

        cp zoo_sample.cfg zoo.cfg

      5.3 根据需要修改zoo.conf配置项:

        vi zoo.conf

        

        参数解释:

        tickTime:Zookeeper的时间单元。Zookeeper中所有时间都是以这个时间单元的整数倍去配置的。例如,session的最小超时时间是2*tickTime。(单位:毫秒)

        initLimit:Observer和Follower启动时,从Leader同步最新数据时,Leader允许initLimit * tickTime的时间内完成。如果同步的数据量很大,可以相应的把这个值设置的大一些。

        syncLimit:表示Follower和Observer与Leader交互时的最大等待时间,只不过是在与leader同步完毕之后,进入正常请求转发或ping等消息交互时的超时时间。

        dataDir:用于存放内存数据快照的文件夹,同时用于集群的myid文件也存在这个文件夹里。

        clientPort:服务的监听端口。

      5.4 切换到bin目录

        cd ../bin

      5.5 执行启动、查看状态、停止、查看进程等操作:

        启动、查看状态、停止的命令 ./zkServer.sh start或status或stop ../conf/zoo.cfg

        查看进程的命令 jps

        

        可以看到进程名为QuorumPeerMain,单机模式Mode:standalone。

    6、伪分布式配置(以3个节点为例):

      6.1 切换到zookeeper的配置文件目录conf:

        cd /usr/local/zookeeper-3.4.11/conf

      6.2 将zoo_sample.cfg文件复制3份并分别重命名为zoo1.cfg、zoo2.cfg、zoo3.cfg:

        cp zoo_sample.cfg zoo1.cfg(zoo2.cfg、zoo3.cfg)

      6.3 根据需要修改zoo1.cfg~zoo3.cfg配置项:

        vi zoo1.cfg(zoo2.cfg、zoo3.cfg)

        

        

        

        如图,分别将zoo1.cfg、zoo2.cfg、zoo3.cfg的dataDir设置为/tmp/zookeeper/zk1、/tmp/zookeeper/zk2、/tmp/zookeeper/zk3,clientPort设置为2181、2182、2183;3份配置文件都有相同的配置:server.1、server.2和server.3,其中的1~3代表3个zk节点的myid(集群中myid必须存在且唯一),

    izwz966dst6erg8u5v1030z:2888:3888、izwz966dst6erg8u5v1030z:2889:3889、izwz966dst6erg8u5v1030z:2890:3890其中的izwz966dst6erg8u5v1030z代表3个节点所在主机的hostname(可以是Hostname或IP),2888/2889/2990是3个节点的同步端口(用于节点之间数据同步),3888/3889/3890是3个节点的选举端口(zk启动后,产生master选举过程,以及leader宕机之后重新选举leader都通过该端口)。

        注:可通过hostname(centos7也可用hostnamectl)命令查看主机名,通过命令hostnamectl set-hostname 新主机名,或修改/etc/hostname文件都可以达到永久修改主机名的目的。

      6.4 如6.3提到server.1~server.3其中的1、2、3代表3个节点必须存在且唯一的myid(myid是一个文件且存在dataDir目录下):

        6.4.1 在/tmp目录下创建zookeeper:

          mkdir zookeeper

        6.4.2 切换到zookeeper目录下并创建zk1~zk3:

          mkdir zk1(zk2、zk3)

        6.4.3 创建3个节点的myid文件并分别设置为1、2、3:

          echo 1 >> /tmp/zookeeper/zk1/myid

          echo 2 >> /tmp/zookeeper/zk2/myid

          echo 3 >> /tmp/zookeeper/zk3/myid

          注:echo 值 >> 文件,使用重定向符输出到一个文件,可通过cat命令查看3个文件的值;

      6.5 切换到/usr/local/zookeeper-3.4.11/bin目录,分别启动3个节点、查看状态、停止节点、查看检查数量:

        

        如图可知,启动zoo1,查看状态为Error contacting service.It is probably not running.启动zoo2以后查看zoo2的状态Mode:leader,zoo1的状态Mode:follower,启动zoo3的状态也是Mode:follower,通过jps查看进程数目正确。

        对不同观点节点启动/停止,查看状态,可以知道,当启动3个节点以后,将leader停止,另外2个节点会重新选举leader,停止2个节点,最后一个节点状态是Error contacting service.It is probably not running.直到再启动一个节点,又会选择一个leader,一个follower。

        一个集群中有N个节点,必须保证有N/2+1个节点正常,集群才能正常工作。3个节点的集群正常工作需要3/2+1=2个节点正常;4个节点的集群正常工作需要4/2+1=3个节点正常,5个节点的集群正常工作需要5/2+1=3个节点正常,而2个节点的集群正常工作需要2/2+1=2个节点正常,即5个节点的集群容许2个节点挂掉,3和4个节点的集群容许1个节点挂掉,而2个节点的集群允许任何节点挂掉;

        推荐集群节点总数为基数,节省资源。

    7、真分布式配置(以3个节点为例)

      在3个节点上分别按单节点的方式部署好,然后在3个节点的zoo.cfg文件中配置server.1和server.2和server.3和各自的myid,在3个节点上分别启动即可。

    8、为了方便在任何路径下使用zk的命令,可配置zk的环境变量:

      vi /etc/profile

      

      添加ZOOKEEPER_HOME和$ZOOKEEPER_HOME/bin

      修改完成以后刷新配置文件:

      source profile

    以上是zk的安装和3种配置方式,已经基本的启动、停止、查看状态等命令:

    ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;
    ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例;
    ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble)

    zoo.cfg的更多配置项请参考:https://blog.csdn.net/qianshangding0708/article/details/50067483

    更详细的安装配置说明可参考:https://www.cnblogs.com/wuxl360/p/5817489.html

  • 相关阅读:
    跨平台编译ceres for Android
    解决OpenCV JavaCameraView相机preview方向问题
    OpenCV 4.0.1 找不到R.styleable解决
    mumu模拟器安装xposed--如何在android模拟器上进行root
    Windows编译OpenCV4Android解决undefined reference to std错误
    Skeleton with Assimp 骨骼动画解析
    Android GL deadlock timeout error
    Android device debug (adb) by Charge Only mode
    Firefox 多行标签的解决方案分享
    Linux 工程向 Windows 平台迁移的一些小小 tips
  • 原文地址:https://www.cnblogs.com/kibana/p/8645629.html
Copyright © 2020-2023  润新知