• Zookper是一种分布式的,开源的,应用于分布式应用的协作服务。它提供了一些简单的操作,使得分布式应用可以基于这些接口实现诸如同步、配置维护和分集群或者命名的服务。 网上有很多的安装教程,有些确实很不错,但总有一些比较坑的,误导了大家的安装,这次把自己亲身经历,安装的步骤和在安装中遇到的一些问题发布出来,供大家共同学习。
  • 首先,当然是下载zookeeper的安装包。下载地址:​​http://apache.claz.org/zookeeper/zookeeper-3.4.5/​​​  通过下面的命令:wget​​http://apache.claz.org/zookeeper/zookeeper-3.4.5/​
  • 然后进入该目录,直接解压: tar zxvf zookeeper-3.4.5.tar.gz
  • 修改    zookeeper-3.4.5/conf目录下面的zoo_sample.cfg为zoo.cfg 。通过命令 : mv  zoo_sample.cfg  zoo.cfg
  • 并且进一步配置文件的内容如下所示:

    [html]view plaincopyprint?
  • tickTime=2000
  • dataDir=/home/hadoop/zookeeper/data
  • clientPort=2181
  • initLimit=10
  • syncLimit=5
  • server.1=Master.Hadoop:2888:3888
  • server.2=Slave1.Hadoop:2888:3888
  • server.3=Slave2.Hadoop:2888:3888
  • 其中各个字段都有自己的含义,有兴趣的可以自己查阅相关字段的意义。下面的server.1,server.2,server.3标签表示的是3个zookeeper节点,他们都是相同的地位,在工作的时候他们通过一个算法来推举出来一个leader其他的都是follower,在后面的验证中可以看到。他的服务如下图所示:

    zookeeper安装_html

  • 发布到其他的两个节点,(执行前注意自己的所在目录):

    [html]view plaincopyprint?​
  • scp -r zookeeper-3.4.5/ hadoop@Slave1.Hadoop:~/zookeeper/
  • scp -r zookeeper-3.4.5/ hadoop@Slave2.Hadoop:~/zookeeper/

  • 设置myid    在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字,例如:

    [html]view plaincopyprint?​
  • hadoop@Master:~/zookeeper$ echo "1" > /home/hadoop/zookeeper/myid
  • hadoop@Slave1:~/zookeeper$ echo "2" > /home/hadoop/zookeeper/myid
  • hadoop@Slave2:~/zookeeper$ echo "3" > /home/hadoop/zookeeper/myid

  • 启动zookeeper

    [html]view plaincopyprint?​
  • hadoop@Master:~/zookeeper/zookeeper-3.3.4$ bin/zkServer.sh start
  • hadoop@Slave1:~/zookeeper/zookeeper-3.3.4$ bin/zkServer.sh start
  • hadoop@Slave2:~/zookeeper/zookeeper-3.3.4$ bin/zkServer.sh start
  • 出现的一个问题。下面是查看日志的截图:

    zookeeper安装_hadoop_02

  • 经过检查发现时在配置文件 zoo.cfg中写的目录有问题。配置的目录和新建myid的目录不一样造成的。在第6步中容易发现问题。修改myid的目录。
  • 查看是否成功。

    zookeeper安装_zookeeper_03

  • 后面检测三个节点的状态:

    zookeeper安装_hadoop_04


zookeeper安装_html_05

zookeeper安装_hadoop_06