赞
踩
前提: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。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。