ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
1.安装jdk
步骤省略,不清楚的百度一下。
2.配置2台ZooKeeper服务集群
准备环境:2台linux服务 192.168.36.91 和192.168.36.127
在192.168.36.91 上创建用户ZooKeeper ,并切换该用户目录下:
(1)下载:wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
解压 tar -zxvf zookeeper-3.4.6.tar.gz
(2)创建数据、日志目录
cd /home/zookeeper/zookeeper-3.4.6
mkdir data
mkdir logs
(3)修改配置文件
cd conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
配置如下:
tickTime=2000其他配置请参考官网
initLimit=10
syncLimit=5
#数据目录
dataDir=/home/zookeeper/zookeeper-3.4.6/data
#日志目录
dataLogDir=/home/zookeeper/zookeeper-3.4.6/logs
clientPort=2181
#集群配置
server.1=192.168.36.91:2888:3888
server.2=192.168.36.127:2888:3888
(4)设置myid
在我们创建的data目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字
echo "1" > /home/zookeeper/zookeeper-3.4.6/data/myid
另台服务192.168.36.127安装类似,不同的是 myid输入的为2
(5)启动 、关闭、查看状态
./bin/zkServer.sh start
./bin/zkServer.sh stop
./bin/zkServer.sh status
查看服务注册:
命令行: (详情参考: http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html)
telnet 192.168.36.91 2181
dump
或者 echo dump | nc 192.168.36.91 2181
(6)遇见问题
启动后无法连接,telnet 192.168.36.127 2181 提示:“no route to host”(安装的是虚拟机,使用桥接方式),路由不可达,使用:iptables -F 清楚路由规则或关闭iptables(命令:service iptables stop)
3、配置监控
考虑使用taobao的taokeeper
https://github.com/alibaba/taokeeper
https://github.com/alibaba/taokeeper/downloads
使用参考:
http://jm-blog.aliapp.com/?p=1450
http://sofar.blog.51cto.com/353572/1298468
4、管理工具
(1)zookeeper-web - 在线 zookeeper管理工具
zookeeper-web是一个简单的、方便的zookeeper管理工具。我厌烦了通过命令行来管理zookeeper,同时需要一个我熟悉的框架来开发的工具。借鉴了github上一个用python写的管理工具(抱歉,我后来没有找到这个项目的地址)。
使用主流的springmvc、freemarker、bootstrap和zkclient来开发。
地址:https://git.oschina.net/crystony/zookeeper-web
(2)node-zk-browser 使用node.js开发的web管理界面
地址:https://github.com/killme2008/node-zk-browser
安装:http://www.rigongyizu.com/node-zookeeper-browser-install/