HA解决了HDFS的NameNode的单点问题

Federation解决了整个HDFS集群中只有一个名字空间,并且只有单独的一个NameNode管理所有DataNode的问题。

一、HA机制(High Availability)

1.HA集群

HDFS 的高可用性(HA, High Availability)是为了解决集群不可用的问题引入的,集群不可用主要是宕机、 NameNode 软硬件升级等导致的。 HA 机制通过提供选择运行在同一集群中的一个热备用的“主/备”两个冗余 NameNode ,使得在机器宕机或维护的过程中可以快速转移到另一个 NameNode。

典型的 HA 集群会配置两个独立机器为 NameNode ,分别为主 NameNode 和副本 NameNode 。正常情况下,主 NameNode 为 alive 状态而副本 NameNode 为休眠状态,活动 NameNode 负责处理集群中所有的客户端操作,待机时仅仅作为一个 slave ,保持足够的状态,如果有必要会提供一个快速的故障转移。

关于保持同步。为了保持备用节点与活动节点状态的同步,两个节点同时访问一个共享存储设备(例如从 NAS、NFS 挂载)到一个目录。

2.HA机制作用

HA 机制出现的作用主要是为了:

1.解决单点故障

2.提升集群容量集群性能

二、Federation机制

为了防止单点失效(Single PointFailure),在 NameNode 只有命名空间的情况下。其最主要的原因是对 HDFS 系统的文件隔离,Federation 可以解决大部分单 NameNode HDFS 的问题。

总之,HDFSFederation就是使得HDFS支持多个命名空间,并且允许在HDFS中同时存在多个NameNode。

1.Federation架构

HDFS Federation使用多个独立的 NameNode / NameSpace 使得 HDFS 的命名服务能水平扩展,HDFS Federation中的 NameNode 之间为独立且不需要相互协调,Federation 中的 NameNode 提供了名字空间和块管理功能。Federation 中的 DataNode 被所有的 NameNode 用作公共存储块的地方。每个 DataNode 都会向所在集群中所有的 NameNode
注册,并且周期性发送心跳和块信息报告,同时处理来自 NameNode 的指令。

HDFS 只有一个名字空间 NameSpace 时,它使用全部的块,而 Federation HDFS 中有多个独立的NameSpace ,并且每个名字空间使用一个块池Block Pool(注:就是属于单个名字空间的一组 Block ),每个DataNode 为所有的块池存储块,DataNode是个物理概念,而块池是另一个重新将块划分的逻辑概念。

HDFS 中只有一组块。而Federation HDFS中有多组独立的块,块池就是属于同一个名字空间的一组块。

HDFS 由一个 NameNode 和一组 DataNode 组成,而 Federation HDFS 由多个 NameNode 和一组 DataNode 组成,每个 DataNode 会为多个块池存储块。同一个 DataNode 中可以存着属于多个块池的多个块。块池允许一个名字空间在不通知其他名字空间的情况下为一个新的 Block 创建 Block ID ,同时一个 NameNode 失效不会影响其下的 DataNode 为其他的
NameNode 服务。

在 HDFS 中,所有的更新、回滚都是以 NameNode 和 Block Pool 为单元发生的,即同 HDFS Federation 中不同的 NameNode/Block Pool 之间没有什么关系。

在 DataNode 中,对应于每个 NameNode 都有一个相应的线程。每个 DataNode 会去每个 NameNode 注册,并周期性地给所有的 NameNode 发送心跳和使用报告,DataNode 还会给 NameNode 发送其所在的块池报告 block report,由于有多个 NameNode 同时存在,因此任何一个 NameNode 都可以随时动态加入、删除和更新。

2.多名字空间管理

在一个集群中需要唯一的名字空间还是多个名字空间,核心问题是名字空间中数据的共享和访问的问题。解决数据共享和访问的一种方法:使用全局唯一的名字空间,在多个名字空间下,还可以使用 Client Side Mount Table 方式做到数据共享和访问。

HDFS Federation 名字空间管理基本原理:将各个名字空间挂载到全局 mount-table 中,就可以将数据到全局共享;同样,名字空间挂载到个人 mount-table 中,就成为应用程序可见的名字空间视图。

