ZooKeeper是一个开放源码的分布式应用程序协调服务,是Google Chubby的一个开源实现,是Hadoop和Hbase的重要组件。ZooKeeper为分布式应用提供一致性服务,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
今天就来看一看,在Linux系统下如何安装ZooKeeper。
第一步,安装前准备;
1.下载Zookeeper的压缩包,解压;
找到zookeeper最新的、稳定版的安装包;
#下载安装包
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,修改之后,正常启动成功。
网友评论