[Hadoop] Zookeeper

Ref: 大数据zookeeper精讲视频课程

Ref: Zookeeper底层原理解析

目的,这个东西,很多东西都基于此,有必要系统地了解下。

 

 

前言


一、做什么

Hive优化 -> MapReduce优化

MySQL优化 --> SQL语句的优化

Zookeeper是个啥?负责各个组件的协调服务。

    • Hadoop:大象
    • Hive:小蜜蜂
    • Hbase:海豚

 

Hadoop高可用模式HA,有两个主节点:一个active,一个standby。

Standby通过zookeeper了解active的节点是否还活着。

 

二、安装

Java写的,需要JDK成功。

防火墙 must 关闭!

 

conf目录下:

"以下只是基本的注意事项,详细内容看原视频"。

log4j.properties 日志文件

myid文件内容要与server.id保持一致。

zoo_sample.cfg 配置文件参照模

添加集群信息

server.1=hadoop01:2888:3000

server.2=hadoop02:2888:3000

server.3=hadoop03:2888:3000

2888, 3888 为内部通信端口。

 

启动 zk:

三个安装节点都需要单独启动。

zkServer.sh start

JPS: 启动完成后出现相应的进程 QuorumPeerMain

但,不代表启动成功

需要在其他节点也要启动

zkServer.sh status

出现 Model: follower/leader,一主多从的架构。

 

投票机制:

第一次,每个人都会给自己投票,没有leader选出。

第二次,serverid低的 主动vote to serverid高的。

7-15个是比较优的选择。

 

三、Zookeeper来源

—— 解决分布式的数据一致性。

Namenode HA

namenode存在单点故障的问题 --> HA可以配置多个namenode,但只有一个是active的。

???

 

CAP理论

C: Consistency

A: Availability

P: Partition Tolerance

 

* Consistency 一致性:

强一致性:全部real time保持一致。

弱一致性:大部分保持一致即可。

最终一致性:接收一定时间的延迟。例如:HDFS

 

* Availability 可用性:

高可用,可持续对外提供服务。

 

* Tolerance 分区容错性:

对外提供满足一致性和可用性的服务。

 

BASE理论

Basically Available 基本可用

Soft State: 软状态

Eventually Consistent: 最终一致性

 

基于Paxos算法,希腊帮主选举算法

“过半”即可,有效投票。

Zookeeper是该算法的最完美实现。

 

 

 

 

Zookeeper 文件系统


一、八大特点 

1. 在任意一个节点执行:zkCli.sh 都可以进入客户端。

2. 参看所有命令:help

connect hadoop02:2181

ls path

get path  # 不存在文件也不存在目录。只是具备“类似的功能”,based on "znode"。

...

3. znode的分类方式一:按照生命周期

(a) 持久的znode:create 绝对路径 data ----> 例如:create /bd1803 ""

(b) 临时的znode:create -e 绝对路径 data ----> 不能有子节点

3. znode的分类方式二:按照有无编号

(a) 持久无编号节点 create path ""

(b) 持久有编号节点 create -s path ""

(c) 临时无编号节点 create -e path ""

(d) 临时有编号节点 create -e -s path ""

 

总之,共八大特点,详见视频:zookeeper的文件系统

 

二、znode 属性

通过zk shell来探索。

 

三、监听机制

分布式一致性依赖监听机制,监听znode。

 

四、Zookeeper 的api开发

本质上讲,就是通过Java编程控制znode,基本的操作类似上述已讲的内容。

/* implement */

 

 

 

 

Zookeeper的应用场景


一、命名服务 namespace

解决:分布式系统上可能的命名冲突。既可以保证全局唯一的命名,又可以保证全局统一的命名。

文件系统+监听

有编号的节点,可以多次创建。故,需要一个“无编号”的临时节点

Nodecreate后,通过“监听”反馈给各个节点。

 

二、配置文件管理

Hadoop的时候,修改了配置文件 ---- 远程拷贝的。

集群中有几个节点就的修改几个节点,直到最后一个节点修改完成才能最终生效,时间延迟就是个问题。

修改一个文件,其他节点自动update。

 

三、集群管理

datanode的死亡和添加等。

将datanode作为zookeeper的一个znode。

 

四、锁

(1) 读锁 - 共享锁

(2) 写锁 - 排他锁

(3) 时序锁 - 先后顺序的锁

 

五、分布式队列

(1) 同步队列:当一个队列的成员都聚齐时,这个队列才有用,否则一直等待所有成员。

(2) fifo:队列按照fifo方式进行入队和出队操作。

 

其他参考:Zookeeper到底是干嘛的

 

End.

posted @   郝壹贰叁  阅读(509)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示