理解HDFS高可用性架构详解大数据
在Hadoop1.x版本的时候,Namenode存在着单点失效的问题。如果namenode失效了,那么所有的基于HDFS的客户端——包括MapReduce作业均无法读,写或列文件,因为namenode是唯一存储元数据与文件到数据块映射的地方。而从一个失效的namenode中恢复的步骤繁多,系统恢复时间太长,也会影响到日常的维护。
Hadoop的2.x版本在HDFS中增加了对高可用性的支持来解决单点失效的问题。
这一实现中简单说就是配置了一对活动-备用namenode。当活动namenode失效的时候,备用namenode就会接管它的任务并开始服务于来自客户端的请求,不会有任何明显中断。
下面我们来看一下HDFS实现高可用性的架构图:
从架构图我们可以看到:
Active NameNode 和 Standby NameNode:两台 NameNode 形成互备,一台处于 Active 状态,为主 NameNode,另外一台处于 Standby 状态,为备 NameNode,只有主 NameNode 才能对外提供读写服务。
主备切换控制器又称故障转移控制器,ZKFailoverController:ZKFailoverController 作为独立的进程运行,对 NameNode 的主备切换进行总体控制。ZKFailoverController 能及时检测到NameNode 的健康状况,在主NameNode 故障时借助 Zookeeper 实现自动的主备选举和切换。
Zookeeper 集群:为主备切换控制器提供主备选举支持。
共享存储系统:共享存储系统是实现NameNode 的高可用最为关键的部分,共享存储系统保存了 NameNode 在运行过程中所产生的 HDFS 的元数据。主NameNode和备NameNode 通过共享存储系统实现元数据同步。在进行主备切换的时候,新的主 NameNode 在确认元数据完全同步之后才能继续对外提供服务。
DataNode 节点:除了通过共享存储系统共享 HDFS 的元数据信息之外,主 NameNode 和备 NameNode 还需要共享 HDFS 的数据块和 DataNode 之间的映射关系。DataNode 会同时向主 NameNode 和备 NameNode 上报数据块的位置信息。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/7672.html
分布式文件系统,分布式数据库区块链并行处理(MPP)数据库,数据挖掘开源大数据平台数据中台数据分析数据开发数据治理数据湖数据采集相关文章
- 【数据网格架构】什么是数据网格——以及如何不将其网格化
- ARM64架构、国产系统UOS、银河麒麟离线安装jdk1.7、jdk1.8,jdk7、jdk8离线安装(100%成功)
- 什么是SOA架构?为什么使用SOA架构?
- 大数据架构系列:Apache Kylin 4.0
- 4.Jenkins进阶之分布式架构环境配置
- 微服务数据架构,数据分类及存储特性,SpringData与NoSQL的集成
- 微服务架构开发实战:微服务的高级主题一自动扩展的定义及意义
- 编码中的Adapter,不仅是一种设计模式,更是一种架构理念与解决方案
- 数据仓库的分层和作用特点_数据仓库的架构以及数据分层
- MySQL逻辑架构(2)
- 光大银行实时流数据平台架构实践
- Tapdata 与 Apache Doris 完成兼容性互认证,共建新一代数据架构
- 深度好文:接入交换机三种架构TOR、EOR 和 MOR:有什么区别?
- 顺丰、京东、作业帮、Google在大数据和架构的结合应用分享 | ArchSummit
- [android] android项目架构详解手机开发
- 从一般分布式设计看HDFS设计思想与架构详解大数据
- MySQL的分布式架构:提高数据库的效率和可扩展性(mysql分布式)
- Linux路由分析:通往架构优化之路.(linux 路由分析)
- Oracle分库中间件:更好的企业数据架构(oracle分库中间件)
- 精深理解Oracle内存架构图解深入(oracle内存架构图)
- 微服务架构下Redis实现数据集成(微服务中接入redis)
- 红色双喜高并发架构下的Redis应用(redis 高并发 架构)