【软件安装】Zookeeper在Lunix系统中的安装

导读:本篇文章讲解 【软件安装】Zookeeper在Lunix系统中的安装,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

0、安装前环境准备

① 本篇是基于Linux操作系统中的安装,本文中所有的操作基于CentOS8进行安装演示。这一次的搭建演示,会在4台独立的服务器上分别搭建4台Zookeeper服务,故先准备4台干净的Linux操作系统;

②  Zookeeper是基于Java语言开发的,请确保Linux系统中已经安装好JDK8并配置好环境变量。准备[wget],用于下载Zookeeper软件。如果没有安装,可以使用[yum install wget -y]进行安装;

③ 接下来的演示文本中,红色字体为操作步骤,黑色字体为解释说明。

1、进入到本地Zookeeper目录,从官网下载Zookeeper压缩包到本地

cd /usr/local/

mkdir source

cd source/

注:因为本人习惯将下载的源码压缩包存在在本地 /usr/local/source/ 文件夹中,这边以此作为示范,具体的存放路径根据个人习惯各自存放即可。

2、将下载好的压缩包解压到软件安装目录下

mkdir /opt/feenix/

tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt/feenix/

【软件安装】Zookeeper在Lunix系统中的安装

3、进入解压后的文件夹中,阅读 README.md 中的内容

cd /opt/feenix/apache-zookeeper-3.7.0-bin/
【软件安装】Zookeeper在Lunix系统中的安装

vim README.md

注:基本Linux系统的软件使用源码安装基本都是一个套路:源码安装上来看的第一个文件就是README。所以,README.md 文件是一个非常非常重要的文件。当你第一次面对一个从来没用安装过的软件时,去读它提供的类 README 文件,在这个文件中会详细描述当前软件的安装步骤,排错过程及各参数的详细意义,一定要仔细研读后再进行软件的安装!

4、准备Zookeeper启动服务配置文件

进入 conf/ 目录下,将提供的 zoo_sample.cfg 配置文件复制一份成为Zookeeper默认使用的配置文件 zoo.cfg,并进行修改

cd conf/

cp zoo_sample.cfg zoo.cfg

【软件安装】Zookeeper在Lunix系统中的安装

 vim zoo.cfg

【软件安装】Zookeeper在Lunix系统中的安装

在配置文件中需要手动的指定Zookeeper集群中的4台节点

server.1=192.168.168.129:2888:3888
server.2=192.168.168.130:2888:3888
server.3=192.168.168.131:2888:3888
server.4=192.168.168.132:2888:3888

之前在Redis集群中Sentinel可以通过发布订阅自己去发现主机有哪些从机跟随,而不需要手动指定;但是在Zookeeper集群中,需要显示的指定出集群中所有的节点。

在Zookeeper服务首次启动的时候,或者是集群中leader宕机以后,总而言之就是集群中没有leader的时候,这些Zookeeper节点之间通过3888端口相互连接通信去投票选出新的leader。当新的leader选举出来以后,其余节点和leader之间通过2888端口进行连接通信。

server.1/2/3/4这些数字存在的意义就是能够在最短的时间内谦让出新的leader。根据zoo keeper的官网指出,选一个新的leader只需要不到200毫秒的时间,那么为什么能够在这么短的时间内选出leader,那判断投票给谁也是要有时间的呀。所以为了在最短的时间内选出新的leader,采用的方案就很简单粗暴,理论上看谁的数字大就投票给谁(当然这么说其实不够严谨,因为在投票的过程中还有一个非常重要的因素是事务id,这里为了解释这些数字的意义,姑且先这么理解)。所以基于这个方案,待会儿演示启动集群的时候,理论上应该server.4是leader,对吧?其实这也要结合启动的顺序和过半通过的算法:也就是说如果先启动3再启动4,那么3就是leader;如果先启动4再启动3,那么4才是leader。

其余参数含义如下:

tickTime=2000  每2s进行一次心跳检查。

initLimit=10  当有一个follow跟随master的时候,master最长可以忍耐 (tickTime * initLimit)这么久的数据初始化时间。

syncLimit=5  当leader向follow进行数据同步的时候,如果(tickTime * initLimit)这么长时间没有向leader进行回馈, leader会认为这个follower有问题

