• 生产环境中zookeeper分布式集群部署实战案例


                 生产环境中zookeeper分布式集群部署实战案例

                                   作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

     

     

    一.zookeeper概述

    1>.访问zookeeper的官网

      官方地址:
        https://zookeeper.apache.org/

    2>.选择zookeeper的版本进行下载

    二.本地模式部署

    1>.部署JDK

      博主推荐阅读:
        https://www.cnblogs.com/yinzhengjie/p/12199413.html

    2>.将下载的zookeeper软件包并解压到指定路径

    [root@hadoop101.yinzhengjie.org.cn ~]# ll
    total 12148
    -rw-r--r-- 1 root root 12436328 May 12 05:50 apache-zookeeper-3.6.1-bin.tar.gz
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# tar -zxf apache-zookeeper-3.6.1-bin.tar.gz -C /yinzhengjie/softwares/
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ll /yinzhengjie/softwares/
    total 0
    drwxr-xr-x  6 root root 133 May 12 05:54 apache-zookeeper-3.6.1-bin
    drwxr-xr-x 11 root root 173 Mar 12 01:18 fully-mode
    drwxr-xr-x 12 root root 184 Mar 12 04:35 hadoop-2.10.0
    drwxr-xr-x  7   10  143 245 Dec 16  2018 jdk1.8.0_201
    drwxr-xr-x  9 root root 149 Mar 10 23:38 local-mode
    drwxr-xr-x 11 root root 173 Mar 11 01:15 pseudo-mode
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ll /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/
    total 32
    drwxr-xr-x 2 yinzhengjie yinzhengjie   289 Apr 21 22:59 bin
    drwxr-xr-x 2 yinzhengjie yinzhengjie    77 Apr 21 22:59 conf
    drwxr-xr-x 5 yinzhengjie yinzhengjie  4096 Apr 21 23:00 docs
    drwxr-xr-x 2 root        root         4096 May 12 05:54 lib
    -rw-r--r-- 1 yinzhengjie yinzhengjie 11358 Apr 21 22:59 LICENSE.txt
    -rw-r--r-- 1 yinzhengjie yinzhengjie   432 Apr 21 22:59 NOTICE.txt
    -rw-r--r-- 1 yinzhengjie yinzhengjie  1963 Apr 21 22:59 README.md
    -rw-r--r-- 1 yinzhengjie yinzhengjie  3166 Apr 21 22:59 README_packaging.md
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ll /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/

    3>.修改配置文件

    [root@hadoop101.yinzhengjie.org.cn ~]# cd /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf/
    [root@hadoop101.yinzhengjie.org.cn /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf]# 
    [root@hadoop101.yinzhengjie.org.cn /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf]# ll
    total 12
    -rw-r--r-- 1 yinzhengjie yinzhengjie  535 Apr 21 22:59 configuration.xsl
    -rw-r--r-- 1 yinzhengjie yinzhengjie 3435 Apr 21 22:59 log4j.properties
    -rw-r--r-- 1 yinzhengjie yinzhengjie 1148 Apr 21 22:59 zoo_sample.cfg
    [root@hadoop101.yinzhengjie.org.cn /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf]# 
    [root@hadoop101.yinzhengjie.org.cn /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf]# cp zoo_sample.cfg zoo.cfg 
    [root@hadoop101.yinzhengjie.org.cn /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf]# 
    [root@hadoop101.yinzhengjie.org.cn /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf]# vim zoo.cfg 
    [root@hadoop101.yinzhengjie.org.cn /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf]# cat zoo.cfg 
    #通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒
    tickTime=2000
    
    #集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
    initLimit=10
    
    #集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
    syncLimit=5
    
    #主要用于保存Zookeeper中的数据。
    dataDir=/yinzhengjie/data/zookeeper
    
    #监听客户端连接的端口
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    #autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    #autopurge.purgeInterval=1
    
    ## Metrics Providers
    #
    # https://prometheus.io Metrics Exporter
    #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
    #metricsProvider.httpPort=7000
    #metricsProvider.exportJvmInfo=true
    [root@hadoop101.yinzhengjie.org.cn /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf]# 
    [root@hadoop101.yinzhengjie.org.cn /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin/conf]# cat zoo.cfg

    4>.配置zookeeper的环境变量

    [root@hadoop101.yinzhengjie.org.cn ~]# ln -sv /yinzhengjie/softwares/apache-zookeeper-3.6.1-bin /yinzhengjie/softwares/zookeeper
    ‘/yinzhengjie/softwares/zookeeper’ -> ‘/yinzhengjie/softwares/apache-zookeeper-3.6.1-bin’
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# vim /etc/profile.d/zookeeper.sh
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# cat /etc/profile.d/zookeeper.sh
    #!/bin/bash
    
    ZOOKEEPER=/yinzhengjie/softwares/zookeeper
    PATH=$PATH:$ZOOKEEPER/bin
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# source /etc/profile.d/zookeeper.sh            #使得环境变量生效~

    5>.启动zookeeper

    [root@hadoop101.yinzhengjie.org.cn ~]# zkServer.sh start        #启动zookeeper服务
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ll /yinzhengjie/data/
    total 0
    drwxr-xr-x 3 root root 51 May 12 05:59 zookeeper
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# zkServer.sh status        #查看zookeeper的运行状态
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: standalone                                #很显然,现在的zookeeper并不是以集群的方式运行,而是以本地模式运行的
    [root@hadoop101.yinzhengjie.org.cn ~]# 

    6>.验证zookeeper服务是否正常启动

    [root@hadoop101.yinzhengjie.org.cn ~]# ll /yinzhengjie/data/
    total 0
    drwxr-xr-x 3 root root 51 May 12 05:59 zookeeper
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ll /yinzhengjie/data/zookeeper/
    total 4
    drwxr-xr-x 2 root root 24 May 12 05:59 version-2
    -rw-r--r-- 1 root root  4 May 12 05:59 zookeeper_server.pid
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# more /yinzhengjie/data/zookeeper/zookeeper_server.pid       #查看当前zookeeper启动的进程ID
    5944
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# jps                                    #使用jps命令查看
    5991 Jps
    5944 QuorumPeerMain
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ss -ntl | grep 2181                           #端口也是监听成功的~
    LISTEN     0      50           *:2181                     *:*                  
    [root@hadoop101.yinzhengjie.org.cn ~]# 

    7>.停止zookeeper服务

    [root@hadoop101.yinzhengjie.org.cn ~]# jps
    5944 QuorumPeerMain
    15658 Jps
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# zkServer.sh stop
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Stopping zookeeper ... STOPPED
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# jps
    15691 Jps
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# zkServer.sh stop

    三.分布式集群部署

    1>.实验环境说明(准备3台测试服务器,其基本配置信息如下所示)

    [root@hadoop101.yinzhengjie.org.cn ~]# uname -r
    3.10.0-957.el7.x86_64
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# uname -m
    x86_64
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# cat /etc/redhat-release 
    CentOS Linux release 7.6.1810 (Core) 
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:           3.8G        171M        3.4G         11M        231M        3.4G
    Swap:            0B          0B          0B
    [root@hadoop101.yinzhengjie.org.cn ~]# 

    2>.创建配置zookeeper的堆内存配置文件

    [root@hadoop101.yinzhengjie.org.cn ~]# vim $ZOOKEEPER/conf/java.env
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# cat $ZOOKEEPER/conf/java.env
    #!/bin/bash
    #@author :yinzhengjie
    #blog:http://www.cnblogs.com/yinzhengjie
    #EMAIL:y1053419035@qq.com
    
    #指定JDK的安装路径
    export JAVA_HOME=/yinzhengjie/softwares/jdk1.8.0_201 
    
    #指定zookeeper的heap内存大小
    export JVMFLAGS="-Xms2048m -Xmx2048m $JVMFLAGS"
    [root@hadoop101.yinzhengjie.org.cn ~]# 

    3>.修改zookeeper的配置文件zoo.cfg

    [root@hadoop101.yinzhengjie.org.cn ~]# vim $ZOOKEEPER/conf/zoo.cfg
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# cat $ZOOKEEPER/conf/zoo.cfg
    # 滴答,计时的基本单位,默认是2000毫秒,即2秒。它是zookeeper最小的时间单位,用于丈量心跳时间和超时时间等,通常设置成默认2秒即可。
    tickTime=2000
    
    # 初始化限制是10滴答,默认是10个滴答,即默认是20秒。指定follower节点初始化是链接leader节点的最大tick次数。
    initLimit=5
    
    # 数据同步的时间限制,默认是5个滴答,即默认时间是10秒。设定了follower节点与leader节点进行同步的最大时间。与initLimit类似,它也是以tickTime为单位进行指定的。
    syncLimit=2
    
    # 指定zookeeper的工作目录,这是一个非常重要的参数,zookeeper会在内存中在内存只能中保存系统快照,并定期写入该路径指定的文件夹中。生产环境中需要注意该文件夹的磁盘占用情况。
    dataDir=/yinzhengjie/data/zookeeper
    
    # 监听zookeeper的默认端口。zookeeper监听客户端链接的端口,一般设置成默认2181即可。
    clientPort=2181
    
    # 这个操作将限制连接到 ZooKeeper 的客户端的数量,限制并发连接的数量,它通过 IP 来区分不同的客户端。此配置选项可以用来阻止某些类别的 Dos 攻击。将它设置为 0 或者忽略而不进行设置将会取消对并发连接的限制。
    #maxClientCnxns=60
     
    # zookeeper 3.4.0及之后版本,ZK提供了自动清理事务日志和快照文件的功能,这个参数指定了清理频率,单位是小时,需要配置一个1或更大的整数,默认是0,表示不开启自动清理功能。
    #autopurge.purgeInterval=1
    
    # 这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个。
    #autopurge.snapRetainCount=3
    
    #server.x=[hostname]:nnnnn[:nnnnn],这里的x是一个数字,与myid文件中的id是一致的。右边可以配置两个端口,第一个端口用于F和L之间的数据同步和其它通信,第二个端口用于Leader选举过程中投票通信。  
    server.101=hadoop101.yinzhengjie.org.cn:2888:3888
    server.102=hadoop102.yinzhengjie.org.cn:2888:3888
    server.103=hadoop103.yinzhengjie.org.cn:2888:3888
    [root@hadoop101.yinzhengjie.org.cn ~]# 

    4>.将配置文件及环境变量同步到其它节点

    [root@hadoop101.yinzhengjie.org.cn ~]# vim /etc/ansible/hosts 
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# tail -2 /etc/ansible/hosts 
    [zk]
    hadoop[101:103].yinzhengjie.org.cn
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# vim /etc/ansible/hosts
    [root@hadoop101.yinzhengjie.org.cn ~]# ansible zk -m copy -a 'src=/yinzhengjie/softwares/zookeeper dest=/yinzhengjie/softwares'          #拷贝目录建议大家不要在虚拟机上执行,效率极低,但在真实的服务器上执行速度还是相当的块。
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# scp -r /yinzhengjie/softwares/zookeeper hadoop102.yinzhengjie.org.cn:/yinzhengjie/softwares        #虚拟机拷贝目录推荐使用scp,或者你也基于rsync服务写一个同步脚本
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# scp -r /yinzhengjie/softwares/zookeeper hadoop102.yinzhengjie.org.cn:/yinzhengjie/softwares
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ansible zk -m copy -a 'src=/etc/profile.d/zookeeper.sh dest=/etc/profile.d'
    hadoop103.yinzhengjie.org.cn | SUCCESS => {
        "changed": true, 
        "checksum": "df143023ba24250e7ea17cf590dc0ff03ddf0c48", 
        "dest": "/etc/profile.d/zookeeper.sh", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "2ad2824abe1539ed5c1a6fdbafcf3138", 
        "mode": "0644", 
        "owner": "root", 
        "size": 82, 
        "src": "/root/.ansible/tmp/ansible-tmp-1589236581.53-224194132507684/source", 
        "state": "file", 
        "uid": 0
    }
    hadoop102.yinzhengjie.org.cn | SUCCESS => {
        "changed": true, 
        "checksum": "df143023ba24250e7ea17cf590dc0ff03ddf0c48", 
        "dest": "/etc/profile.d/zookeeper.sh", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "2ad2824abe1539ed5c1a6fdbafcf3138", 
        "mode": "0644", 
        "owner": "root", 
        "size": 82, 
        "src": "/root/.ansible/tmp/ansible-tmp-1589236581.53-112267348533965/source", 
        "state": "file", 
        "uid": 0
    }
    hadoop101.yinzhengjie.org.cn | SUCCESS => {
        "changed": false, 
        "checksum": "df143023ba24250e7ea17cf590dc0ff03ddf0c48", 
        "gid": 0, 
        "group": "root", 
        "mode": "0644", 
        "owner": "root", 
        "path": "/etc/profile.d/zookeeper.sh", 
        "size": 82, 
        "state": "file", 
        "uid": 0
    }
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ansible zk -m copy -a 'src=/etc/profile.d/zookeeper.sh dest=/etc/profile.d'
      关于ansible的快速入门使用,博主推荐阅读:
        https://www.cnblogs.com/yinzhengjie/p/10447587.html

    5>.编写zookeeper的启动脚本

    [root@hadoop101.yinzhengjie.org.cn ~]# vim /usr/local/bin/zookeeper.sh
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# cat /usr/local/bin/zookeeper.sh
    #!/bin/bash
    #@author :yinzhengjie
    #blog:http://www.cnblogs.com/yinzhengjie
    #EMAIL:y1053419035@qq.com
    
    #判断用户是否传参
    if [ $# -ne 1 ];then
        echo "无效参数,用法为: $0  {start|stop|restart|status}"
        exit
    fi
    
    #获取用户输入的命令
    cmd=$1
    
    #定义函数功能
    function zookeeperManger(){
        case $cmd in
        start)
            echo "启动服务"        
            remoteExecution start
            ;;
        stop)
            echo "停止服务"
            remoteExecution stop
            ;;
        restart)
            echo "重启服务"
            remoteExecution restart
            ;;
        status)
            echo "查看状态"
            remoteExecution status
            ;;
        *)
            echo "无效参数,用法为: $0  {start|stop|restart|status}"
            ;;
        esac
    }
    
    
    #定义执行的命令
    function remoteExecution(){
        for (( i=101 ; i<=103 ; i++ )) ; do
                tput setaf 2
                echo ========== zookeeper${i}.yinzhengjie.org.cn zkServer.sh  $1 ================
                tput setaf 9
                ssh hadoop${i}.yinzhengjie.org.cn  "source /etc/profile ; zkServer.sh $1"
        done
    }
    
    #调用函数
    zookeeperManger
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# vim /usr/local/bin/zookeeper.sh
    [root@hadoop101.yinzhengjie.org.cn ~]# ll /usr/local/bin/zookeeper.sh 
    -rw-r--r-- 1 root root 1132 May 12 06:18 /usr/local/bin/zookeeper.sh
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# chmod +x /usr/local/bin/zookeeper.sh        #别忘记为脚本添加执行权限哟~ 
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ll /usr/local/bin/zookeeper.sh 
    -rwxr-xr-x 1 root root 1132 May 12 06:18 /usr/local/bin/zookeeper.sh
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# zookeeper.sh status
    查看状态
    ========== zookeeper101.yinzhengjie.org.cn zkServer.sh status ================
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Error contacting service. It is probably not running.
    ========== zookeeper102.yinzhengjie.org.cn zkServer.sh status ================
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Error contacting service. It is probably not running.
    ========== zookeeper103.yinzhengjie.org.cn zkServer.sh status ================
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Error contacting service. It is probably not running.
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# zookeeper.sh status                #查看zookeeper集群的状态,我们压根没有启动zookeeper服务,因此集群是未运行的,但运行该命令会自动在每个节点创建相应的"dataDir"目录哟~

    6>.配置服务器编号

    [root@hadoop101.yinzhengjie.org.cn ~]# for (( i=101;i<=103;i++ )) do ssh hadoop${i}.yinzhengjie.org.cn "echo -n $i > /yinzhengjie/data/zookeeper/myid" ;done
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# ansible zk -m shell -a 'cat /yinzhengjie/data/zookeeper/myid'
    hadoop102.yinzhengjie.org.cn | SUCCESS | rc=0 >>
    102
    
    hadoop101.yinzhengjie.org.cn | SUCCESS | rc=0 >>
    101
    
    hadoop103.yinzhengjie.org.cn | SUCCESS | rc=0 >>
    103
    
    [root@hadoop101.yinzhengjie.org.cn ~]# 

    7>.启动zookeeper集群

    [root@hadoop101.yinzhengjie.org.cn ~]# zookeeper.sh start
    启动服务
    ========== zookeeper101.yinzhengjie.org.cn zkServer.sh start ================
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    ========== zookeeper102.yinzhengjie.org.cn zkServer.sh start ================
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    ========== zookeeper103.yinzhengjie.org.cn zkServer.sh start ================
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# zookeeper.sh start
    [root@hadoop101.yinzhengjie.org.cn ~]# zookeeper.sh status
    查看状态
    ========== zookeeper101.yinzhengjie.org.cn zkServer.sh status ================
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: follower
    ========== zookeeper102.yinzhengjie.org.cn zkServer.sh status ================
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: leader
    ========== zookeeper103.yinzhengjie.org.cn zkServer.sh status ================
    /yinzhengjie/softwares/jdk1.8.0_201/bin/java
    ZooKeeper JMX enabled by default
    Using config: /yinzhengjie/softwares/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: follower
    [root@hadoop101.yinzhengjie.org.cn ~]# 
    [root@hadoop101.yinzhengjie.org.cn ~]# zookeeper.sh status

    8>.客户端命令行操作

      博主推荐阅读:
        https://www.cnblogs.com/yinzhengjie2020/p/12501295.html

     

  • 相关阅读:
    ie调试器
    修改tomcat的部署名称
    Hibernate级联操作
    eclipse 批量 查询 替换
    Hibernate包及相关工具包下载地址
    new Option及用法
    java字符串的判断
    Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityListeners
    【微信公众平台开发】创建自己定义菜单(四)
    fastjson 的简单使用
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12501023.html
Copyright © 2020-2023  润新知