• ZooKeeper 集群环境搭建


    由 node-01、node-02 和 node-03 三个节点组成 ZooKeeper 集群环境,搭建步骤如下:

    步骤一:上传 zookeeper-3.4.6.tar.gz 安装包到 node-01 并解压
    [root@node-01 ~]# ll
    总用量 17288
    drwxr-xr-x. 6 root root       86 3月  26 17:32 apps
    -rw-r--r--. 1 root root 17699306 3月  30 16:19 zookeeper-3.4.6.tar.gz #上传的zookeeper压缩包
    [root@node-01 ~]# tar -zxvf zookeeper-3.4.6.tar.gz -C apps/
    [root@node-01 ~]# rm -rf zookeeper-3.4.6.tar.gz
    
    步骤二:修改 conf/zoo.cfg 配置文件
    [root@node-01 ~]# cd apps/zookeeper-3.4.6/conf/
    [root@node-01 conf]# ll
    总用量 12
    -rw-rw-r--. 1 1000 1000  535 2月  20 2014 configuration.xsl
    -rw-rw-r--. 1 1000 1000 2161 2月  20 2014 log4j.properties
    -rw-rw-r--. 1 1000 1000  922 2月  20 2014 zoo_sample.cfg
    # 拷贝 zoo_sample.cfg 文件并改名为 zoo.cfg
    [root@hdp-01 conf]# cp zoo_sample.cfg zoo.cfg
    [root@hdp-01 conf]# vi zoo.cfg 
    #修改第 12 行文件存储路径
    dataDir=/root/apps/zookeeper-3.4.6/data
    
    #行尾添加ZooKeeper集群节点
    server.1=node-01:2888:3888
    server.2=node-02:2888:3888
    server.3=node-03:2888:3888
    
    步骤三:到 node-01 上新建 zookeeper 数据存储目录 data,并在 data 目录中创建一个文件 myid,内容为 1

    myid 文件存放 Zookeeper 集群节点的唯一标识

    [root@node-01 conf]# cd /root/apps/zookeeper-3.4.6
    [root@node-01 zookeeper-3.4.6]# mkdir data
    [root@node-01 zookeeper-3.4.6]# cd data/
    [root@node-01 data]# echo "1" > myid
    
    步骤四:将 node-01 的 zookeeper 安装包拷贝给 node-02 、node-03
    [root@node-01 data]# cd /root/apps/
    [root@node-01 apps]# scp -r zookeeper-3.4.6/ node-02:$PWD
    [root@node-01 apps]# scp -r zookeeper-3.4.6/ node-03:$PWD
    
    步骤五:到 node-02 上,修改 zookeeper 数据存储目录 data 下的 myid 文件,将其内容改为 2
    [root@node-02 ~]# cd /root/apps/zookeeper-3.4.6/data
    [root@node-02 data]# echo "2" > myid
    
    步骤六:到 node-03 上,修改 zookeeper 数据存储目录 data 下的 myid 文件,将其内容改为 3
    [root@node-03 ~]# cd /root/apps/zookeeper-3.4.6/data
    [root@node-03 data]# echo "3" > myid
    
    步骤七:启动 zookeeper 集群(node-01、node-02、node-03)
    ### node-01
    [root@node-01 ~]# cd /root/apps/zookeeper-3.4.6/
    [root@node-01 zookeeper-3.4.6]# bin/zkServer.sh start
    JMX enabled by default
    Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    #查看zookeeper运行状态
    [root@node-01 zookeeper-3.4.6]# bin/zkServer.sh status
    JMX enabled by default
    Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Error contacting service. It is probably not running. #只有一票无法当选 Leader
    
    ### node-02
    [root@node-02 ~]# cd /root/apps/zookeeper-3.4.6/
    [root@node-02 zookeeper-3.4.6]# bin/zkServer.sh start
    JMX enabled by default
    Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    #查看zookeeper运行状态
    [root@node-02 zookeeper-3.4.6]# bin/zkServer.sh status
    JMX enabled by default
    Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Mode: leader # leader 领导者(相当于 master)
    
    ### node-03
    [root@node-03 ~]# cd /root/apps/zookeeper-3.4.6/
    [root@node-03 zookeeper-3.4.6]# bin/zkServer.sh start
    JMX enabled by default
    Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED  
    
    #查看zookeeper运行状态
    [root@node-03 zookeeper-3.4.6]# bin/zkServer.sh status
    JMX enabled by default
    Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Mode: follower # follower 跟随者(相当于 slave)
    
    #再次查看 node-01 zookeeper运行状态
    [root@node-01 zookeeper-3.4.6]# bin/zkServer.sh status
    JMX enabled by default
    Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Mode: follower # 现在变为 follower 状态
    
    步骤八:分别在 node-01、node-02 和 node-03 查看 ZooKeeper 进程
    [root@node-01 ~]# jps
    1825 QuorumPeerMain #zookeeper 进程
    1915 Jps
    
    [root@node-02 ~]# jps
    1825 QuorumPeerMain #zookeeper 进程
    1915 Jps
    
    [root@node-03 ~]# jps
    1825 QuorumPeerMain #zookeeper 进程
    1915 Jps
    

    以上说明 ZooKeeper 集群中三个 ZooKeeper 服务器进程都已正常启动

    步骤九:在 node -01 创建自动批量启动 zookeeper 集群脚本 zkCluster.sh
    [root@node-01 zookeeper-3.4.6]# cd /root/apps/zookeeper-3.4.6/bin
    [root@node-01 bin]# vim zkCluster.sh
    #!/bin/bash
    for host in node-01 node-02 node-03
    do
    echo "${host}:${1}ing....."
    ssh $host "source /etc/profile;/root/apps/zookeeper-3.4.6/bin/zkServer.sh $1"
    done
    
    sleep 2
    
    for host in node-01 node-02 node-03
    do
    ssh $host "source /etc/profile; /root/apps/zookeeper-3.4.6/bin/zkServer.sh status"
    done
    
    #添加脚本执行权限
    [root@node-01 bin]# chmod +x zkCluster.sh
    
    步骤十:在 node-01 配置 ZooKeeper 环境变量
    [root@node-01 bin]# vim /etc/profile
    #行尾添加如下配置
    export ZOOKEEPER_HOME=/root/apps/zookeeper-3.4.6
    export PATH=$PATH:$ZOOKEEPER_HOME/bin
    #执行脚本让环境变量生效
    [root@node-01 bin]# source /etc/profile
    
    步骤十一:将 node-01 的 ZooKeeper 集群脚本 zkCluster.sh 和 环境配置文件 profile 拷贝到 node-02、node-03
    [root@node-01 bin]# cd /root/apps/zookeeper-3.4.6/bin
    [root@node-01 bin]# scp zkCluster.sh node-02:$PWD
    [root@node-01 bin]# scp zkCluster.sh node-03:$PWD
    [root@node-01 bin]# scp /etc/profile node-02:$PWD
    [root@node-01 bin]# scp /etc/profile node-03:$PWD
    
    #添加脚本执行权限
    [root@node-02 bin]# cd /root/apps/zookeeper-3.4.6/bin
    [root@node-02 bin]# chmod +x zkCluster.sh
    #执行脚本让环境变量生效
    [root@node-02 bin]# source /etc/profile
    
    #添加脚本执行权限
    [root@node-03 bin]# cd /root/apps/zookeeper-3.4.6/bin
    [root@node-03 bin]# chmod +x zkCluster.sh
    #执行脚本让环境变量生效
    [root@node-03 bin]# source /etc/profile
    
    步骤十二:启动客户端
    [root@node-01 ~]# zkCli.sh
    [zk: localhost:2181(CONNECTED) 0]
    
    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    listView控件演示程序
    猪悟能淘宝商品下载专家v3版开发手记
    c# WebClient类
    分隔控件splitter演示程序
    C#中SESSIONID的获取
    工具栏toolBar演示程序
    Cookie总结
    C#获取网页源码并且自动判断网页字符集编码
    如何在Google Code上建立私有代码版本库
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
  • 原文地址:https://www.cnblogs.com/binbingg/p/14598343.html
Copyright © 2020-2023  润新知