dataDir=/var/lib/zookeeper   Zookeeper数据持久化目录,日志、快照以及myid文件都会存在这个目录中。

clientPort=2181   Zookeeper默认端口号。

maxClientCnxns=60  最大客户端连接数,Zookeeper默认最多60个客户端连接。

5、建立Zookeeper数据存放目录及myid文件

根据配置文件中的路径建立Zookeeper数据存放目录:

mkdir /var/lib/zookeeper

进入到数据存放目录创建myid文件:

cd /var/lib/zookeeper/

vim myid

【软件安装】Zookeeper在Lunix系统中的安装

 刚刚在配置文件中指定server.1=node1,所以所以这个myid文件中只需要写一个数字1即可。

6、将Zookeeper相关文件分发到其余3台服务器上

cd /opt/

scp -r ./feenix/ root@192.168.168.130:`pwd`

【软件安装】Zookeeper在Lunix系统中的安装

这样就将整个文件夹里所有的文件全部拷贝到这台服务器上,配置文件不用改,但是需要将刚刚创建的myid文件,在这台服务器上创建一下,并且数字要改为2。

mkdir /var/lib/zookeeper

cd /var/lib/zookeeper/

echo 2 > /var/lib/zookeeper/myid

【软件安装】Zookeeper在Lunix系统中的安装

 相同的操作在第3台和第4代服务器上重复一遍即可。

7、配置Zookeeper环境变量

vim /etc/profile

export ZOOKEEPER_HOME=/opt/feenix/apache-zookeeper-3.7.0-bin

export PATH=$PATH:${JAVA_PATH}:${ZOOKEEPER_HOME}/bin

【软件安装】Zookeeper在Lunix系统中的安装

source /etc/profile

【软件安装】Zookeeper在Lunix系统中的安装

这样在任何地方都可以使用Zookeeper相关的命令。

对其余3台服务器也进行相同的环境变量配置,或者可以使用 scp 将刚刚配置好的配置文件分发给其余3台服务器。

scp /etc/profile root@192.168.168.130:/etc

scp /etc/profile root@192.168.168.131:/etc

scp /etc/profile root@192.168.168.132:/etc

【软件安装】Zookeeper在Lunix系统中的安装

 分发完以后不要忘记在其余3台服务器执行 source /etc/profile 重加载环境变量配置文件。

8、启动Zookeeper服务

通过命令 zkServer.sh help 看看Zookeeper有哪些启动方式

【软件安装】Zookeeper在Lunix系统中的安装

Zookeeper默认是后台启动,通过参数 start-foreground 可以在前台阻塞启动

执行 zkServer.sh start-foreground 命令先启动server.1、server.2和server.3

3台实例都启动完之后,执行命令 zkServer.sh status 查看leader和follower状态

server.1:

【软件安装】Zookeeper在Lunix系统中的安装

server.2:

【软件安装】Zookeeper在Lunix系统中的安装

server.3:

【软件安装】Zookeeper在Lunix系统中的安装

只要有三台机器建立连接以后,已经可以执行过半投票了,所以此时即便没有启动第4台Zookeeper实例,前3台之间照样能够选出来一个leader和两个follower。

此时再去启动第4台机器,因为前3台已经有主了,所以第4台加进来是一个follower而不是leader。

server.4

【软件安装】Zookeeper在Lunix系统中的安装

那么如果此时server.3这个leader宕机了,谁是新的leader呢?按照我们上面所说的理论,leader应该是server.4,看下是不是:

server.1:

【软件安装】Zookeeper在Lunix系统中的安装

server.2:

【软件安装】Zookeeper在Lunix系统中的安装

server.4:

【软件安装】Zookeeper在Lunix系统中的安装

 确实是server.4接替了server.3,成为了新的leader,从server.4前台打印出来的日志也可以看到这一点:

【软件安装】Zookeeper在Lunix系统中的安装

在失去了和server.3的连接以后,server.4立马成为新的leader,这个切换的过程非常的快,也确实达到了官方所宣称的用户无感知的。好了,Zookeeper的安装到此为止,后面几篇我会更加详细地讲解Zookeeper的应用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/111943.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!