ZooKeeper群集安装
4节点Hadoop安装ZooKeeper。环境:CentOS 6.4,Hadoop 2.6.0,ZooKeeper 3.4.6
HostName | Hadoop Role |
myid
|
HDP1
|
Slave |
1
|
HDP2
|
Master
|
2
|
HDP3
|
Slave |
3
|
HDP4
|
Slave
|
4
|
tar -xvzf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper
2. 复制并修改配置文件
cd /usr/local/zookeeper
cp conf/zoo_sample.cfg conf/zoo.cfg
zoo.cfg中修改相关参数:
#tickTime是zookeeper中的基本时间单位,此处用于定义一个ticktime是多长,单位毫秒
tickTime=2000
#存储内存中的数据库快照的位置,如果没有指定dataLogDir,还将存储数据库更新的事务日志
dataDir=/usr/local/zookeeper/data
#数据库事务日志的位置
dataLogDir=/usr/local/zookeeper/log
#为了客户端连接而侦听的端口
clientPort=2181
#允许Follower连接并与Leader同步的时长,单位是tickTime
initLimit=5
#允许Follower与ZooKeeper同步的时长,单位是tickTime
syncLimit=2
#组成ZooKeeper的成员服务器。server.x的x是服务器号,与对应服务器dataDir中myid文件内的号码一致。
#指定两个端口号,前一个用于Follower连接Leader,后一个用于Leader选举。
server.1=HDP1:2888:3888
server.2=HDP2:2888:3888
server.3=HDP3:2888:3888
server.4=HDP4:2888:3888
3. 创建对应的data和log目录
mkdir /usr/local/zookeeper/{data,log}
4. 将安装目录分发到所有节点,完成所有节点的zookeeper安装
scp -r /usr/local/zookeeper hdp@hdpX:/usr/local
5. 所有节点添加环境变量,方便调用zookeeper
sudo vim /etc/profile
#ZooKeeper Env
export ZK_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZK_HOME/bin
. /etc/profile
6. 所有节点上创建相应的myid文件
[hdp@HDP1 ~]$ echo "1">/usr/local/zookeeper/data/myid
7. 所有节点上启动zookeeper进程
zkServer.sh start
启动后,通过jps查看,会有一个QuorumPeerMain进程
8. 查看状态和使用客户端连接
zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
zkCli.sh -server hdp1:2181