linux下 zookeeper-3.4.10安装,命令行基础命令,过半机制,奇数原则

本文详细介绍了在Linux环境下安装Zookeeper-3.4.10的步骤,包括解压、配置、创建zkData和myid文件,以及集群设置。此外,还讲解了Zookeeper的基础命令,如启动、查看状态、创建和删除节点等。文章最后探讨了Zookeeper的选举原理,强调了过半机制和选择奇数节点的重要性,以确保集群的稳定性和避免脑裂问题。

zookeeper安装

1.将ZK文件上传到服务器上
2.执行tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/ 将文件解压到opt下的module目录下(根据自己上传的版本更改命令)
在这里插入图片描述
3.移动到model目录下,进入ZK文件夹中

cd /opt/module/zookeeper-3.4.10/

在这里插入图片描述
4.创建zkData文件夹,然后进入conf文件夹

mkdir zkData
cd conf/

在这里插入图片描述
5.将zoo_sample.cfg文件重命名为zoo.cfg
在这里插入图片描述
6.打开zoo.cfg文件,将dataDir的值改为刚刚创建的zkData的路径

在这里插入图片描述
在这里插入图片描述
然后在最后增加代码(主机名改为自己linux系统对应的主机名,需要注意与hosts文件中的主机名一致

#######################cluster##########################
server.1=bigdata2:2888:3888
server.2=bigdata1:2888:3888
server.3=bigdata3:2888:3888

7.进入到zkData文件夹中,创建并打开myid文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在里面输入数值,数值与之前在zoo.cfg文件中设定的一致
server.1=bigdata2:2888:3888
在这里插入图片描述
8.回退到model目录中
在这里插入图片描述9.将zookeeper复制到其他linux系统上
在这里插入图片描述

scp -r zookeeper-3.4.10/ bigdata1:`pwd`

pwd代表相对路径,但是我使用之后并没有往bigdata1中拷贝
于是使用下面的绝对路径

scp -r zookeeper-3.4.10/ bigdata1:'/opt/module/'

在这里插入图片描述
结果:
在这里插入图片描述
10.将bigdata1和bigdata3的myid进行修改

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
11.配置环境变量

export ZK_HOME=/opt/module/zookeeper-3.4.10
export PATH=$PATH:$ZK_HOME/bin

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
12.检验安装配置成功
输入zkS然后按tab键,如果可以自动将其补全为zkServer.就代表配置成功
在这里插入图片描述
在这里插入图片描述

基础命令

启动zookeeper(集群,最少两个)

zkServer.sh start

查看当前节点的zk状态

zkServer.sh status

在这里插入图片描述

启动zk客户端

进入到ZK目录下
cd /opt/module/zookeeper-3.4.10/
执行zkCli命令
bin/zkCli.sh

在这里插入图片描述
在这里插入图片描述

显示所有操作命令:help

在这里插入图片描述
在这里插入图片描述

普通创建(永久节点):create

在这里插入图片描述
在这里插入图片描述

获得节点的值:get path [watch]

在这里插入图片描述

在这里插入图片描述

设置节点的具体值:set

在这里插入图片描述
在这里插入图片描述

使用 ls 命令来查看当前znode中所包含的内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除节点:delete和 递归删除节点:rmr

在这里插入图片描述
在这里插入图片描述

ZK的选举原理(过半机制,奇数原则)

过半机制:
当ZK集群中的超过一般的节点都可以正常工作,就代表这个集群已经启动了。
当集群启动后,会进行全员投票,当某一节点获得半数及以上的票时,那个节点就会变为leader节点,其他的节点仍然是follower节点,如果没有节点获得半数及以上的票的时候,会进行循环,直到有节点获得半数及以上的票。这个时候,ZK集群也就真正的启动起来了
奇数原则:
在学习ZK的时候,就学习到ZK集群的节点数最好是一个以上的奇数。那么为什么是奇数呢?
原因1:在进行选举的时候,如果是偶数,那么就有可能出现两个leader,就会出现脑裂的错误。
原因2:leaderd的选举算法采用了paxos协议
paxos核心思想:当多数server写成功,则任务数据写成功。如果有3个server则2个写成功即可,当有4个或5个server,则3个写成功即可。
如果有3个server,最多允许有一个server挂掉,如果有4个server,则同样最多允许一个server挂掉,因此,可以看出,3台服务器和4台服务器的容灾能力是一样的,为了节省服务器资源,我们通常采用奇数数量,作为服务器部署数量。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值