在一个典型的HA集群中,每个NameNode是一台独立的服务器。在任一时刻,只有一个NameNode处于active状态,另一个处于standby状态。其中,active状态的NameNode负责所有的客户端操作,standby状态的NameNode处于从属地位,维护着数据状态,随时准备切换。
两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了
为了确保快速切换,standby状态的NameNode有必要知道集群中所有数据块的位置。为了做到这点,所有的datanodes必须配置两个NameNode的地址,发送数据块位置信息和心跳给他们两个。
对于HA集群而言,确保同一时刻只有一个NameNode处于active状态是至关重要的。否则,两个NameNode的数据状态就会产生分歧,可能丢失数据,或者产生错误的结果。为了保证这点,JNs必须确保同一时刻只有一个NameNode可以向自己写数据。
journalNode这个概念是在MR2也就是Yarn中新加的,journalNode的作用是存放EditLog的,在MR1中editlog是和fsimage存放在一起的然后SecondNamenode做定期合并,Yarn在这上面就不用SecondNamanode了.下面是目前的Yarn的架构图,重点关注一下JournalNode的角色.
利用共享存储来在两个NN间同步edits信息。
以前的HDFS是share nothing but NN,现在NN又share storage,这样其实是转移了单点故障的位置,但中高端的存储设备内部都有各种RAID以及冗余硬件包括电源以及网卡等,比服务器的可靠性还是略有提高。通过NN内部每次元数据变动后的flush操作,加上NFS的close-to-open,数据的一致性得到了保证。社区现在也试图把元数据存储放到BookKeeper上,以去除对共享存储的依赖,Cloudera也提供了Quorum Journal Manager的实现和代码,这篇中文的blog有详尽分析:基于QJM/Qurom Journal Manager/Paxos的HDFS HA原理及代码分析
DataNode(以下简称DN)同时向两个NN汇报块信息。
这是让Standby NN保持集群最新状态的必需步骤,不赘述。
用于监视和控制NN进程的FailoverController进程
显然,我们不能在NN进程内进行心跳等信息同步,最简单的原因,一次FullGC就可以让NN挂起十几分钟,所以,必须要有一个独立的短小精悍的watchdog来专门负责监控。这也是一个松耦合的设计,便于扩展或更改,目前版本里是用ZooKeeper(以下简称ZK)来做同步锁,但用户可以方便的把这个ZooKeeper FailoverController(以下简称ZKFC)替换为其他的HA方案或leader选举方案。
隔离(Fencing)),防止脑裂),就是保证在任何时候只有一个主NN,包括三个方面:
共享存储fencing,确保只有一个NN可以写入edits。
客户端fencing,确保只有一个NN可以响应客户端的请求。
DataNode fencing,确保只有一个NN可以向DN下发命令,譬如删除块,复制块,等等。
相关推荐
本文档主要介绍了Hadoop 2.6高可用集群的搭建过程,包括集群规划、搭建准备、集群搭建和配置等步骤。下面是从中提取的知识点: 1. 集群规划 在规划Hadoop集群时,需要考虑到集群的拓扑结构、节点的角色、网络配置...
Hadoop高可用集群搭建
hadoop高可用集群搭建及参数优化hadoop高可用集群搭建及参数优化hadoop高可用集群搭建及参数优化
Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase) 一、Hadoop HA高可用集群概述 在大数据处理中,高可用集群是非常重要的,Hadoop HA高可用集群可以提供高可靠性和高可用性,确保数据处理不中断。该集群由...
基于 Zookeeper 搭建 Hadoop 高可用集群 基于 Zookeeper 搭建 Hadoop 高可用集群是指使用 Zookeeper 实现 Hadoop 集群的高可用性,确保 Hadoop 集群的可靠性和稳定性。高可用性是指系统在面临故障或错误时仍能继续...
### 手动搭建Hadoop高可用集群教程 #### 一、前言 本文将详细介绍如何从零开始手动搭建Hadoop高可用(HA)集群。Hadoop是一个能够处理大量数据的分布式计算框架,它由HDFS(Hadoop Distributed File System)和...
基于docker构建hadoop分布式集群,可以适用于swarm云,k8s云,mesos云。
Hadoop在后续的版本更新中做出了改进利完善,用户可以为HDFS和YARN 集群添加备用的主节点,这样即使主节点宕机,备用的主节点也可以代替原有的主节点维持 HDFS和YARN集群正常运行,这就是所谓的 Hadoop 高可用集群。...
hadoop 高可用启动脚本,运行启动zookeeper集群和hadoop ha集群
Hadoop高可用集群安装是指在四个节点上安装Hadoop完全分布式集群,包括zookeeper、Kafka、mysql、Hive、Spark等相关组件。以下是安装过程中的关键步骤和知识点: 1. 安装Hadoop分布式集群:Hadoop分布式集群是指将...
《Hadoop高可用完全分布模式完整部署》是针对大数据处理技术的一份详尽教程,尤其适合初学者和希望深入理解Hadoop集群搭建的IT专业人士。本教程覆盖了从基础理论到实际操作的各个环节,旨在帮助读者掌握如何在企业...
在搭建 Hadoop 3.0 高可用的分布式集群时,需要选择 3 台主机,分别安装好 Linux 系统,并完成 Linux系统的网络配置和系统配置。 1.2 软件规划 需要注意的是:Hadoop 3.0 最低支持 Java8,如果大家还在使用 Java7 ...
"Hadoop高可用安装" 本文档记录了一次采用Zookeeper-3.6.1+Hadoop-3.2.1高可用环境搭建过程,操作系统使用Centos8.1。下面是知识点的总结: 1. 服务器规划:在搭建Hadoop高可用环境时,需要三台Centos8服务器,...
本文将深入探讨“Hadoop集群监控”和“Hive高可用性”的主题,结合向磊的分享进行详细阐述。 首先,Hadoop是一个分布式计算框架,它允许在大量廉价硬件上存储和处理海量数据。Hadoop集群监控对于确保系统稳定性和...
Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多,所以它的实现也更加复杂,下面给大家详细...
本文将详细介绍如何搭建一个Hadoop HA高可用性的完全分布式集群,并提供关键步骤和注意事项。 #### Hadoop HA概述 Hadoop HA主要是指NameNode的高可用性实现方案。在传统的Hadoop架构中,NameNode是整个HDFS...
Hadoop集群安装,高可用集群安装的方法和步骤,自己整理的 Hadoop集群安装,高可用集群安装的方法和步骤,自己整理的 Hadoop集群安装,高可用集群安装的方法和步骤,自己整理的
【Hadoop高可用集群安装详解】 Hadoop是一个开源的分布式计算框架,其高可用性是通过复制和故障切换机制来保证服务的连续性和数据的安全性。在这个实验项目中,我们将探讨如何在完全分布式模式下安装和配置Hadoop的...