1. Hadoop 2.0 产生背景

  • Hadoop 1.0中HDFS和MapReduce在高可用、扩展性等方面存在问题
  • HDFS存在的问题
    • NameNode单点故障,难以应用于在线场景 HA
    • NameNode压力过大,且内存受限,影扩展性 Federation
  • MapReduce存在的问题响
    • JobTracker访问压力大,影响系统扩展性
    • 难以支持除MapReduce之外的计算框架,比如Spark、Storm等

2. Hadoop 1.x 和Hadoop 2.x

Hadoop 2.x由HDFS、MapReduce和YARN三个分支构成:

  1. HDFS:NN Federation(联邦)、HA。2.X:只支持2个节点HA,3.0实现了一主多备
  2. MapReduce:运行在YARN上的MR;
    • 离线计算,基于磁盘I/O计算
  3. YARN,资源管理系统

2.1 HDFS 2.x

  • 解决HDFS 1.0中单点故障和内存受限问题。
  • 解决单点故障
    • HDFS HA:通过主备NameNode解决
    • 如果主NameNode发生故障,则切换到备NameNode上
  • 解决内存受限问题
    • HDFS Federation(联邦)
    • 水平扩展,支持多个NameNode;
    • (2)每个NameNode分管一部分目录;
    • (1)所有NameNode共享所有DataNode存储资源
  • 2.x仅是架构上发生了变化,使用方式不变
  • 对HDFS使用者透明
  • HDFS 1.x中的命令和API仍可以使用

3. HDFS 2.x Federation(联邦)

通过多个namenode/namespace把元数据的存储和管理分散到多个节点中,使到namenode/namespace可以通过增加机器来进行水平扩展。

能把单个namenode的负载分散到多个节点中,在HDFS数据规模较大的时候不会也降低HDFS的性能。可以通过多个namespace来隔离不同类型的应用,把不同类型应用的HDFS元数据的存储和管理分派到不同的namenode中。

4. HDFS 2.x HA(高可用)

主备NameNode

Hadoop HA主要是解决NameNode单点故障问题,主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换。所有DataNode同时向两个NameNode汇报数据块信息(位置)。并且在Hadoop HA中还含有JNN集群用来存储共享存储状态(shared edits文件)。处于StandyBy节点的NameNode,主要作用是完成了edits.log文件的合并产生新的image,推送回给Active NameNode。该步骤和SecondaryNameNode的备份功能类似,通过这种方式保证了StandyBy节点的NameNode和Actvie NameNode的fsimage文件一致。edit文件通过JNN集群存储共享存储状态,active namenode处理所有的操作请求(读写),读写入到这个共享状态的集群节点。

HDFS HA保持NameNode元数据信息一致,也就是说保持fsimge和edits文件保持一致。fsimge和edits文件在HDFS 格式化之后产生。

Hadoop的元数据主要作用是维护HDFS文件系统中文件和目录相关信息。元数据的存储形式主要有3类:内存镜像、磁盘镜像(FSImage)、日志(EditLog)。在Namenode启动时,会加载磁盘镜像到内存中以进行元数据的管理,存储在NameNode内存;磁盘镜像是某一时刻HDFS的元数据信息的快照,包含所有相关Datanode节点文件块映射关系和命名空间(Namespace)信息,存储在NameNode本地文件系统;日志文件记录client发起的每一次操作信息,即保存所有对文件系统的修改操作,用于定期和磁盘镜像合并成最新镜像,保证NameNode元数据信息的完整,存储在NameNode本地和共享存储系统(QJM)中。

4.1 共享存储(shared edits)

active namenode处理所有的操作请求(读写),standby namenode只同步状态datanode会同时向两个namenode发送block报告和心跳当满足一次checkpoint时,standby namenode进行一次合并操作active NN执行任何命名空间的修改都会持久化到一半以上的journalnodes上而Standby NN负责观察edits log的变化,它能够读取从JNs中读取edits信息,并更新其内部的命名空间一旦Active NN出现故障,Standby NN将会保证从JNs中读出了全部的Edits,然后切换成Active状态一次checkpoint过程

4.2 切换机制

  • 手动切换:通过命令实现主备之间的切换,可以用HDFS升级等场合
  • 自动切换:基于Zookeeper实现

基于Zookeeper自动切换方案

  • ZooKeeper Failover Controller:监控NameNode健康状态,
  • 当NameNode启动时,会向Zookeeper注册NameNode
  • NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC 锁的NameNode变为active

Hadoop详解(五):HDFS HA 和 Federation相关推荐

  1. Hadoop详解(五)——ZooKeeper详解,ZooKeeper伪分布搭建和集群搭建,Hadoop集群搭建,sqoop工具的使用

    ZooKeeper简介 什么是ZooKeeper? ZooKeeper是Google的Chubby一个开源的实现,是Hadoop分布式协调服务. 它包含了一个简单的原语集,分布式应用程序可以基于它实现 ...

  2. Hadoop详解以及历史版本介绍

    Hadoop详解 Hadoop的介绍以及发展历史 Hadoop之父Doug Cutting Hadoop最早起源于lucene下的Nutch.Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页 ...

  3. Hadoop生态圈(一)- Hadoop详解

    目录 前言 1. Hadoop概述 1.1 Hadoop是什么 1.2 Hadoop发展简史 1.2 Hadoop三大发行版本 1.3 Hadoop优势 1.4 Hadoop的组成 1.4.1 Had ...

  4. Hadoop详解(十二):Yarn资源调度策略

    在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,Fair Scheduler. FIFO Scheduler FIFO Scheduler把应用 ...

  5. Masonry自动布局详解五:比例(multipliedBy)

    Masonry自动布局详解五:比例(multipliedBy) 标签: iosmasonryautolayout自动布局约束 2015-11-30 16:30 1816人阅读 评论(0) 收藏 举报 ...

  6. PackageManagerService启动详解(五)之Android包信息体和解析器(中)

        PKMS启动详解(五)之Android包信息体和包解析器(中) Android PackageManagerService系列博客目录: PKMS启动详解系列博客概要 PKMS启动详解(一)之 ...

  7. Hadoop详解(四):HDFS shell操作和Java API操作

    1. HDFS环境准备 1.1 HDFS的格式化与启动 HDFS配置完之后就可以对其进行格式化操作.在NameNode所在机器上执行如下命令进行HDFS的格式化操作: hadoop namenode ...

  8. Hadoop详解手册.pdf

    1 HADOOP背景 1 什么是HADOOP 1. HADOOP是apache旗下的一套开源软件平台 2. HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 ...

  9. 数据分析之Hadoop详解

    1.1 什么是Hadoop - Hadoop的概念: Apache™ Hadoop® 是一个开源的, 可靠的(reliable), 可扩展的(scalable)分布式计算框架 允许使用简单的编程模型跨 ...

最新文章

  1. 51nod 1381 硬币游戏 概率
  2. 零基础学python爬虫-零基础如何学爬虫技术?一篇带你入门!(理论+实操+荐书)...
  3. 学习数据结构和算法前瞻
  4. 学习环境配置:Manjaro、MSYS2以及常见软件
  5. 控制计算机价格,本人对电脑不太懂。想十一买台笔记本电脑。价格控制在5000之内。请高手指点一下。谢谢!...
  6. Swift - 循环强引用,内存泄漏
  7. python读取raw图片文件_python读取raw binary图片并提取统计信息的实例
  8. 新买的手机一直没有更新系统,是不是新买的手机原装系统最好用啊?
  9. 电脑有英伟达独显,有了英伟达显卡驱动还要英特尔显卡驱动吗?
  10. python中数字转英文_python:将数字转换成用英文表达的程序
  11. MySQL数据库—SQL汇总
  12. 孕马血清促性腺激素PMSG的来源及主要功能
  13. 交换机,路由器接口类型
  14. ios android与wp,在iOS与Android间选择WP
  15. 谷歌浏览器无法下载文件
  16. mstsc远程登录windows服务器
  17. 《VMware Virtual SAN权威指南》一2.3.6 巨型帧
  18. 真 OO无双之真乱舞书 序言
  19. 6666端口,地址访问谷歌浏览器,火狐浏览器限制
  20. 基于MATLAB的Kmeans聚类算法的仿真与分析

热门文章

  1. robotframe使用之时间控件
  2. Table of Contents - Tomcat
  3. 备份全网服务器数据生产架构方案案例模型
  4. Cocos2d中使用颜色混合:加算,减算
  5. end_form_tag 已经在rails2.x中去掉了
  6. 用 C# 做组件设计时的事件实现方法讨论
  7. 49.什么是拼接技术?
  8. *44.程序的链接方式
  9. ARM学习方法大杂烩,高手经验之谈,内容完全来自互联网
  10. 哈佛研究人员开发基于折纸造型高精度微型手术机器人