ZooKeeper的集群安装
虚拟机的集群:
hostname | hadoop role | myid |
---|---|---|
master | Master | 1 |
slave1 | Slave | 2 |
slave2 | Slave | 3 |
http://apache.fayea.com/zookeeper/stable/
1.将下载好的zookeeper-3.4.9.tar.gz传送到你的master主机上并解压重命名文件夹为zookeeper,理论上哪台主机都可以,但是之后会在一次配置之后传送到其他的slave机器上,所以在master主机上会比较方便.
#解压
tar zxvf zookeeper-3.4.9.tar.gz
mv zookeeper-3.4.9 zookeeper
#这里的zookeeper路径是/home/hadoop
2.进入conf目录下复制并修改配置文件
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
#zoo.cfg中修改相关参数:
#tickTime是zookeeper中的基本时间单位,此处用于定义一个ticktime是多长,单位毫秒
tickTime=2000
#存储内存中的数据库快照的位置,如果没有指定dataLogDir,还将存储数据库更新的事务日志
dataDir=/home/hadoop/zookeeper/data
#这里的data文件夹需要自己创建
#数据库事务日志的位置
dataLogDir=/home/hadoop/zookeeper/log
#这里的log文件夹需要自己创建
#为了客户端连接而侦听的端口
clientPort=2181
#允许Follower连接并与Leader同步的时长,单位是tickTime
initLimit=5
#允许Follower与ZooKeeper同步的时长,单位是tickTime
syncLimit=2
#组成ZooKeeper的成员服务器。server.x的x是服务器号,与对应服务器dataDir中myid文件内的号码一致。
#指定两个端口号,前一个用于Follower连接Leader,后一个用于Leader选举。
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
#这是分布式环境的配置,如果是在单机上配置,则需要修改成不同的端口号
3.将配置文件中的data和log目录
mkdir /home/hadoop/zookeeper/{data,log}
4.将安装目录zookeeper分发到所有slave
scp -r /home/hadoop/zookeeper hadoop@slave1:/home/hadoop
scp -r /home/hadoop/zookeeper hadoop@slave2:/home/hadoop
5.给所有的节点添加环境变量
sudo vim /etc/profile
#加入以下内容
#ZooKeeper Env
export ZK_HOME=/home/hadoop/zookeeper
export PATH=$PATH:$ZK_HOME/bin
source /etc/profile #使配置生效
6.给所有的节点创建对应得myid文件
#master
echo "1">/home/hadoop/zookeeper/data/myid
#slave1
echo "2">/home/hadoop/zookeeper/data/myid
#slave2
echo "3">/home/hadoop/zookeeper/data/myid
7.在所有的节点启动zookeeper
zkServer.sh start
#在所有的节点启动后输入jps查看,会有一个QuorumPeerMain进程
8.查看状态
zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: follower
#这里的follower和leader是随机选举的
9.使用客户端连接
zkCli.sh -server ip或者主机名:2181
输入quit退出