Chinaunix首页 | 论坛 | 博客
  • 博客访问: 405621
  • 博文数量: 92
  • 博客积分: 3153
  • 博客等级: 中校
  • 技术积分: 780
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-03 16:26
文章存档

2011年(21)

2010年(71)

分类: 云计算

2011-06-22 14:59:44

ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
Zookeeper是Google的Chubby一个开源的实现.是高有效和可靠的协同工作系统.Zookeeper能够用来leader选举,配置信息维护等.在一个分布式的环境中,我们需要一个Master实例或存储一些配置信息,确保文件写入的一致性等.
ZooKeeper目前是安装HBase 0.90.2的必要前提,所以在安装HBase之前,先要确保ZooKeeper正常运行.

1.下载安装包
2.将安装包解压到hadoop同一子目录,如/home/grid/zookeeper-3.3.3,编辑conf/zoo.cfg文件:
  1. The number of milliseconds of each tick
  2. tickTime=2000
  3. # The number of ticks that the initial
  4. # synchronization phase can take
  5. initLimit=10
  6. # The number of ticks that can pass between
  7. # sending a request and getting an acknowledgement
  8. syncLimit=5
  9. # the directory where the snapshot is stored.
  10. dataDir=/home/grid/zookeeper
  11. #dataLogDir=/hadoop/zookeeper/logs
  12. # the port at which the clients will connect
  13. clientPort=3355
  14. # 2888,3888 are election port
  15. server.1=hadoop1:2888:3888
  16. server.2=hadoop2:2888:3888
  17. server.3=hadoop3:2888:3888
  18. server.4=hadoop4:2888:3888
其中tickTime表示节点间通信超时的单位时长,单位是毫秒,initLimit是指follower服务器初始化连接到leader服务器时可以忍受的超时时间,时长以initLimit*tickTime表示,syncLimit指leader与follower之间通信的超时时长,以syncLimit*tickTime表示,这里是5*2000=10秒
"server.1=hadoop1:2888:3888"这一句中的server.1表示节点编号,"hadoop1"表示这台服务器的主机名,也可以直接指定ip地址,"2888"是ZooKeeper服务间通信的端口,"3888"是ZooKeeper服务与其他服务通信的端口
dataDir指定ZooKeeper的数据目录

2.建立/home/grid/zookeeper目录
在其中新建一个空白文件,名为myid
3.把/home/grid/zookeeper-3.3.3和/home/grid/zookeeper两个目录复制到所有服务器节点
4.修改/home/grid/zookeeper/myid,比如:hadoop1上,修改myid内容为1,hadoop2上,修改为2
5.启动ZooKeeper
在所有机器上分别启懂ZooKeeper:
/home/grid/zookeeper-3.3.3/bin/zkServer.sh start
在启动过程中,被选举为leader的服务器,会因为其他服务器连不上而报错,所有服务器都启动以后,报错就会消失
6.查看服务器状态
/home/grid/zookeeper-3.3.3/bin/zkServer.sh status
输出最后一行会指出当前服务器所在集群的角色,不是follower就是leader,否则说明服务有问题
7.停止服务器
/home/grid/zookeeper-3.3.3/bin/zkServer.sh stop


ZooKeeper的选举算法使用的是Paxos,算法的详细过程见:
阅读(3144) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~