Zookeeper集群安装
Zookeeper集群安装
去官网https://zookeeper.apache.org/releases.html 下载要安装的Zookeeper
这里以安装zookeeper-3.5.7为例。下载好安装包apache-zookeeper-3.5.7-bin.tar.gz。
分别在三台服务器上安装zookeeper
系统:CentOS7
1.解压安装包到指定安装路径下(你想安装在哪个路径就解压在哪个路径)
这里解压到/opt/module目录下
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module
解压完成后,在/opt/module路径下,会有个apache-zookeeper-3.5.7-bin的文件夹。
cd /opt/module
ls
可选操作--把文件夹改名
mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7
2.添加相关配置
进入zookeeper的根目录下,新建一个文件夹zkData
cd zookeeper-3.5.7
mkdir zkData
然后进入zkData文件夹下,创建一个myid的文件(PS:无后缀),然后在myid文件里添加与server对应的编号。第一个可以填1,也可以填其他数字,这个编号与待会配置文件中的server的编号一致就好。方便顺序,我这里填1
cd zkData
vim myid
然后回到zookeeper的根目录下,有个conf文件夹,进入conf文件夹,会发现有个zoo_sample.cfg文件,把这个文件改成zoo.cfg,然后编辑zoo.cfg
cd ..
cd conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改dataDir的路径为刚才创建的zkData文件夹的路径.同时新增cluster的配置。如下图
dataDir=/opt/module/zookeeper-3.5.7/zkData
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
PS:这里的server.1的.1,1就是对应刚才myid里写的1。后面的server.2和server.3是对应待会要装的另外两个zookeeper。hadoop101,hadoop102,hadoop103分别对应三台服务器的域名,如果没设置有域名的话,可以填写ip地址。
修改完后。第一个zookeeper的配置就完成了。
随后可以通过分发脚本,把第一个zookeeper的整个目录分发到另外两台服务器。分发完后,在另外两台服务器上把myid里的值,各自分别改成2和3。与zoo.cfg配置文件设置的server.2和server.3一致
没分发脚本的,按照上面的操作在另外两台服务器再操作一遍。注意myid的值分别弄成2和3,与zoo.cfg配置文件设置的server.2和server.3一致。
3.启动
分别进入在zookeeper文件夹下的bin目录下,执行zookeeper自带的脚本zkServer.sh启动
./zkServer.sh start
启动成功后,可以通过jps命令查看java进程,会看到有QuorumPeerMain这个进程名,说明启动成功
也可以通过zkServer.sh查看状态
./zkServer.sh status
会看到打印信息,其中三个zookeeper的Mode信息,分别会显示leader,follower,follower。 及一个leader,两个follower。
当然,如果写有群起脚本的话,也可以使用群起脚本来启动
脚本参考
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
for i in hadoop101 hadoop102 hadoop103
do
echo "===================== $i ======================="
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
done
;;
"stop")
for i in hadoop101 hadoop102 hadoop103
do
echo "===================== $i ======================="
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
;;
"status")
for i in hadoop101 hadoop102 hadoop103
do
echo "===================== $i ======================="
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
done
;;
*)
echo "Input Args Error..."
;;
esac