Zookeeper 集群环境搭建

基于Zookeeper的过半选举机制,集群节点为奇数,以3个节点为例

准备三台服务器,ip分别是:

    192.168.126.128
    192.168.126.129
    192.168.126.130

1、下载 zookeeper包 apache-zookeeper-3.5.5-bin.tar.gz,拷贝至每台服务器的自建目录 /opt/zookeeper/

2、解压 apache-zookeeper-3.5.5-bin.tar.gz

3、设置环境变量

vi /etc/profile
...
export ZOOKEEPER_HOME=/opt/zookeeper/apache-zookeeper-3.5.5-bin
export PATH=$PATH:$ZOOKEEPER/bin

#运行source命令让当前设置立即生效
source /etc/profile
#可以用echo命令查看当前PATH,看是不是和预期一样
echo $PATH

引申思考一下,profile 与 bashrc 的区别

4、修改 zookeeper配置

# 进入zookeeper 目录 
cd /opt/zookeeper/apache-zookeeper-3.5.5-bin

# 进入conf文件夹,有一个zoo_sample.cfg
cd conf

# 复制一份名为zoo.cfg,因为zookeeper服务端启动时候会根据这个名字来加载
cp zoo_sample.cfg zoo.cfg

# 在zoo.cfg里面配置集群的信息
vi zoo.cfg

# 在zoo.cfg末端加入下面的配置
dataDir=/opt/zookeeper/apache-zookeeper-3.5.5-bin/data
dataLogDir=/opt/zookeeper/apache-zookeeper-3.5.5-bin/logs
server.1=192.168.126.128:2888:3888
server.2=192.168.126.129:2888:3888
server.3=192.168.126.130:2888:3888

# 在zoo.cfg里dataDir指定的文件夹下,创建myid文件,文件内容为server后面的一个数字
192.168.126.128的myid文件内容为1
192.168.126.129的myid文件内容为2
192.168.126.130的myid文件内容为3

5、启动 Zookeeper

# 进入 /opt/zookeeper/apache-zookeeper-3.5.5-bin/bin 目录下,启动服务
# zkServer.sh 需要传一个参数,有这些可以选 {start|start-foreground|stop|restart|status|print-cmd}
# 我们先用start-foreground,可以在命令行看到启动的日志信息

sh zkServer.sh start

6、查看服务状态

sh zkServer.sh status

遇到问题:

#网络上的解释是说需要关闭防火墙
#可以通过`systemctl status firewalld.service`查看当前防火墙的状态
#关闭防火漆的命名
systemctl stop firewalld.service


# 可能是未开放相关端口,查询 2888 和3888 端口是否开放
firewall-cmd --query-port=2888/tcp
firewall-cmd --query-port=3888/tcp

#如果为no,则可以通过将 2888和3888 端口加到开放端口
firewall-cmd --add-port=2888/tcp --permanent
firewall-cmd --add-port=3888/tcp --permanent

#并重载入添加的端口:
firewall-cmd --reload

#再次查询端口开放情况,确定2888和3888开放
firewall-cmd --query-port=2888/tcp
firewall-cmd --query-port=3888/tcp

再次查看 zookeeper 的状态

[root@localhost bin]# zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

或者是

[root@localhost init.d]# zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader

看到上面的信息表示zk集群配置成功了。

7、常用命令

# 启动 zk 服务
sh zkServer.sh start

# 停止 zk 服务
sh zkServer.sh stop

# 查看 zk 服务状态
sh zkServer.sh status

# 重启 zk 服务
sh zkServer.sh restart

# 客户端连接 zk 服务
sh zkCli.sh -timeout 0 -r -server ip:port

http://dubbo.apache.org/zh-cn/docs/admin/install/zookeeper.html

原文地址:https://www.cnblogs.com/fightingtong/p/13569520.html