NameNode 高可用整体架构概述
来源:互联网 发布:武汉淘宝外包 编辑:程序博客网 时间:2024/06/04 19:20
在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组件,包括 MapReduce、Hive、Pig 以及 HBase 等也都无法正常工作,并且重新启动 NameNode 和进行数据恢复的过程也会比较耗时。这些问题在给 Hadoop 的使用者带来困扰的同时,也极大地限制了 Hadoop 的使用场景,使得 Hadoop 在很长的时间内仅能用作离线存储和离线计算,无法应用到对可用性和数据一致性要求很高的在线应用场景中。
所幸的是,在 Hadoop2.0 中,HDFS NameNode 和 YARN ResourceManger(JobTracker 在 2.0 中已经被整合到 YARN ResourceManger 之中) 的单点问题都得到了解决,经过多个版本的迭代和发展,目前已经能用于生产环境。HDFS NameNode 和 YARN ResourceManger 的高可用 (High Availability,HA) 方案基本类似,两者也复用了部分代码,但是由于 HDFS NameNode 对于数据存储和数据一致性的要求比 YARN ResourceManger 高得多,所以 HDFS NameNode 的高可用实现更为复杂一些,本文从内部实现的角度对 HDFS NameNode 的高可用机制进行详细的分析。
Active NameNode 和 Standby NameNode:两台 NameNode 形成互备,一台处于 Active 状态,为主 NameNode,另外一台处于 Standby 状态,为备 NameNode,只有主 NameNode 才能对外提供读写服务。
主备切换控制器 ZKFailoverController:ZKFailoverController 作为独立的进程运行,对 NameNode 的主备切换进行总体控制。ZKFailoverController 能及时检测到 NameNode 的健康状况,在主 NameNode 故障时借助 Zookeeper 实现自动的主备选举和切换,当然 NameNode 目前也支持不依赖于 Zookeeper 的手动主备切换。
Zookeeper 集群:为主备切换控制器提供主备选举支持。
共享存储系统:共享存储系统是实现 NameNode 的高可用最为关键的部分,共享存储系统保存了 NameNode 在运行过程中所产生的 HDFS 的元数据。主 NameNode 和
NameNode 通过共享存储系统实现元数据同步。在进行主备切换的时候,新的主 NameNode 在确认元数据完全同步之后才能继续对外提供服务。
- NameNode 高可用整体架构概述
- hadoop namenode高可用解决方案
- Hadoop7-HDFS的NameNode的元数据管理机制与Hadoop的高可用架构
- hadoop+zookepper实现namenode的高可用
- cdh cm5.11.0 namenode 高可用配置
- Atlas的整体架构概述
- Socket服务器整体架构概述
- Socket服务器整体架构概述
- Socket服务器整体架构概述
- Socket服务器整体架构概述
- Socket服务器整体架构概述
- Mongodb高可用架构
- Redis高可用架构
- 高可用架构详解
- 互联网架构“高可用”
- Redis高可用架构
- 高可用架构经验
- MySQL高可用架构
- Get Jenkins job build queue length
- android 第一个界面 选项卡加toolbar
- Anddroid 物流查询快递查询
- 欢迎使用CSDN-markdown编辑器
- POJ2070 Filling Out the Team
- NameNode 高可用整体架构概述
- Mac OS X上安装和使用Homebrew和Homebrew Cask来进行软件安装管理
- Android基础_SharedPreferences
- iOS开发罗盘/指南针
- g++参数简介
- JDBCUtils工具类
- 城市选择二级联动、三级联动的思路
- RK3288做DNS,让公司告别shit花生壳,DNSPOD使用方法
- response.setCharacter和request.setCharacterEncoding详解