目录
文章导读
在搭建Hadoop高可用集群之前,需要提前安装并启动Zookeeper集群,因为hadoop集群需要Zookeeper提供的分布式锁服务选主NameNode,因此需要提前准备好Zookeeper集群环境
下载ZK
下载Zookeeper二进制包可以去Zookeeper官网,也可以去国内的镜像网站,但国内的镜像网站只能下载到最近的稳定版本,而历史版本是没有的,比如我这里使用的Zookeeper-3.4.14这个版本在国内的镜像网站是没有的,只能去apache-Zookeeper官网下载.
解压ZK
在hadoop节点配置Zookeeper的配置信息,将下载好的包解压,然后mv到指定的目录中
# /usr/local/soft/src
[root@hadoop01 src]# tar -zxvf zookeeper-3.4.14.tar.gz
[root@hadoop01 src]# mv zookeeper-3.4.14 ../soft/
配置ZK
进入到zookeeper-3.4.14目录下创建两个文件夹data和log
[root@hadoop01 zookeeper-3.4.14]# mkdir data
[root@hadoop01 zookeeper-3.4.14]# mkdir log
然后进入conf目录修改配置信息
[root@hadoop02 zookeeper-3.4.14]# cd conf
[root@hadoop02 conf]# mv zoo_sample.cfg zoo.cfg
[root@hadoop02 conf]# vim zoo.cfg
# 修改配置如下
dataDir=/usr/local/soft/zookeeper-3.4.14/data
dataLogDir=/usr/local/soft/zookeeper-3.4.14/log
#autopurge.purgeInterval=1
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
增加环境变量的配置信息,配置完成后强制刷新配置文件
# 修改环境变量
[root@hadoop02 conf]# vim /etc/profile
# 刷新环境变量
[root@hadoop02 conf]# source /etc/profile
完成后将hadoop01节点配置的zookeeper-3.4.14安装包分别复制到hadoop02和hadoop03节点的软件安装目录/usr/local/soft/下
[root@hadoop01 soft]# scp -r zookeeper-3.4.14 root@hadoop02:/usr/local/soft/
[root@hadoop01 soft]# scp -r zookeeper-3.4.14 root@hadoop03:/usr/local/soft/
在/usr/local/soft/zookeeper-3.4.14/data/目录下 创建文件myid,同时修改各节点myid的值,使用如下命令再hadoop01节点快速创建修改三台机器的myid文件
# 这里的myid与zoo.cfg中的配置对应
[root@hadoop01 soft]# echo "1" > /usr/local/soft/zookeeper-3.4.14/data/myid
[root@hadoop01 soft]# echo "2" > /usr/local/soft/zookeeper-3.4.14/data/myid
[root@hadoop01 soft]# echo "3" > /usr/local/soft/zookeeper-3.4.14/data/myid
完成后使用如下命令在各个节点启动Zookeeper服务,启动结果如下
[root@hadoop01 soft]# zkServer.sh start
补充
每次启动Zookeeper集群的时候都要去不同的机器挨个儿启动,过程繁琐,因此可以准备一个简单的一键启动 / 一键关闭 脚本,方便下次启动Zookeeper服务
1.在zookeeper的bin目录下新建zkStart-all.sh脚本
#添加以下内容:
#zkStart.sh
#start zk cluster
for host in hadoop01 hadoop02 hadoop03
do
echo "===========start zk cluster :$host==============="
ssh $host 'source /etc/profile; /usr/local/soft/zookeeper-3.4.14/bin/zkServer.sh start'
done
sleep 3s
#check status
for host in hadoop01 hadoop02 hadoop03
do
echo "===========checking zk node status :$host==============="
ssh $host 'source /etc/profile; /usr/local/soft/zookeeper-3.4.14/bin/zkServer.sh status'
done
2.在 zookeeper的bin目录下新建zkStop-all.sh脚本
#添加以下内容:
#zkStop.sh
#stop zk cluster
for host in hadoop01 hadoop02 hadoop03
do
echo "===========$host==============="
ssh $host 'source /etc/profile; /usr/local/soft/zookeeper-3.4.14/bin/zkServer.sh stop'
done
最后修改一下,shell脚本的权限
[root@hadoop01 bin]# chmod 777 /usr/local/soft/zookeeper-3.4.14/bin/zkStart-all.sh
[root@hadoop01 bin]# chmod 777 /usr/local/soft/zookeeper-3.4.14/bin/zkStop-all.sh
出现如下信息表示启动成功
结束