当前位置:主页 > 查看内容

Zookeeper 完全分布安装(编写shell脚本启动,附带安装包)

发布时间:2021-07-14 00:00| 位朋友查看

简介:Zookeeper 完全分布搭建 目录 Zookeeper 完全分布搭建 一 安装工具准备 二?zookeeper 基本知识 三?zookeeper集群完全分布式安装 四 zookeeper基本操作命令使用 五 zookeeper集群启动shell脚本 六?总结 ? 一 安装工具准备 apache-zookeeper-3.5.5-bin.tar 链……

Zookeeper 完全分布搭建

目录

Zookeeper 完全分布搭建

一: 安装工具准备:

二:?zookeeper 基本知识

三:?zookeeper集群完全分布式安装

四: zookeeper基本操作命令使用

五: zookeeper集群启动shell脚本

六:?总结

?


一: 安装工具准备:

apache-zookeeper-3.5.5-bin.tar

链接:https://pan.baidu.com/s/191zqPJr1ZXItAFUp6rGnfQ?
提取码:aoye?

?


二:? zookeeper 基本知识

1.? ? 介绍:

zookeeper 是一个开源的分布式的apache项目。为分布式应用提供协调服务

zookeeper = 文件系统 +? 通知机制。

2.? ? 作用:

管理大数据体系中的集群以及所有框架

3.? ? ?设计理念:

是一个基于观察者模式设计的分布式服务管理框架。

  • 负责存储和管理关键数据(存储节点元数据信息)
  • 然后接受观察者的注册
  • 一旦这些数据状态改变,zookeeper将负责通知已经在zookeeper上注册的观察者做出相应的反应。

4.? ? ?特点:

  • ?一个领导者(leader),多个跟随者(follow)组成的集群
  • ?集群中只要有半数节点存活,zookeeper集群就能正常服务
  • ?全局数据一致【每个server保存同一份相同数据副本,client无论连接到那个server,数据都一致。】
  • ?更新请求顺序进行? 【来着同一个client的更新请求按发送顺序依次执行】
  • ?数据更新原子性,一次数据更新要么是成功,要么是失败
  • ?实时性,在一定时间范围内,client能读取最新数据

5.? ? ?zookeeper内部原理:【半数机制】

半数机制: 集群中半数以上机器存活,集群可用,所以zookeeper适合安装奇数台服务器。

选举机制:

zookeeper 默认的算法是 FastLeaderElection,采用投票数大于半数则胜出的逻辑。

假设目前有3台服务器,每台服务器均没有数据,它们的编号分别是1,2,3按编号依次启动,它们的选择举过程如下:

服务器 1 启动,给自己投票,然后发投票信息,由于其它机器还没有启动所以它收不到反馈信息,服务器 1 的状态一直属于 Looking。
服务器 2 启动,给自己投票,同时与之前启动的服务器 1 交换结果,由于服务器 2 的编号大所以服务器 2 胜出,但此时投票数正好大于半数,所以服务器2成为领导者leader。
服务器 3 启动,给自己投票,同时与之前启动的服务器1,2交换信息,由于服务器2已结胜出,所以服务器3只能是跟随者follow。

?


三:? zookeeper集群完全分布式安装

1.? ?安装前保证hadoop集群已结安装好并启动成功:?hadoop全分布安装教程

2.? ?上传zookeeper安装包到hadoop主节点,后配置完毕再分发到各个节点

3.? ?解压安装包到自定义的相应目录并改名【以下演示为/opt目录】

tar -zxvf?zookeeper-3.4.10.tar.gz -C /opt 【/opt是自己解压的目录】

mv zookeeper-3.4.10 zookeeper? 【改名】

4.? ?进入解压目录,创建一个data目录用于存放数据

mkdir data

5.? ?进入data目录创建文件myid,编辑1,退出【后续节点2就编辑为2,节点3就编辑为3】

touch myid

6.? ? 进入zookeeper解压目录下的conf目录,复制zoo_sample.cfg文件为zoo.cfg,再进入编辑

cp? zoo_sample.cfg zoo.cfg? 【复制并重命名文件】

vi zoo.cfg? 【编辑文件zoo.cfg】

编辑如下:??

dataDir=/opt/zookeeper/data

server.1=主机1 ip地址:2888:3888
server.2=主机2 ip地址:2888:3888
server.3=主机3 ip地址:2888:3888

7.? ? 分发zookeeper安装包到从节点

scp -r zookeeper root@192.168.217.130:/opt? 【从节点2】
scp -r zookeeper root@192.168.217.131:/opt? 【从节点3】

8.? ? 在从节点2编辑myid文件内容为2,从节点3编辑myid文件内容为3

9.? ? 启动,进入bin目录,如下:

./zkServer.sh?start? 【启动服务端,三台机器都需要 一 一 的启动,后续给出脚本启动!

./zkCli.sh? ?【启动客户端】

./zkServer.sh?status 【查看zookeeper状态】

./zkServer.sh?stop 【关闭zookeeper】

10.? ?我的启动顺序是主机1,主机2,主机3,所有安装半数机制,最终leader为主机2,跟随者为主机1和主机3。

11.? ? 启动客户端:? ./zkCli.sh

?


四: zookeeper基本操作命令使用

help : ?显示所有操作命令。

Ls /具体要查看的目录 : ?查看具体目录下的信息。 ?

ls /? :? ?查看当前znode中所包含的内容。也就是zookeeper中所存储的集群元信息。

create: ?在当前目录创建普通节点。 【 例如创建节点并赋值:create /ao?“hello” 】

create -e :加一个参数“e”,表示短暂的创建节点,重新启动后自动消失。

create -s :加一个参数“s”,表示创建一个带序号的节点。没有节点的话,自动从0开始。

get? : ?获取节点的值。?【 例如:get /ao 】

set? : ?修改或者添加节点的值。 【 例如:set /ao??“需要添加或修改的内容,自动覆盖”

delete : 删除节点。(deleteall表示删除目录。)

Stat ??: 查看节点状态。

watch: 注册监听,在一个节点是注册监听,但在另一个节点修改被监听的值时,该节点将得到反馈。(get : 监听节点内容变化? ? ls : 监听节点数目,也就是目录下文件数变化。)

? ??


五: zookeeper集群启动shell脚本

1.? ?进入根目录下的bin目录下:cd /bin

2.? ?创建文件zookeeper-start: touch zookeeper-start

3.? ?编辑内容如下:

#!/bin/bash
echo “正在启动zookeeper集群,请稍后....”

for i in 1 2 3
do
? ssh bigdata$i "source /etc/profile; /opt/zookeeper/bin/zkServer.sh start"
done

4.? ?设置可执行权限,我只做学习而用,所以直接设置为最高权限:

chmod 777 zookeeper-start

5.? ? 接下来启动zookeeper就不用各个机器去各个启动,直接用输入zookeeper-start启动即可。

小提示:? 对于zookeeper集群的关闭和查看状态同以上道理,改语句最后的start为stop和status即可。方便对zookeeper集群进行操作。

?


六:? 总结

以上为zookeeper的集群安装,简单命令使用,以及编写shell脚本启动集群的简单步骤。

?

?

?

?

?

;原文链接:https://blog.csdn.net/m0_46440794/article/details/115383594
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