zookeeper的安装及配置教程(步骤详尽)

前提:zookeeper是java语言开发的,保证jdk已经在服务器上安装成功:

(yum安装的是openjdk,尽量不要使用yum安装jdk,要使用oracle Hotspot的jdk。原因是一些开源软件,尤其是大数据领域的,最开始对oracle的官方jdk和openjdk都会进行测试,但是到后面就只针对oracle的jdk进行测试,使用openjdk可能会出现不兼容的问题)

上传安装包:

解压包:

zookeeper目录结构:

进入到bin目录,存放的是各种启动脚本:

进入conf目录,改名配置文件zoo_sample.cfg:改名为zoo.cfg(默认的名称是这个)

 vi zoo.cfg:

①tickTime:维持leader与follower以及客户端之间的心跳频率时间(单位毫秒,默认2000ms)

②initLimit:允许follower从节点追随leader主节点时的初始延迟,默认是10次,也就是允许的延迟时间为2000*10=20秒。如果在这个时间内还没有连接上的话,leader就会认为follower有问题,将会抛弃你不跟你玩了。

③syncLimit:默认是5.leader与follower之间的协作允许最大延迟时长,tickTime * syncLimit=2000*5=10秒。10秒之内没响应,也会认为follower存在问题。

④dataDir:用于存储持久化文件(日志、快照之类的)的路径。默认 /tmp/zookeeper 最好不要用/tmp这类的目录,一般改为/var,var在Linux中是存放临时文件的。

⑤cliientPort:客户端连接的端口号。默认是2181

⑥maxClientCnxns:最大的客户端连接数。也就是最多允许多少个客户端连接本台机器的zk

⑦配置集群中所有的节点信息:3888端口用于在没有leader时所有节点在3888建立socket连接进行投票选举出leader;2888端口是follower从节点连接leader主节点的端口。

在zk中,leader可以理解成是“谦让”出来的,1,2,3,4中谁是最大的谁就立马是leader

过半通过:一共4个节点有 4/2+1=3台通过就行。比如1,2,3启动了之后3就是leader,因为遵循的是过半通过原则。

创建目录,如果连续两级以上目录都不存在,就要加上-p参数:

创建一个myid文件,里面写入1:因为上面再zoo.cfg中配置了server.1,每个节点指定不同的myid

在不同服务器节点上拷贝文件的scp命令:将node01节点的文件夹拷贝到node02节点

 echo命令的使用:(直接将内容写入文件)

依次对node03和node04节点进行拷贝:

依次在node03和node04节点创建myid文件:

将zookeeper添加到profile环境变量:

加载下profile文件:

将profile文件分发到其余三个节点:

使配置文件profile生效的两种方式:

source /etc/profile
或者
. /etc/profile

 xshell批量发送命令到全部会话窗口功能介绍:

 启动zookeeper的几种方式:

①start-foreground:前台启动,所有的日志会打印出来。

 依次启动前三个节点的zk服务:可以看到node03已经被选举为leader了,其余两台就变成follower了。此时已经选出leader了,后面还有一个node4节点,即使再启动node04,它也不会成为leader,只能是follower,

 

此时如果停掉node03这个leader,那么node04将会成为leader:

服务运行一段时间后,再选举的规则大概是:如果谁的数据最完整,那么它将成为新的leader;如果都比较完整的话,再来比较id,id越大,就成为leader。

发布了755 篇原创文章 · 获赞 343 · 访问量 77万+

猜你喜欢

转载自blog.csdn.net/a772304419/article/details/103960926