开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

部署ZooKeeper

先在agent1上部署ZooKeeper,再同步配置到agent2和agent3。

  1. 登录agent1节点并部署ZooKeeper。
    1. 进入“/usr/local”目录,下载并解压zookeeper-3.4.6.tar.gz。
      1
      2
      3
      cd /usr/local
      wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
      tar -zxvf zookeeper-3.4.6.tar.gz
      
    2. 建立软链接,便于后期版本更换。
      1
      ln -s zookeeper-3.4.6 zookeeper
      
  2. 添加ZooKeeper到环境变量。
    1. 打开配置文件。
      1
      vi /etc/profile
      
    2. “i”进入编辑模式,添加ZooKeeper到环境变量。
      1
      2
      export ZOOKEEPER_HOME=/usr/local/zookeeper
      export PATH=$ZOOKEEPER_HOME/bin:$PATH
      
    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    4. 使环境变量生效。
      1
      source /etc/profile
      
    5. 在agent2和agent3节点重复执行2.a2.d,配置ZooKeeper的环境变量。
  3. 配置ZooKeeper。
    1. 在agent1上进入ZooKeeper所在目录。
      1
      cd /usr/local/zookeeper/conf
      
    2. 拷贝并重命名配置文件。
      1
      cp zoo_sample.cfg zoo.cfg
      
    3. 修改通用配置。
      1. 打开文件。
        1
        vi zoo.cfg
        
      2. “i”进入编辑模式,修改数据目录。
        1
        dataDir=/usr/local/zookeeper/tmp
        
      3. 可选:添加AdminServer配置。此配置项于ZooKeeper 3.5.0版本引入,低于此版本可跳过此步骤。
        1
        admin.enableServer=false
        
      4. 在文件末尾添加如下代码,其中server.1~server.3是部署ZooKeeper的节点。
        1
        2
        3
        server.1=agent1:2888:3888
        server.2=agent2:2888:3888
        server.3=agent3:2888:3888
        
      5. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    4. 添加JMX配置。
      1. 编辑文件zkServer.sh。
        1
        vi /usr/local/zookeeper/bin/zkServer.sh
        
      2. “i”进入编辑模式,添加JMX配置至图示位置。
        1
        JMXDISABLE=true
        

        若使用ZooKeeper 3.6及以上版本,则可在“/usr/local/zookeeper/conf”目录下新建文件zookeeper-env.sh,将JMX配置设置在此文件中,便于后续配置调整。

      3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    5. 可选:添加JVM配置。

      若使用ZooKeeper 3.6及以上版本,相关配置已预先设置完毕,可跳过此步骤。

      1. 编辑文件zkEnv.sh。
        1
        vi /usr/local/zookeeper/bin/zkEnv.sh
        
      2. “i”进入编辑模式,添加如下配置至文件末尾。
        1
        2
        3
        4
        5
        6
        7
        # default heap for zookeeper server
        ZK_SERVER_HEAP="${ZK_SERVER_HEAP:-10000}"
        export SERVER_JVMFLAGS="-Xmx${ZK_SERVER_HEAP}m $SERVER_JVMFLAGS"
        
        # default heap for zookeeper client
        ZK_CLIENT_HEAP="${ZK_CLIENT_HEAP:-256}"
        export CLIENT_JVMFLAGS="-Xmx${ZK_CLIENT_HEAP}m $CLIENT_JVMFLAGS"
        
      3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    6. 创建“tmp”目录作为数据目录。
      1
      mkdir /usr/local/zookeeper/tmp
      
    7. “tmp”目录中创建一个空文件,并向该文件写入myid内容。
      1
      2
      touch /usr/local/zookeeper/tmp/myid
      echo 1 > /usr/local/zookeeper/tmp/myid
      
    8. 配置文件权限。
      1
      2
      3
      4
      5
      chmod 750 /usr/local/zookeeper
      find /usr/local/zookeeper/bin -name "*.sh"  | xargs -i chmod 500 {}
      find /usr/local/zookeeper/conf -name "*" -type f | xargs -i chmod 600 {}
      chown -R root /usr/local/zookeeper-3.4.6
      chgrp -R root /usr/local/zookeeper-3.4.6
      
  4. 同步配置到agent2和agent3。
    1. 在agent1同步ZooKeeper目录到其他节点。
      1
      2
      scp -r /usr/local/zookeeper-3.4.6 root@agent2:/usr/local
      scp -r /usr/local/zookeeper-3.4.6 root@agent3:/usr/local
      
    2. 分别登录agent2、agent3,创建软链接并修改myid内容。
      1. 在agent2上:
        1
        2
        3
        cd /usr/local
        ln -s zookeeper-3.4.6 zookeeper
        echo 2 > /usr/local/zookeeper/tmp/myid
        
      1. 在agent3上:
        1
        2
        3
        cd /usr/local
        ln -s zookeeper-3.4.6 zookeeper
        echo 3 > /usr/local/zookeeper/tmp/myid