1.简介
ZooKeeper 是一个开源的分布式协调服务,数据存储在目录节点
主要作用:
Hadoop HA,hbase的rowkey查询,dubbo注册中心,kafka高可用
2.架构
3.安装
主机名 | hadoop100 | hadoop101 | hadoop102 |
---|---|---|---|
IP | 192.168.100.100 | 192.168.100.101 | 192.168.100.102 |
部署节点 | zk Server | zk Server | zk Server |
安装包下载
解压
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt/app/
**
添加环境变量
新增 ZK_HOME
vim /etc/profile
export ZK_HOME=/opt/app/apache-zookeeper-3.7.0-bin
export PATH=$ZK_HOME/bin:$PATH
分发
/opt/script/xsync /etc/profile
环境变量生效
/opt/script/all “source /etc/profile”
修改配置文件
复制配置文件
cp $ZK_HOME/conf/zoo_sample.cfg $ZK_HOME/conf/zoo.cfg
修改
vim $ZK_HOME/conf/zoo.cfg
##修改新增日志和数据目录
dataDir=/opt/app/apache-zookeeper-3.7.0-bin/data
dataLogDir=/opt/app/apache-zookeeper-3.7.0-bin/logs
##添加zookeeper集群节点(奇数台节点)
server.1=hadoop100:2888:3888
server.2=hadoop101:2888:3888
server.3=hadoop102:2888:3888
创建日志和数据目录
mkdir $ZK_HOME/{data,logs}
创建唯一节点标识文件
touch $ZK_HOME/data/myid
根据zookeeper集群节点 server编号标识对应集群的myid
echo 1 > $ZK_HOME/data/myid
分发至101和102机器上
/opt/script/xsync $ZK_HOME
在hadoop101操作
echo 2 > $ZK_HOME/data/myid
在hadoop102操作
echo 3 > $ZK_HOME/data/myid
zk批量启停脚本
vim /opt/script/zk
#!/bin/bash
zk_start(){
for i in hadoop100 hadoop101 hadoop102
do
echo "****************** $i *********************"
ssh $i "source /etc/profile && $ZK_HOME/bin/zkServer.sh start"
done
echo "****************** zk start *********************"
}
zk_stop(){
for i in hadoop100 hadoop101 hadoop102
do
echo "****************** $i *********************"
ssh $i "source /etc/profile && $ZK_HOME/bin/zkServer.sh stop"
done
echo "****************** zk stop *********************"
}
zk_status(){
for i in hadoop100 hadoop101 hadoop102
do
echo "****************** $i *********************"
ssh $i "source /etc/profile && $ZK_HOME/bin/zkServer.sh status"
done
echo "****************** zk status *********************"
}
case $1 in
"start"){
zk_start
};;
"stop"){
zk_stop
};;
"restart"){
zk_stop
sleep 1
zk_start
};;
"status"){
zk_status
};;
*){
echo "[ERROR-输入参数错误]:请输入start|stop|restart|status"
};;
esac
添加执行权限
chmod +x /opt/script/zk
验证
/opt/script/zk start #jps 3台机器上都有QuorumPeerMain进程
/opt/script/zk status #一个leader,两个follower