首页 > 代码库 > 【Zookeeper学习】Zookeeper安装部署

【Zookeeper学习】Zookeeper安装部署

【时间】2014年11月19日

【平台】Centos 6.5

【工具】

【软件】jdk-7u67-linux-x64.rpm

    zookeeper-3.4.6.tar.gz

【步骤】

    1. 准备条件

      (1)集群规划

主机类型IP地址域名
zookeeper1192.168.50.21zookeeper1.hadoop.com
zookeeper2192.168.50.22zookeeper2.hadoop.com
zookeeper3192.168.50.23zookeeper3.hadoop.com

   

 

 

 

 

        (2)以root身份登录操作系统

      (3)在集群中的每台主机上执行如下命令,设置主机名。

          hostname *.hadoop.com 

          编辑文件/etc/sysconfig/network如下

          HOSTNAME=*.hadoop.com 

      (4)修改文件/etc/hosts如下

         192.168.86.21 zookeeper1.hadoop.com
         192.168.86.22 zookeeper2.hadoop.com
         192.168.86.23 zookeeper3.hadoop.com

         执行如下命令,将hosts文件复制到集群中每台主机上

         scp /etc/hosts 192.168.50.*:/etc/hosts 

      (5)安装jdk

         rpm -ivh jdk-7u67-linux-x64.rpm 

      (6)关闭iptables

         service iptables stop  

         chkconfig iptables off 

      (7)关闭selinux。修改文件/etc/selinux/config,然后重启操作系统

         SELINUX=disabled

    2. 安装

      (1)解压

         tar -zxf zookeeper-3.4.6.tar.gz 

         cd zookeeper-3.4.6 

      (2)示例如下

        

      (3)根据实际应用场景安装部署

        1)单机部署——适用于开发测试

          配置:conf/zoo.cfg

             tickTime=2000 

             initLimit=10 

             syncLimit=5

             dataDir=/var/lib/zookeeper 

             clientPort=2181 

          启动:

             bin/zkServer.sh start 

          查看:

            

          停止:

            

          连接到Zookeeper:

              bin/zkCli.sh -server 127.0.0.1:2181  适用于Java开发

            

 

        2)伪集群部署(单机多进程)——适用于开发测试

           配置:conf/zoo.cfg

             tickTime=2000 

             initLimit=10 

             syncLimit=5 

             dataDir=/var/lib/zookeeper 

             clientPort=2181

             autopurge.purgeInterval=12 

             autopurge.snapRetainCount=3 

             server.1=192.168.50.254:2887:3887 

             server.2=192.168.50.254:2888:3888 

             server.3=192.168.50.254:2889:3889 

            复制conf/zoo.cfg为三份:conf/zoo1.cfg、conf/zoo2.cfg、conf/zoo3.cfg

            修改zoo1.cfg  

                 dataDir=/var/lib/zookeeper/node1 

                 clientPort=2181

            修改zoo2.cfg  

                 dataDir=/var/lib/zookeeper/node2

                 clientPort=2182

             修改zoo3.cfg  

                 dataDir=/var/lib/zookeeper/node3

                 clientPort=2183

             执行如下命令:

                 mkdir /var/lib/zookeeper/node1 && echo 1 > /var/lib/zookeeper/node1/myid 

                 mkdir /var/lib/zookeeper/node2 && echo 1 > /var/lib/zookeeper/node2/myid 

                 mkdir /var/lib/zookeeper/node3 && echo 1 > /var/lib/zookeeper/node3/myid 

            启动:

             bin/zkServer.sh start conf/zoo1.cfg 

             bin/zkServer.sh start conf/zoo2.cfg 

             bin/zkServer.sh start conf/zoo3.cfg 

          查看:

            

          停止:

            

          连接到Zookeeper:

             bin/zkCli.sh -server 127.0.0.1:2181 

             bin/zkCli.sh -server 127.0.0.1:2182 

             bin/zkCli.sh -server 127.0.0.1:2183 

            示例如下:(输入quit退出)

             

        3)集群部署——适用于生产环境

           配置:conf/zoo.cfg

             tickTime=2000 

             initLimit=10 

             syncLimit=

             dataDir=/var/lib/zookeeper 

             clientPort=2181

             autopurge.purgeInterval=12 

             autopurge.snapRetainCount=

             server.1=zookeeper1.hadoop.com:2888:3888

             server.2=zookeeper2.hadoop.com:2888:3888

             server.3=zookeeper3.hadoop.com:2888:3888

            执行如下命令,把zoo.cfg复制到集群中的每台主机上

             scp <本地主机配置文件> 192.168.50.*:<目标主机配置文件路径> 

          优化:设置Java heap,以避免发生内存交换(swap)

             echo -e "\nJVMFLAGS=-Xmx512m" >> bin/zkEnv.sh 

             scp bin/zkEnv.sh 192.168.50.*:<目标主机配置文件路径> 

          启动:在集群中的每台主机上执行如下命令

             bin/zkServer.sh start 

          查看:

             bin/zkServer.sh status

          停止:

             bin/zkServer.sh stop

          连接:

             bin/zkCli.sh -server zookeeper1:2181 

             bin/zkCli.sh -server zookeeper2:2181

             bin/zkCli.sh -server zookeeper3:2181

    3. 配置。将以下文件修改完毕后,用scp命令复制到集群中的所有主机上

      (1)修改文件/etc/spark/conf/spark-env.sh

          export STANDALONE_SPARK_MASTER_HOST= master.hadoop.com 

      (2)修改文件/etc/spark/conf/spark-defaults.conf

          spark.master                     spark://master.hadoop.com:7077 

            spark.eventLog.enabled           true 

          spark.eventLog.dir               hdfs://master.hadoop.com:8020/user/spark/eventlog

          spark.yarn.historyServer.address http://master.hadoop.com:18081 

          spark.executor.memory            2g 

          spark.logConf                    true 

      (3)复制配置文件到集群所有主机

          scp /etc/spark/conf/*  192.168.50.10:/etc/spark/conf/* 

 

【参考】

    1)Zookeeper官方网站   http://zookeeper.apache.org

 

【Zookeeper学习】Zookeeper安装部署