Apache ZooKeeper 3.4.14 集群部署
后知后觉 暂无评论

ZooKeeper 是一个分布式数据一致性解决方案,致力于为分布式应用提供一个高性能、高可用,且具有严格顺序访问控制能力的分布式协调服务。

ZooKeeper

在部署 HBase 数据库前需要先部署 ZooKeeper,需要注意的是,因为 ZooKeeper 本身也是选举机制,因此部署 ZooKeeper 的节点数量必须为单数。

规划

hostnameIP
hadoop1172.16.16.231
hadoop2172.16.16.232
hadoop3172.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

附录

参考链接

本文撰写于一年前,如出现图片失效或有任何问题,请在下方留言。博主看到后将及时修正,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。