前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop HDFS HA 高可用

Hadoop HDFS HA 高可用

作者头像
可爱见见
发布2019-09-09 16:26:06
7080
发布2019-09-09 16:26:06
举报
文章被收录于专栏:卡尼慕卡尼慕

1

在Hadoop 1.x 中,Namenode是集群的单点故障,一旦Namenode出现故障,整个集群将不可用,重启或者开启一个新的Namenode才能够从中恢复。

这里注意一下,SecondaryNamenode并没有提供故障转移的能力

那么这里怎么避免这种单点故障呢?不可否认我们会遇到这种突然在namenode节点上的主机突然down掉。或者在升级维护时,要停止一段时间namenoode。然而,namenode掌握着整个hdfs的元数据信息,一旦namenode挂掉,这个hdfs就无法访问,同时依赖于hdfs的各个组件也无妨正常工作。

于是在Hadoop2.0中,HDFS NameNode 和 YARN ResourceManger(JobTracker 在 2.0 中已经被整合到 YARN ResourceManger 之中) 的单点问题都得到了解决。

2

既然是解决单点故障,那么只要使用多个namenode不就可以了吗?但这里要保证多个namenode中只能有一个在工作,其他的不工作,但是要时时同步,工作的namenode节点上的元数据,以便在工作的namenode挂掉时候能够及时补上。这里两台 NameNode 形成互备,一台处于 Active 状态,为主 NameNode,另外一台处于 Standby 状态,为备 NameNode只有主 NameNode 才能对外提供读写服务

具体的结构请看。

主备切换控制器 ZKFailoverController:ZKFailoverController 作为独立的进程运行,对 NameNode 的主备切换进行总体控制。ZKFailoverController 能及时检测到 NameNode 的健康状况,在主 NameNode 故障时借助 Zookeeper 实现自动的主备选举切换,当然 NameNode 目前也支持不依赖于 Zookeeper 的手动主备切换。

Zookeeper 集群:为主备切换控制器提供主备选举支持。

DataNode 节点:除了通过共享存储系统共享 HDFS 的元数据信息之外,主 NameNode 和备 NameNode 还需要共享 HDFS 的数据块和 DataNode 之间的映射关系。DataNode 会同时向主 NameNode 和备 NameNode 上报数据块的位置信息

这里再强调一次,NameNode 通过共享存储系统实现元数据同步。在进行主备切换的时候,新的主 NameNode 在确认元数据完全同步之后才能继续对外提供服务

3

这里看看主备切换流程。

NameNode 主备切换主要由 ZKFailoverController、HealthMonitor 和 ActiveStandbyElector 这 3 个组件来协同实现。

这边就不仔细讲述了。具体可见:https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-name-node/,这个文章写得真的是好!!太详细了!!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卡尼慕 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档