ZooKeeper集群的搭建

  • ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
  • ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
  • ZooKeeper包含一个简单的原语集,提供Java和C的接口。
  • ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.13\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。今天我们在linux上来搭建一个zookeeper集群服务。

一、工具准备

(1)虚拟机准备(包括VMware Workstation Pro以及ios镜像)
百度网盘下载地址:链接:https://pan.baidu.com/s/15EFffIGMTBIZqCqu9fTwRQ 提取码:hr6t
(2)JDK,这个下载地址就不提供了,都懂得
(3)zookeeper,官网下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
当前使用的JDK和zookeeper的版本

二、安装虚拟机

这个网上教程有很多,暂时不提供,回头有时间了,可以写一个博客

三、安装jdk

(1)把下载好的jdk压缩包放在/usr/local/src目录下,我这里下载的是jdk1.8
tar -xvf jdk-8u191-linux-x64.tar.gz
(2)解压后删除压缩包
rm jdk-8u191-linux-x64.tar.gz
(3)配置环境变量,编辑/etc/profile文件
vim /etc/profile
(4)在/etc/profile文件末尾行添加

JAVA_HOME=/usr/local/src/jdk1.8.0_191
JAVA_BIN=/usr/local/src/jdk1.8.0_191/bin
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

(5)保存退出后,使配置文件生效
source /etc/profile
(6)检验jdk是否安装成功,查询版本号
java -version

四、安装ZooKeeper

(1)将下载好的zookeeper压缩包放在/usr/local/src目录下,并解压
tar -xvf zookeeper-3.4.13.tar.gz
(2)删除压缩包
rm zookeeper-3.4.13.tar.gz
(3)在/usr/local/src/zookeeper-3.4.13目录下新增data目录和log目录
mkdir data
mkdir log
(4)可以看到当前zookeeper目录如下
在这里插入图片描述
(5)进入data目录,新增myid文件,并且内容填写为1(内容1对应zoo.cfg中配置的server.1范围:1~255之间的整数,在集群中必须唯一)
cd data
vim myid
(6)进入配置目录,并复制zoo_sample.cfg文件为zoo.cfg
cd ../conf
cp zoo_sample.cfg zoo.cfg
(7)编辑zoo.cfg文件,我编辑好的是这样的

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/src/zookeeper-3.4.13/data
dataLogDir=/usr/local/src/zookeeper-3.4.13/log
clientPort=2181
server.1=192.168.156.32:2888:3888
server.2=192.168.156.206:2888:3888
server.3=192.168.156.46:2888:3888	

(8)查看防火墙状态
firewall-cmd --state
如果看到的是running,说明防火墙是开启的,则关闭防火墙
(9)关闭防火墙
systemctl stop firewalld.service

systemctl start firewalld.service              启动防火墙
systemctl restart firewalld.service            重启防火墙
firewall-cmd --reload                          输入命令重新载入
firewall-cmd --zone=public --add-port=8080/tcp --permanent      开启8080端口

–zone=public:表示作用域为公共的;
–add-port=8080/tcp:添加tcp协议的端口8080;
–permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;

(10)至此,一台zookeeper已经安装好了,为了方便可以另外克隆两台虚拟机,并分别修改myid文件内容为2,3,这样就有了三台安装了zookeeper虚拟机了。我的三台虚拟机的地址分别是上面配置的地址

server.1=192.168.156.32:2888:3888
server.2=192.168.156.206:2888:3888
server.3=192.168.156.46:2888:3888	

其中myid中的1,2,3分别对应server.1,server.2,server.3中的1,2,3
至此,zookeeper集群便是搭建好了。
(11)启动,停止,重启服务

sh bin/zkServer.sh start				#启动ZK服务
sh bin/zkServer.sh stop				    #停止ZK服务
sh bin/zkServer.sh restart			    #重启ZK服务

(12)检查服务
jps
可以看到一个进程QuorumPeerMain,他就是zookeeper进程,表示zookeeper启动正常
(13)查看集群状态
sh bin/zkServer.sh status
在这里插入图片描述
在这里插入图片描述
(14)客户端访问
./zkCli.sh -server 192.168.156.32:2181
在这里插入图片描述
(15)常见问题:
It is probably not running
原因:很可能是由于防火墙没有关闭或者myid文件没有修改

至此,我们的zookeeper集群搭建完毕,可以愉快的玩耍了!
设置开机自动启动

设置zookeeper开机自启动

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值