暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Centos7 部署zookeeper 集群

原创 高云龙 云和恩墨 2022-07-08
984

介绍

zookeeper 起源于 Hadoop,使用 ZAB 协议作为其一致性协议,后来进化为 Apache 的顶级项目,现在已经被广泛使用在 Apache 的项目中,例如 Hadoop,kafka,solr 等等,具有如下特点:

  • 非阻塞全部快照(达成最终一致)
  • 高效的内存管理
  • 高可靠
  • API 简单
  • 连接管理可以自动重试
  • 支持监听事件
  • 发生网络分区时,各个区都会开始选举 leader,那么节点数少的那个分区将会停止运行。

安装部署

下载软件

zookeeper下载地址

--所有节点
[root@node1 software]# wget https://archive.apache.org/dist/zookeeper/stable/apache-zookeeper-3.6.3.tar.gz
[root@node1 software]# tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt
[root@node1 software]# cd ..
[root@node1 opt]# ln -s apache-zookeeper-3.6.3-bin zk

配置环境变量

--所有节点
export ZKHOME=/opt/zk
export PATH=/root/.ptk/bin:$ZKHOME/bin:$PATH

source ~/.bash_profile

编辑配置文件

配置文件在$ZKHONE/conf中

--所有节点
[root@node1 conf]# mv zoo_sample.cfg zoo.cfg
[root@node1 conf]# cat zoo_sample.cfg |grep -v '#'
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zk
clientPort=2181

server.1=192.168.122.221:2888:3888
server.2=192.168.122.157:2888:3888
server.3=192.168.122.68:2888:3888

在dataDir目录下创建myid文件,不同服务器的myid文件中的数字要与cfg文件中对应好

echo "1" > /data/zk/myid 
echo "2" > /data/zk/myid
echo "3" > /data/zk/myid

启动集群

--node1
[root@node1 ~]# zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@node1 logs]# zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

--node2
[root@node2 ~]# zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@node2 ~]# zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

--node3
[root@node3 ~]# zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@node3 ~]# zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@node3 ~]#

node2是leader,node1 和 node3 是follower

验证

[root@node1 logs]# zkCli.sh -server 192.168.122.157:2181
/usr/bin/java
Connecting to 192.168.122.157:2181
[zk: 192.168.122.157:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: 192.168.122.157:2181(CONNECTED) 1] quit

问题汇总

1、启动报错
Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain

原因:从3.5版本以后命名发生了改变,需要下载xxx-bin.tar.gz的编译包,未带bin的包是未编译的
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论