zookeeper安装教程
1.上传zookeeper安装包并解压tar -zxvf apache-zookeeper-3.8.0-bin
2.配置zookeeper环境变量 sudo vim /etc/profile
配置zookeeper环境变量
export ZOOKEEPER_HOME=/export/server/apache-zookeeper-3.8.0-bin
export PATH=$PATH:$ZOOKEEPER/bin
使配置生效 source /etc/profile
3.修改/创建zookeeper配置文件
1)在zookeeper目录下新建data目录和logs目录 mkdir data logs
在data中新建myid文件,在其中填入数字1(对应zoo.cfg文件的server编号)
2)由于conf目录下没有zoo.cfg文件,所以复制zoo_sample.cfg成zoo.cfg:
cp zoo_sample.cfg zoo.cfg
注意一定要删除原有内容后(否则集群会报错myid could not be determined),
再添加内容
#指定数据日志目录
dataDir=/export/server/apache-zookeeper-3.8.0-bin/data
dataLogDir=/export/server/apache-zookeeper-3.8.0-bin/logs
#node1对应于在hosts里面配置的主机映射 2888是数据同步和消息传递端口,3888是选举端口
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
server.4=node4:2888:3888
#session的会话时间 以ms为单位
tickTime=2000
#服务器启动以后,master和slave通讯的时间
initLimit=10
#master和slave之间的心跳检测时间,检测slave是否存活
syncLimit=5
#客户端访问zk的端口
clientPort=2181
拷贝zookeeper目录到其他节点,并分别更改data/myid的值为2~4:
xsync /export/server/apache-zookeeper-3.8.0-bin
- 启动服务 $ZOOKEEPER_HOME/bin/zkServer.sh start
zookeeper负责协调hbase之间的通信,所以需要在每个节点上分别启动zookeeper服务,在bin目录下启动服务:
5.查看zookeeper服务状态 $ZOOKEEPER_HOME/bin/zkServer.sh status
当出现Mode:follower/leader时,集群才算真正配置成功,如果没出现该内容,且已经关闭防火墙,检查配置文件无误;)需要说明的是,只有当你启动集群后才会查看到Mode:follower/leader的出现)
如果有以下的问题,首先应该是配置文件zoo.cfg中的主机名写错了或者myid文件的映射值写错了;再则是防火墙的问题(当然是在集群启动的前提下考虑),则需要开启端口(或者直接关闭防火墙)
开启端口的方法:
首先停掉服务
zkServer.sh stop
改用zkServer.sh start-foreground方式启动,可以看到具体错误日志
zkServer.sh start-foreground
接着配置防火墙
systemctl start firewalld
#开放端口2888/3888(add为添加,remove为移除)
firewall-cmd --zone=public –add/remove-port=2888/tcp --permanent
firewall-cmd --zone=public –add/remove-port=3888/tcp --permanent
并重载入添加的端口:
firewall-cmd --reload
再次查询端口开放情况,确定2888和3888开放
firewall-cmd --zone=public --list-ports
6.关闭服务命令:$ZOOKEEPER_HOME/bin /zkServer.sh stop
7.zookeeper集群启停及状态查看脚本
#!/bin/bash
需要先修zookeeper bin目录下的zxEnv.sh文件,在前面添加JAVA_HOME=
/export/server/jdk1.8.0_131
case $1 in
"start")
echo ---------- zookeeper $i 启动 ------------
{
for i in node1 node2 node3 node4
do
`ssh $i "/export/server/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start >&/dev/null"`
done
}
{
for i in node1 node2 node3 node4
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/export/server/apache-zookeeper-3.8.0-bin/bin/zkServer.sh status|sed -n '/Mode/p'||zookeeper未启动"
done
};;
"stop")
echo ---------- zookeeper $i 停止 ------------
{
for i in node1 node2 node3 node4
do
ssh $i "/export/server/apache-zookeeper-3.8.0-bin/bin/zkServer.sh stop >&/dev/null&&echo 'zookeeper $i 关闭成功'"
done
};;
"status"){
for i in node1 node2 node3 node4
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/export/server/apache-zookeeper-3.8.0-bin/bin/zkServer.sh status|sed -n '/Mode/p'||zookeeper未启动"
done
};;
esac
版权归原作者 独孤雨鸿 所有, 如有侵权,请联系我们删除。