一、简介
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
官网:https://zookeeper.apache.org/
二、准备工作
1、准备三台服务器
10.0.7.62 woniu、10.0.7.63 woniu1、10.0.7.30 woniu2
2、部署NTP服务器进行时间同步(可忽略)
https://blog.csdn.net/u011374856/article/details/103307623
3、配置主机名跟IP地址映射
https://blog.csdn.net/u011374856/article/details/103310847
4、ssh免密码登录
https://blog.csdn.net/u011374856/article/details/103311150
三、ZooKeeper下载
下载地址:http://archive.cloudera.com/cdh5/cdh/5/zookeeper-3.4.5-cdh5.15.1.tar.gz
注:其他大数据组件也可在 http://archive.cloudera.com/cdh5/cdh/5 版本库中找到
四、ZooKeeper安装
1、解压压缩包
tar -zxvf zookeeper-3.4.5-cdh5.15.1.tar.gz
2、创建以下目录
/home/data/zookeeper/temp
3、配置环境变量
#配置当前用户环境变量
vi ~/.bash_profile
#在文件中添加如下命令,记得切换自己文件路径
export ZK_HOME=/home/app/zookeeper-3.4.5-cdh5.15.1
export PATH=$ZK_HOME/bin:$PATH
#立即生效
source ~/.bash_profile
4、修改配置文件
#拷贝一份zoo.cfg
cp zoo_sample.cfg zoo.cfg
#编辑zoo.cfg
vi zoo.cfg
#修改ZK数据目录
dataDir=/home/data/zookeeper/temp
#添加以下内容
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=woniu:2888:3888
server.2=woniu1:2888:3888
server.3=woniu2:2888:3888
5、复制zookeeper文件夹到另外两台主机,注意:在拷贝目录下(例如:/home/app/)执行
scp -r zookeeper-3.4.5-cdh5.15.1/ root@woniu1:/home/app/
scp -r zookeeper-3.4.5-cdh5.15.1/ root@woniu2:/home/app/
6、创建myid文件并写入内容
#配置文件配置目录
#woniu主机
echo 1 > /home/data/zookeeper/temp/myid
#woniu1主机
echo 2 > /home/data/zookeeper/temp/myid
#woniu2主机
echo 3 > /home/data/zookeeper/temp/myid
五、ZooKeeper启动
1、编辑ZooKeeper集群启动脚本
#编辑文档
vi start-all-zookeeper.sh
#复制以下内容,记得修改目录
#!/bin/sh
echo "zookeeper集群启动中...."
for host in woniu woniu1 woniu2
do
ssh -q $host "source ~/.bash_profile;/home/app/zookeeper-3.4.5-cdh5.15.1/bin/zkServer.sh start"
done
echo "zookeeper集群启动完成....."
2、编辑ZooKeeper集群停止脚本
#编辑文档
vi stop-all-zookeeper.sh
#复制以下内容,记得修改目录
#!/bin/sh
echo "zookeeper集群停止中...."
for host in woniu woniu1 woniu2
do
ssh -q $host "source ~/.bash_profile;/home/app/zookeeper-3.4.5-cdh5.15.1/bin/zkServer.sh stop"
done
echo "zookeeper集群停止完成....."
3、脚本授权
chmod 777 ./start-all-zookeeper.sh
chmod 777 ./stop-all-zookeeper.sh