【Hadoop】HDFS笔记(二):HDFS的HA机制和Federation机制的更多相关文章

  1. Hadoop集群(二) HDFS搭建

    HDFS只是Hadoop最基本的一个服务,很多其他服务,都是基于HDFS展开的.所以部署一个HDFS集群,是很核心的一个动作,也是大数据平台的开始. 安装Hadoop集群,首先需要有Zookeeper ...

  2. Hadoop学习笔记: HDFS

    注:该文内容部分来源于ChinaHadoop.cn上的hadoop视频教程. 一. HDFS概述 HDFS即Hadoop Distributed File System, 源于Google发表于200 ...

  3. Hadoop学习笔记(2)-HDFS的基本操作(Shell命令)

    在这里我给大家继续分享一些关于HDFS分布式文件的经验哈,其中包括一些hdfs的基本的shell命令的操作,再加上hdfs java程序设计.在前面我已经写了关于如何去搭建hadoop这样一个大数据平 ...

  4. HDFS 10 - HDFS 的联邦机制(Federation 机制)

    目录 1 - 为什么需要联邦 2 - Federation 架构设计 3 HDFS Federation 的不足 版权声明 1 - 为什么需要联邦 单 NameNode 的架构存在的问题:当集群中数据 ...

  5. hadoop学习笔记贰 --HDFS及YARN的启动

    1.初始化HDFS :hadoop namenode -format 看到如下字样,说明初始化成功. 启动HDFS,start-dfs.sh 终于启动成功了,原来是core-site.xml  中配置 ...

  6. Hadoop学习笔记(三) ——HDFS

    参考书籍:<Hadoop实战>第二版 第9章:HDFS详解 1. HDFS基本操作 @ 出现的bug信息 @-@ WARN util.NativeCodeLoader: Unable to ...

  7. hadoop 学习笔记二

    NameNode的持久化(persistent)(day4,1) 类似于:Redis redis中的持久化文件是相互独立的当两个持久化文件同时存在时默认使用的是aof ,但是namenode 的持久化 ...

  8. Hadoop学习笔记二

    一.设置无密码sudo权限,不用在普通用户和root用户间来回切换 chmod u+w /etc/sudoers vim /etc/sudoers #首行添加如下的内容: hadoop ALL=(ro ...

  9. Hadoop-HBASE案例分析-Hadoop学习笔记<二>

    之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第八章的笔记 主要介绍HBase,一个分布式数据库的应用案例. 案例概况: 1)时间序列数据库(OpenTSD ...

随机推荐

  1. 【每日Scrum】第六天(4.27) TD学生助手Sprint2站立会议

    站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 今天和楠哥做了课程事件和日历表操作的例子,并尝试做时间表和日历表的数据库设计 Y 刘静 今天开始编辑自己项目中的日历管理 编辑程序,能够在日历 ...

  2. 深入Garbage First垃圾收集器(二)背景

    G1 GC是目前Java HotSpot虚拟机最新的垃圾收集器. 它是一种压缩型收集器,其基本原则是首先收集尽可能多的垃圾,因此被命名为"Garbage First" GC. G1 ...

  3. PythonCookBook笔记——数字日期和时间

    数字日期和时间 数字的四舍五入 用round函数,指定值和小数位数. >>> round(1.23, 1) 1.2 >>> round(1.27, 1) 1.3 & ...

  4. Lua_第17 章 数学库

    第17 章 数学库 在这一章中(以下关于标准库的几章中相同)我的主要目的不是对每个函数给出完整地说明,而是告诉你标准库可以提供什么功能.为了可以清楚地说明问题,我可能 会忽略一些小的选项或者行为.基本 ...

  5. WPF中的数据绑定Data Binding使用小结

    完整的数据绑定的语法说明可以在这里查看: http://www.nbdtech.com/Free/WpfBinding.pdf MSDN资料: Data Binding: Part 1 http:// ...

  6. 初步探讨WPF的ListView控件(涉及模板、查找子控件) - GavinJun

    本文结合模板的应用初步介绍ListView的应用 一.Xaml中如何建立数据资源 大部分数据都会来自于后台代码,如何Xaml同样的建立数据源呢?比如建立一个学生List: 首先引入命名空间: xmln ...

  7. 在Eclipse中建立Maven Web项目

    一.软件版本 Eclipse Java EE IDE for Web Developers. Version: Neon Release (4.6.0) Maven 3.3.9 Servlet 2.5 ...

  8. Sping中Bean配置的深入探讨

    一.p命名空间的使用 Spring 从 2.5 版本开始引入了一个新的 p 命名空间,可以通过 <bean> 元素属性的方式配置 Bean 的属性.使用 p 命名空间后,基于 XML 的配 ...

  9. access 连接数据库

    前提条件 如果没有安装office的话,需要安装引擎 安装了office就不用安装引擎 连接数据库 Dim plMydb As Microsoft.Office.Interop.Access.Dao. ...

  10. SDUT OJ 之 1571 《人品,有没有?》 字符串的处理问题

    人品,有木有? Time Limit: 1000ms   Memory limit: 32768K  有疑问?点这里^_^ 题目描述 新一届的山东理工大学ACM网络擂台赛就要开始啦!听说晋级的选手有机 ...