美文网首页
Linux系统下,搭建ZooKeeper集群

Linux系统下,搭建ZooKeeper集群

作者: 程就人生 | 来源:发表于2021-03-14 16:09 被阅读0次

ZooKeeper是一个开放源码的分布式应用程序协调服务,是Google Chubby的一个开源实现,是Hadoop和Hbase的重要组件。ZooKeeper为分布式应用提供一致性服务,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

今天就来看一看,在Linux系统下如何安装ZooKeeper。

第一步,安装前准备;
1.下载Zookeeper的压缩包,解压;
找到zookeeper最新的、稳定版的安装包;

https://mirrors.cnnic.cn/apache/zookeeper/stable/
#下载安装包
wget https://mirrors.cnnic.cn/apache/zookeeper/stable/apache-zookeeper-3.5.9-bin.tar.gz

#解压安装包
tar zxvf apache-zookeeper-3.5.9-bin.tar.gz

#移动解压包
mv apache-zookeeper-3.5.9 /mnt/databases/zookeeper

2.创建数据目录和日志目录

#来到解压包下,创建数据、文件目录
cd /mnt/databases/zookeeper
mkdir data log
cd ./data
#Zookeeper集群必须为奇数,所以这里建立3个做成集群
mkdir zoo-{1,2,3}

3.在 zoo-x 文件夹下为每个节点创建myid文件

#在zoo-1、zoo-2、zoo-3目录下,分别创建一个myid文件,内容分别为1、2、3
#使用vim创建myid
vim ./zoo-1/myid
#按下 i 键打开插入模式
i
#插入1
1
#按下ESC键结束输入
esc
#输入:wq! 保存并退出
:wq!

4.创建配置文件;

#来到conf目录下
cd ../../conf

#拷贝zoo-1的配置文件
cp zoo_sample.cfg zoo-1.cfg

5.修改配置zoo-1.cfg文件;

#修改zoo-1.cfg的配置内容
tickTime=4000
initLimit=10
syncLimit=5
dataDir=/mnt/databases/zookeeper/data/zoo-1/
dataLogDir=/mnt/databases/zookeeper/log/zoo-1/

clientPort=2181
#添加server.id
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
# server.id=zookeeper节点主机名 或 主机ip:2888:3888  选举端口和投票端口固定
# id,0~255,表示该节点所持有的投票编号id,必需保证全局唯一

特别说明:
server.A=B:C:D参数含义如下:
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址 或 主机名;
C:Leader选举的端口;
D:Zookeeper服务器之间的通信端口。

#拷贝zoo-1.cfg到zoo-2.cfg、zoo-3.cfg,并修改dataDir、dataLogDir、clientPort
cp zoo-1.cfg zoo-2.cfg
cp zoo-1.cfg zoo-3.cfg

6.配置环境变量;

echo 'export PATH=$PATH:/mnt/databases/zookeeper' >>  /etc/profile 
source /etc/profile 

第二步,运行zookeeper;

#来到bin目录下,将zookeeper一个一个运行起来;
cd ./bin
./zkServer.sh start /mnt/databases/zookeeper/conf/zoo-1.cfg

./zkServer.sh start /mnt/databases/zookeeper/conf/zoo-2.cfg

./zkServer.sh start /mnt/databases/zookeeper/conf/zoo-3.cfg
启动成功示例图

本次安装遇到的问题:
1.第一次报错,zookeeper无法启动;
/usr/local/java
ZooKeeper JMX enabled by default
Using config: /mnt/databases/zookeeper/conf/zoo-1.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Error contacting service. It is probably not running.
解决办法:jdk是使用yum形式安装的,yum不是安装在/usr/local/java下;
卸载jdk,使用tar方式手动安装;

2.第二次报错,zookeeper无法启动;
查看logs的日志,发现此错误:Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
apache-zookeeper-{version}.tar.gz 包而不是 apache-zookeeper-{version}-bin.tar.gz
解决办法:重新下载带bin的压缩包;

3.第三次报错;
2181、2182都启动起来了,但是2183没启动起来,查看2183的myid,里面本应该是3,但是手抖写成了333,修改之后,正常启动成功。

相关文章

网友评论

      本文标题:Linux系统下,搭建ZooKeeper集群

      本文链接:https://www.haomeiwen.com/subject/dmfqcltx.html