zookeeper是一个为分布式应用所设计的开源协调服务。设计目的是为了减轻分布式应用程序所承担的协调服务。
zookeeper的设计目标:(1)简单化。(2)健壮性。(3)有序性。(4)速度优势。
zookeeper安装:
(1)准备环境 安装好jdk 搭建好集群环境
(2)官网下载zookeeper安装包 http://zookeeper.apache.org/
(3)在集群中的一台电脑上进行操作,进入安装目录,本人这边安装在 /app 下 cd /app
解压安装包 tar zxf zookeeper-3.4.6.tar.gz
(4)修改配置文件 在/app/zookeeper-3.4.6/conf 目录下有cgf的模板,将zoo_sample.cfg拷贝一份命名为zoo.cfg,也放在conf目录下。在文本的最后加上几个值
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
server.4=hadoop4:2888:3888
server.5=hadoop5:2888:3888
server.6=hadoop6:2888:3888
集群有几台电脑即添加几行,只需修改ip映射地址即可。即将hadoop1,hadoop2.。。等替换成自己电脑的ip地址或者映射地址。
还需要修改的地方就是dataDir的值,配置文件中默认为dataDir=/tmp/zookeeper/ 修改完之后在相应的地方创建相应的文件夹 mkdir指令
如本人设置dataDir=/app/zookeeper-3.4.6/tmp/zookeeper 即需要创建tmp文件夹和tmp下的zookeeper文件夹。
(5)在dataDir目录下新建文本,命名为myid,文本内容为数字,其数字值与配置文件zoo.cgf中server冒号后的值相同。
(6)单台机子操作完成,将文件夹传到其他台电脑的相应位置,例如 scp -r /app/zookeeper-3.4.6/ hadoop@hadoop2:/app/
之后采用ssh无密码登录其他集群的机子,或者其他方法,修改之前dataDir目录下myid里文本的值,修改成相应的数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就修改成这个数字。
以上安装过程完成,可以开始启动集群。
在每台机子上执行启动ZooKeeper服务的脚本 bin/zkServer.sh start 如果没有设置环境变量或者没有进入安装目录,代码前还需要加入zookeeper的完整路径
执行后,结果如下
[hadoop@hadoop2 ~]$ /app/zookeeper-3.4.6/bin/zkServer.sh start
JMX enabled by default
Using config: /app/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
该台节点启动成功,陆续执行所有的节点。
全部执行之后,即可查看每台zookeeper的状态 指令为 bin/zkServer.sh status
[hadoop@hadoop2 ~]$ /app/zookeeper-3.4.6/bin/zkServer.sh status
JMX enabled by default
Using config: /app/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower
此时则会看到该台计算机节点是follower还是leader。
至此,安装成功。
同时可以通过客户端节点登录zookeeper集群,指令为 /app/zookeeper-3.4.6/bin/zkCli.sh hadoop3:2181
[hadoop@hadoop2 ~]$ /app/zookeeper-3.4.6/bin/zkCli.sh hadoop3:2181
Connecting to localhost:2181
2015-09-21 10:22:31,133 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2015-09-21 10:22:31,136 [myid:] - INFO [main:Environment@100] - Client environment:host.name=hadoop2
2015-09-21 10:22:31,136 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.7.0_21
2015-09-21 10:22:31,137 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2015-09-21 10:22:31,137 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/app/software/jdk1.7.0_21/jre
2015-09-21 10:22:31,137 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/app/zookeeper-3.4.6/bin/../build/classes:/app/zookeeper-3.4.6/bin/../build/lib/*.jar:/app/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/app/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/app/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/app/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/app/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/app/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/app/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/app/zookeeper-3.4.6/bin/../conf:.:/app/software/jdk1.7.0_21/lib:/app/software/jdk1.7.0_21/lib/tools.jar
2015-09-21 10:22:31,138 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/i386:/lib:/usr/lib
2015-09-21 10:22:31,138 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2015-09-21 10:22:31,138 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2015-09-21 10:22:31,138 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2015-09-21 10:22:31,138 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=i386
2015-09-21 10:22:31,138 [myid:] - INFO [main:Environment@100] - Client environment:os.version=2.6.32-358.el6.i686
2015-09-21 10:22:31,138 [myid:] - INFO [main:Environment@100] - Client environment:user.name=hadoop
2015-09-21 10:22:31,138 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/home/hadoop
2015-09-21 10:22:31,138 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/home/hadoop
2015-09-21 10:22:31,139 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@1392356