hadoop生态圈
Zookeeper-3.5.7
前期准备
按照 hadoop 的环境配置准备
可参照 这篇文章 点这里
防火墙要关闭
ssh要配置好
笔者的环境是CentOS7,Hadoop3.3.0
在Ubuntu18.04版本也安装过,Hadoop2.7也能用
安装
-
解压
tar -zxvf apache-zookeeper-3.5.7.bin.tar.gz
-
重命名
mv apache-zookeeper-3.5.7-bin zookeeer-3.5.7
-
配置服务器编号
1. 在安装目录下 创建文件夹 zkData
mkdir zkData
2. 创建文件 myid
vim myid
3. 在myid 中添加server 对应的编号(上下不能有空行,左右不能有空格)
例如:2
4. 分发zookeeper 到其他服务器
xsync zookeeper-3.5.7 #xsync是个脚本 在上面文章里有讲
- 配置 zoo.cfg 文件
- 进入 /zookeeper-3.5.7/conf 目录下,将zoo_sample.cfg为zoo.cfg
mv zoo_sample.cfg zoo.cfg
- 编辑 zoo.cfg
vim zoo.cfg
修改数据存储路径
根据自己的zookeeper路径修改
添加以下配置
#########cluster#######
server.2=hadoop1:2888:3888
server.3=hadoop2:2888:3888
server.4=hadoop3:2888:3888
# hadoop1是自己的主机名
配置参数解读
server.A=B:C:D
A是一个数字,表示这个是第几号服务器;
集群模式下配置一个文件 myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server.
B是这个服务器的地址;
C是这个服务器Follower与集群中的Leader服务器交换信息的端口;
D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
- 同步zoo.cfg 文件
xsync zoo.cfg
启动停止脚本
在 /zookeeper-3.5.7 的目录下
启动
bin/zkServer.sh start
停止
bin/zkServer.sh stop
查看状态
bin/zkServer.sh status
集群控制脚本
在 bin 目录下创建文件 zk.sh,写入以下内容
#!/bin/bash
case $1 in
"start") {##hadoop1是主机名,根据自己的修改
for i in hadoop1 hadoop2 hadoop3
do
echo ------------ zookeeper $i 启动 ----------------
ssh $i "/export/server/zookeeper-3.5.7/bin/zkServer.sh start"##这里是目录 根据自己修改
done
};;
"stop"){
for i in hadoop1 hadoop2 hadoop3
do
echo ------------ zookeeper $i 停止 ----------------
ssh $i "/export/server/zookeeper-3.5.7/bin/zkServer.sh stop"
done
};;
"status"){
for i in hadoop1 hadoop2 hadoop3
do
echo ------------ zookeeper $i 状态 ----------------
ssh $i "/export/server/zookeeper-3.5.7/bin/zkServer.sh status"
done
};;
esac
赋予权限
chmod u+x zk.sh
之后可以在一台第一台机器上启动所有zookeeper
zk.sh start
群起
zk.sh stop
群停
zk.sh status
查看集群状态
如图