Hadoop2.0中HDFS高可用性的实现原理
来源:互联网 发布:jacs在什么数据库 编辑:程序博客网 时间:2024/06/03 14:08
在Hadoop1.0中,NameNode在HDFS集群中存在单点故障问题,每一个集群中只存在一个NameNode,如果NameNode所在的机器出现故障,那么整个集群就无法利用,直到NameNode重启或在另一台主机上启动NameNode守护进程。因此,有两个因素影响了HDFS的高可用性:
(1)、在不可预知的情况下,如果NameNode所在的机器崩溃了,整个集群将无法利用,直到NameNode被重启。
(2)、在可预知的情况下,比如NameNode所在的机器硬件或软件需要升级,将导致整个集群宕机。
在Hadoop2.0中,通过在一个集群中运行两个NameNode(active NN,standbyNN),解决了上面的两个问题:如果active NN所在机器崩溃或需要维护,可以快速的启动standby NN来恢复正常。
在典型的HA集群中,通常有两台不同的机器作为NameNode,不过只有一台处于Active状态,另一台则处于Standby状态,Active NN负责集群中所有客户端的操作,而Standby NN用于备用。
为了让Standby NN和Active NN保持同步(元数据保持一致),它们都将会和JournalNodes守护进程通信。当Active NN执行任何有关命名空间的修改的 操作时,它需要持久化到一半以上的JournalNodes上(通过edits log持久化存储),而Standby NN负责观察edits log的变化,它能够从JournalNodes中读取edits的信息,并更新自己的命名空间。一旦Active NN出现故障,Standby NN将会保证从JournalNodes读取了全部的edits(保证和Active NN拥有完全同步的命名空间状态),并切换为Active状态。
为了提供快速的故障恢复,Standby NN也需要保持集群中各个文件块的存储位置,所以,集群中所有的Database将配置好Active NN和Standby NN的位置,并向它们发送文件块所在的位置及心跳。
在任何时候,集群中只有一个NameNode处于Active状态是极其重要的,否则,在两个NameNode下命名空间状态会出现分歧,这会导致数据的丢失及其他不正确的结果。所以,在任何时候,JournalNodes只允许一个NameNode充当writer。在故障恢复期间,将要切换为Active状态的NameNode会取得writer的角色,并阻止另一个NameNode继续处于Active状态。
部署HA集群的准备事项:
(1)、NameNode machines:运行Active NN和Standby NN的机器需要有相同的硬件配置。
(2)、JournalNode machines:JournalNode守护进程相对来说比较轻量,所以这些守护进程可以和其他守护进程(NameNode、YARN ResourceManager)运行在同一台机器上。在一个集群中,至少要运行3个以上的JournalNode。
在HA集群中,Standby NN也执行NameSpace状态的checkpoints,所以不必运行Secondary NN、CheckpointNode和BackupNode。事实上,运行这些守护进程是错误的。
- Hadoop2.0中HDFS高可用性的实现原理
- Hadoop2.0中HDFS高可用性的实现原理
- Hadoop2.2.0中HDFS的高可用性实现原理
- Hadoop2.2.0中HDFS的高可用性实现原理
- Hadoop2.2.0中HDFS的高可用性实现原理
- Hadoop2.X中HDFS的高可用性实现原理
- 【总结】Hadoop2.2.0中HDFS的高可用性实现原理
- hadoop之 Hadoop2.2.0中HDFS的高可用性实现原理
- Hadoop2的高可用性实现原理
- hadoop2的HDFS的高可用性
- hdfs的高可用性HA
- Hadoop HDFS高可用性(HA) 原理篇
- Hadoop2.0的HA介绍 (High Avalability,高可用性)
- Kafka高可用性实现原理
- 高可用性的HDFS学习笔记1
- HDFS高可用性
- HDFS的运行原理,如何实现HDFS的高可用
- HDFS使用QJM(Quorum Journal Manager)实现的高可用性以及备份机制
- Codeforces 899F Letters Removing [线段树]
- poi读取Excel时日期为数字 的解决方法 转载 2017年12月14日 10:31:14 标签:poi /excel /java 19 在使用poi解析Excel文件时,会发现,表格中的日期解析出
- zero-shot learning
- Visual Studio编译问题整理(缓慢更新中)
- maven学习之从搭建maven环境到在项目中如何使用maven
- Hadoop2.0中HDFS高可用性的实现原理
- shiro安全框架HelloWord入门篇
- JDK8堆内存划分变化
- 严重: Exception sending context initialized event to listener instance of class [org.springframework.w
- 模板基础知识1——《C++程序设计语言(第四版)》第23章 模板 笔记
- leetcode 547. Friend Circles 寻找图的环的数量 + 深度优先遍历DFS
- 什么是OGNL表达式
- The number of divisors(约数) about Humble Numbers
- URI is not registered ( Setting | Project Settings | Schemas and DTDs )