ZooKeeper 是一个分布式数据一致性解决方案,致力于为分布式应用提供一个高性能、高可用,且具有严格顺序访问控制能力的分布式协调服务。
ZooKeeper
在部署 HBase 数据库前需要先部署 ZooKeeper,需要注意的是,因为 ZooKeeper 本身也是选举机制,因此部署 ZooKeeper 的节点数量必须为单数。
规划
hostname | IP |
---|---|
hadoop1 | 172.16.16.231 |
hadoop2 | 172.16.16.232 |
hadoop3 | 172.16.16.233 |
下载
从官方下载二进制包
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
解压到安装目录
sudo tar xf zookeeper-3.4.14.tar.gz -C /opt/
授权
sudo chown -R $USER:$USER /opt/zookeeper-3.4.14/
配置环境变量
sudo vim /etc/profile.d/hadoop.sh
## 加入以下内容
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.14
export PATH=$ZOOKEEPER_HOME/bin:$PATH
生效环境变量或者重新登录终端
## 重载环境变量
source /etc/profile
配置 ZooKeeper
先行配置数据存储路径,这个路径存在任何地方都可以,但需要注意运行 ZooKeeper 的用户必须对数据存储文件夹有读写权限。
## 创建数据存储目录
mkdir /opt/zookeeper-3.4.14/data
配置文件
## 修改主配置
vim /opt/zookeeper-3.4.14/conf/zoo.cfg
## 写入以下内容
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper-3.4.14/data
clientPort=2181
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
分发至所有节点
sudo rsync -av /opt/zookeeper-3.4.14 root@hadoop2:/opt/
sudo rsync -av /opt/zookeeper-3.4.14 root@hadoop3:/opt/
配置集群 ID(在三个节点分别进行操作)
## 节点 1(hadoop1)
echo "1" > /opt/zookeeper-3.4.14/data/myid
## 节点 2(hadoop2)
echo "2" > /opt/zookeeper-3.4.14/data/myid
## 节点 3(hadoop3)
echo "3" > /opt/zookeeper-3.4.14/data/myid
编写集群管理脚本
sudo vim /usr/local/bin/zk
## 写入以下内容
#!/bin/bash
ZK_PATH="/opt/zookeeper-3.4.14/bin/zkServer.sh"
case $1 in
"start"){
for i in hadoop1 hadoop2 hadoop3
do
echo ---------- $i Zookeeper Cluster Push Starting ----------
ssh $i "$ZK_PATH start"
done
}
;;
"stop"){
for i in hadoop1 hadoop2 hadoop3
do
echo ---------- $i Zookeeper Cluster Push Stoping ----------
ssh $i "$ZK_PATH stop"
done
}
;;
"status"){
for i in hadoop1 hadoop2 hadoop3
do
echo ---------- $i Zookeeper Cluster Push Stating ----------
ssh $i "$ZK_PATH status"
done
}
;;
esac
## 授权
sudo chmod +x /usr/local/bin/zk
服务
启动集群
zk start
检查状态
zk status
可以看到其中两个状态为 follower 另一个为 leader 。
测试
可以使用命令行客户端测试 deleteall
命令慎用,仅供参考。
zkCli.sh
## 查询存储
[zk: localhost:2181(CONNECTED) 0] ls /
[hbase, zookeeper]
## 删除存储
[zk: localhost:2181(CONNECTED) 1] deleteall /hbase
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2022-12-03 12:26 PM