一、zookeeper
Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等
Zookeeper服务器集群规模不小于3个节点,要求各服务器之间系统时间要保持一致。ZooKeeper的搭建是为了后面HBase的使用。
二、集群模式搭建
我的集群是Hadoop1.2.1版本,共三个节点
将使用的是zookeeper-3.4.5.tar.gz版本,下载地址http://pan.baidu.com/s/1gf9AWs7
1.解压
解压ZooKeeper安装包,我的解压目录是/usr/zookeeper-3.4.5
安装包在桌面
命令:sudo tar –zxvf /home/zhong/Desktop/zookeeper-3.4.5.tar.gz –C /usr
更改文件夹owner: sudo chown –R zhong:root zookeeper-3.4.5
完成之后可以通过命令:ls –l 查看
2.修改环境变量
命令:sudo vim /etc/profile
增加一行:export ZOOKEEPER_HOME=/usr/zookeeper-3.4.5
并添加PATH
退出后执行命令:source /etc/profile 是配置生效
3.进入zookeeper的conf目录下,修改文件名:mvzoo_sample.cfg zoo.cfg
4.编辑zoo.cfg (在conf目录下操作)
执行命令:sudo vim zoo.cfg
①修改dataDir=/usr/zookeeper-3.4.5/data
②新增server.0=Master:2888:3888
server.1=Slave1:2888:3888
server.2=Slave2:2888:3888
5.创建data文件夹,并创建myid文件:
① 建data文件夹:sudo mkdir /usr/zookeeper-3.4.5/data
② 建myid文件:sudo vim myid,并设置第一台server为0。
6.在其他两个Slave节点机器中同样配置
可使用scp命令直接复制过去
复制环境变量
① scp /etc/profile zhong@Slave1:/etc
② scp /etc/profile zhong@Slave2:/etc
复制zoopeeker文件夹
sduo scp /usr /zookeeper-3.4.5 zhong@Slave1:/usr/
sudo scp /usr /zookeeper-3.4.5 zhong@Slave2:/usr/
在其余两台机器中修改myid,分别设置为1和2
7.启动ZooKeeper,分别在三个节点的ZOOKEEPER_HOME/bin目录下执行命令:./zkServer.sh start
注新手常犯错误:我在首次运行的时候先是在ZOOKEEPER_HOME/bin目录下按照习惯直接执行zkServer.sh start命令,提示错误command not found,上网查了之后才发现正确的为./zkServer.sh start或者在ZOOKEEPER_HOME目录下直接执行bin/zkServer.sh start
8.检查ZooKeeper集群中各节点角色状态
分别在三个节点的ZOOKEEPER_HOME/bin目录下执行命令:./zkServer.sh status
9. 所有节点ZOOKEEPER_HOME/bin目录下都执行命令zkServer.sh stop关闭ZooKeeper
三、简单测试
进行简单的读写操作测试ZooKeeper系统的一致性
在ZOOKEEPER_HOME/bin目录下执行命令:./Cli.sh
在其中一个节点上执行一个写操作:create /MyTest01 test,在所有的节点上都可以执行get命令得到数据。