麒麟操作系统-05-Zookeeper3.8.0安装与部署
zookeeper,顾名思义为动物园管理员,是一个分布式协调服务,用于在分布式系统中管理和协调各个节点。
我们用到的很多组件都需要依赖zookeeper提供的方案来实现分布式、高可用和协作等方面的需求。如:Hadoop的HA、Kafka、HBase、Storm、Cassandra等。
1、解压:
tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /opt/server
2、配置环境变量:
vim /etc/profile
#加入以下内容
export ZOOKEEPER_HOME=/opt/server/zookeeper-3.8.0
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#加载环境变量
source /etc/profile
3、在zookeeper的安装目录下创建zkData目录
mkdir zkData
#在zkData目录内创建myid文件
cd zkData && vim myid
#在里面写 1 (代表本机的id为1,对应的后面分发之后,另两台id为2,3)
4、在zookeeper安装目录的conf目录下,复制模板cfg文件
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
#添加以下内容
dataDir=/opt/server/zookeeper-3.8.0/zkData
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
#2888:集群内机器通讯使用;3888:选举leader使用的端口
5、分发zookeeper安装目录,修改myid为对应的2和3
#分发安装目录
scp -r zookeeper-3.8.0/ node2:$PWD
scp -r zookeeper-3.8.0/ node3:$PWD
#分发环境变量
scp /etc/profile node2:/etc/
scp /etc/profile node3:/etc/
#三台服务器节点全都刷新环境变量
source /etc/profile
6、使用命令启动zookeeper
zkServer.sh start
但是每台节点都要单独启动,比较麻烦,我们可以编写一个启动脚本。
在~/bin/
下,vim ~/bin/zk.sh
#!/bin/bash
case $1 in
"start"){
for i in node1 node2 node3
do
echo ---------zookeeper $i 启动----------
ssh $i "/opt/server/zookeeper-3.8.0/bin/zkServer.sh start"
done
};;
"stop"){
for i in node1 node2 node3
do
echo ---------zookeeper $i 关闭----------
ssh $i "/opt/server/zookeeper-3.8.0/bin/zkServer.sh stop"
done
};;
"status"){
for i in node1 node2 node3
do
echo ---------zookeeper $i 状态----------
ssh $i "/opt/server/zookeeper-3.8.0/bin/zkServer.sh status"
done
};;
esac
编写完成后需要对zk.sh赋予权限:
chmod 777 ~/bin/zk.sh
7、测试
任意目录下
zk.sh start
#查看进程
jps
#查看是否有名为QuorumPeerMai的进程。
注意:
在大数据中,zookeeper的常用端口为2181。