Hadoop 2.0 中 NameNode/ResourceManager HA 总结

2024-06-07 15:58

本文主要是介绍Hadoop 2.0 中 NameNode/ResourceManager HA 总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文部分转自 董的博客《Hadoop 2.0中单点故障解决方案总结》

  • 一 为什么需要 HA 和 Federation
    • 1 单点故障
    • 2 集群容量和集群性能
  • 二 Hadoop 20 三个系统简介
    • 1 HDFS 基础架构
    • 2 YARN 基础架构
    • 3 MapReduce
  • 三 Hadoop HA 架构
    • 1 HDFS 的 HA 架构
    • 2 YARN 的 HA 架构
    • 3 Hadoop HA 解决方案架构
    • 4 构成 Hadoop HA 的组件
    • 5 Hadoop HA 需要考虑的问题
    • 6 Hadoop HA 小结


一. 为什么需要 HA 和 Federation

1.1 单点故障

在 Hadoop 2.0 之前,也有若干技术试图解决单点故障的问题,我们在这里做个简短的总结

  • Secondary NameNode
    它不是 HA,它只是阶段性的合并 edits 和 fsimage,以缩短集群启动的时间。当 NameNode (以下简称NN )失效的时候,Secondary NN 并无法立刻提供服务,Secondary NN 甚至无法保证数据完整性:如果NN数据丢失的话,在上一次合并后的文件系统的改动会丢失。

  • Backup NameNode (HADOOP-4539)
    它在内存中复制了 NN 的当前状态,算是 Warm Standby,可也就仅限于此,并没有 failover 等。它同样是阶段性的做 checkpoint,也无法保证数据完整性。

  • 手动把 name.dir 指向 NFS
    这是安全的 Cold Standby,可以保证元数据不丢失,但集群的恢复则完全靠手动。

  • Facebook AvatarNode
    Facebook 有强大的运维做后盾,所以 Avatarnode 只是 Hot Standby,并没有自动切换,当主 NN 失效的时候,需要管理员确认,然后手动把对外提供服务的虚拟 IP 映射到 Standby NN,这样做的好处是确保不会发生脑裂的场景。其某些设计思想和 Hadoop 2.0 里的 HA 非常相似,从时间上来看,Hadoop 2.0 应该是借鉴了 Facebook 做法。

还有若干解决方案,基本都是依赖外部的HA机制,譬如 DRBD,Linux HA,VMware 的 FT 等等。


1.2 集群容量和集群性能

单 NN 的架构使得 HDFS 在集群扩展性和性能上都有潜在的问题:

  • NN 进程使用的内存可能会达到上百G
    常用的估算公式为 1G 对应1百万个块,按缺省块大小计算的话,大概是64T (这个估算比例是有比较大的富裕的,其实,即使是每个文件只有一个块,所有元数据信息也不会有1KB/block)。

  • 所有的元数据信息的读取和操作都需要与 NN 进行通信
    譬如客户端的 addBlock、getBlockLocations,还有 DataNode 的 blockRecieved、sendHeartbeat、blockReport。

当集群大到一定程度后,NN 成为了性能的瓶颈。 Hadoop 2.0 里的 HDFS Federation 就是为了解决这两个问题而开发的。



二. Hadoop 2.0 三个系统简介

1. Hadoop 1.0 内核主要由两个分支组成:MapReduce 和 HDFS
众所周知,这两个系统的设计缺陷是单点故障,即 MR 的 JobTracker 和 HDFS 的 NameNode 两个核心服务均存在单点问题,该问题在很长时间内没有解决,这使得 Hadoop 在相当长时间内仅适合离线存储和离线计算。但这些问题在 Hadoop 2.0 中得到了非常完整的解决。

2. Hadoop 2.0 内核由三个分支组成,分别是 HDFS、MapReduce 和 YARN
而 Hadoop 生态系统中的其他系统,比如

这篇关于Hadoop 2.0 中 NameNode/ResourceManager HA 总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1039631

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter