大数据开发面试题【Zookeeper篇】

47、zookeeper是什么?

主要服务于分布式系统,可用来做统一配置管理、统一命令服务、分布式锁、集群管理等

48、zookeeper的作用以及适用场景?

数据的发布订阅:由于大数据集群中节点过多,不可逐台进行修改,在设计时候采用统一的配置中心,之后只需要将新的配置发送到配置中心,所有节点都可自动下载更新
命名服务:zk通过顺序节点的特性来生成全局唯一ID
Master选举:让所有服务节点去竞争性地创建用一个ZNode,必然只有一个服务节点能够创建成功
分布式锁:
集群管理:
事务操作:

49、Zookeeper的选举策略,leader和follower的区别?

在zk集群启动时候,需要确定一台leader服务器。首先确保集群之间可以相互通信
第一次选举:
假如集群有五台服务器:
服务器1启动时候,会投自己一票,此时不满半数,服务器1保持为looking
服务器2启动时候,服务器1和服务器2交换信息,但服务器1发现服务器2的myid比自己大,所以将自己的票投给服务器2,此时服务器1有0票,服务器2有两票,不满半数,都为looking
服务器3启动时候,重复上述步骤,拥有3个选票,超过半数,当选为leader,此时其他服务器状态为following

第二次选举:
当集群中的leader挂掉之后,其他所有节点会把自己的状态设置为looking,此时的选举规则为①EPOCH大的直接胜出,②:EPOCH相同,事务id大的胜出,③:事务id相同,服务器id大的胜出
SID:服务器ID。用来唯一标识一台 ZooKeeper集群中的机器,每台机器不能重
复,和myid一致。
ZXID:事务ID。ZXID是一个事务ID,用来 标识一次服务器状态的变更。在某一时刻, 集群中的每台机器的ZXID值不一定完全一 致,这和ZooKeeper服务器对于客户端“更 新请求”的处理逻辑有关。
Epoch:每个Leader任期的代号。没有 Leader时同一轮投票过程中的逻辑时钟值是 相同的。每投完一次票这个数据就会增加

50、Zookeeper的节点类型有哪些?分别作用是什么?

持久节点类型:节点在创建后,一直存在,直到主动来删除这个节点,不会因为客户端会话失效而消失
持久顺序节点:和持久节点类似,
临时节点:临时节点的生命周期和客户端会话绑定,如果客户端会话失效,该节点消失

51、Zookeeper的节点数怎么设置比较好?

在ZK集群中,建议部署奇数个节点,大多数情况下,三个就ok,节点数越多,节点间通信所需要的时间也越久,选举leader时候需要的时间也越久
zk集群的容错数:在保证集群可用的前提下,最多允许挂掉的节点个数,也叫做zk集群的容错数,

52、ZK中的脑裂问题

原本是一个leader,现在变成了两个leader服务,一般zk集群中不会轻易出现脑裂问题,原因在于过半机制
在zk中的过半机制是大于,而不是大于等于:为了防止脑裂
假死:由于心跳超时,认为leader死了,实际上leader还活着
脑裂:由于假死会发起新的选举,选举一个新的leader,但此时旧的那个leader网络恢复,故此时集群中有两个leader,此时造成脑裂
解决脑裂问题:
quorums方式:

53、Zookeeper如何保证数据的一致性?

ZAB(zookeeper autom broadcast)原子广播协议。
ZAB协议分为两部分:
消息广播阶段:leader接收事务提交,并且将新的proposal请求广播给follower节点,收集各个节点的反馈,决定是否commit
崩溃恢复机制:如果在同步过程中出现 Leader 节点宕机,会进入崩溃恢复阶段,重新进行 Leader 选举,崩溃恢复阶段还包含数据同步操作,同步集群中最新的数据,保持集群的数据一致性。

补充:zk中的一致性协议叫什么

ZAB(zookeeper autom broadcast)原子广播协议。
ZAB协议是一个分布式一致性算法,让ZK拥有了崩溃恢复和原子广播的能力,进而保证集群中的数据一致性
实现架构:任何learner节点接收到非事务请求查询本地缓存然后返回,任何事务操作都需要转发给leader,由leader发起决议,同集群中超过半数的follower返回确认ack时,leader进行广播看,要求全部节点提交事务
特性:保证早leader上提交的事务最终被所有服务器提交;保证丢弃没有经过半数检验的事务
协议内容:集群启动时候,或者当leader服务器网络中断、崩溃恢复等情况时候,ZAB协议就会进入崩溃恢复模式,选举产生新的leader;当选举产生新的leader,同时集群中由过半机器与该leader服务器完成了数据同步之后,zab协议就会退出崩溃模式,进入消息广播模式

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个用于处理大规模数据的开源框架,它不仅是大数据技术的核心重点,也是面试中经常会问到的问题之一。Hadoop包含了Hadoop框架本身以及Hadoop生态系统中的其他辅助框架,如zookeeper、Flume、Hbase、Hive、Sqoop等。在一个正常工作的Hadoop集群中,需要启动多个进程来完成不同的任务。这些进程包括: 1. NameNode:负责管理HDFS(Hadoop分布式文件系统)的元数据,如文件的目录结构和文件块的位置信息。 2. DataNode:负责存储实际的数据块,并向NameNode报告块的状态。 3. ResourceManager:负责管理集群上的资源分配和任务调度,协调不同应用程序之间的资源竞争。 4. NodeManager:负责管理每个节点上的资源,接收来自ResourceManager的指令,启动和监控容器,执行具体的任务。 5. SecondaryNameNode:定期从NameNode中复制元数据,用于恢复NameNode的故障。 6. JobTracker:负责任务调度和资源管理,监控任务的执行并重新调度失败的任务。 7. TaskTracker:在每个节点上运行,负责执行特定的任务,如Map任务或Reduce任务。 这些进程协同工作,以实现Hadoop集群的分布式计算和数据存储。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [大数据开发面试题详解:Hadoop的运行原理](https://blog.csdn.net/xx666zz/article/details/85708344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [2021最全大数据面试题汇总---hadoop,附答案!](https://blog.csdn.net/weixin_45574790/article/details/119241157)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值