一.Hadoop2.x产生背景

  1.Hadoop1.x中的HDFS和MapReduce在高可用、扩展性等方面存在问题。

  2.HDFS存在的问题

    1.NameNode单点故障,难以应用于在线场景。

    2.NameNode压力过大,且内存受限,影响扩展性。

  3.MapReduce存在的问题

    1.JobTracker访问压力大,影响系统扩展性。

    2.难以支持除MapReduce之外的计算框架,比如Spark、Strom等。

二.架构差异

  1.Hadoop1.x由HDFS和MapReduce组成,不支持HA.

  2.Hadoop2.x由HDFS、MapReduce和YARN三个分支组成,其中HDFS只支持2个节点HA【3.x支持一主多备】,MapReduce运行在YARN之上,YARN负责资源调度。

三.Hadoop2.x新特性

  1.解决HDFS1.x中单点故障和内存受限的问题。通过主备NameNode使用HA解决单点故障问题。如果主NameNode发生故障,则切换到备NameNode之上。

  2.解决内存受限问题,使用HDFS Federation机制,内存水平扩展,支持多NameNode。每个NameNode分管一部分目录,所有NameNode共享所有DataNode存储资源。

  3.主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换。

  4.所有DataNode同时向两个NameNode汇报数据块信息。

四.切换方式

  1.手动切换,通过命令实现主备之间的切换,可以用在HDFS升级等场合。

  2.自动切换,基于Zookeeper。Zookeeper Failover Controller【ZKFC】会监控NameNode的健康状态,并向Zookeeper注册NameNode,当NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC锁的NameNode变为active。

五.Federation

  

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

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

Hadoop1.x与Hadoop2.x之间的差异的更多相关文章

  1. 从零自学Hadoop(10):Hadoop1.x与Hadoop2.x

    阅读目录 序 里程碑 Hadoop1.x与Hadoop2.x 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的 ...

  2. Hadoop1.x与Hadoop2的区别

    转自:http://blog.csdn.net/fenglibing/article/details/32916445 六.Hadoop1.x与Hadoop2的区别 1.变更介绍 Hadoop2相比较 ...

  3. Hadoop入门进阶步步高(六)-Hadoop1.x与Hadoop2的差别

    六.Hadoop1.x与Hadoop2的差别 1.变更介绍 Hadoop2相比較于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了非常大的提高,Ha ...

  4. [css3]CSS3选择器:nth-child和:nth-of-type之间的差异

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1709 一.深呼吸,直 ...

  5. CSS3选择器:nth-child和:nth-of-type之间的差异

    CSS3选择器:nth-child和:nth-of-type之间的差异 这篇文章发布于 2011年06月21日,星期二,23:04,归类于 css相关. 阅读 57546 次, 今日 143 次 by ...

  6. NFC(2)NFC、蓝牙和红外之间的差异

    NFC(2)NFC.蓝牙和红外之间的差异表

  7. Moq4在.NET3.5和.NET4版本之间的差异

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Moq4在.NET3.5和.NET4版本之间的差异.

  8. 面向对象的方式进行数据交换网络之间的差异--无缝切换的发展到单机游戏C/S模式

    上一页本文描述描述有关数据的发展过程之间的差异支撑点,这里展示的另一个特点:无缝切换的发展,以独立C/S模式 一般C/S模式都面临一个问题: 就是开发过程中的调试难题,由于涉及到client和服务端相 ...

  9. Git抽取版本之间的差异,打包解压

    patch.sh文件代码 #!/bin/bash MY_SAVEIFS=$IFS #IFS=$(echo -en "\n\b") IFS=$'\n' build_dir=" ...

随机推荐

  1. npm和yarn常用调试命令

    yarn查看全局安装路径 yarn global dir npm查看所有全局安装的包<全局路径也会显示> npm list --depth=0 -global

  2. QC9.2登陆时显示一个X号

    这个是因为浏览器安全设置的问题,具体解决步骤如下: 进入“工具-Internet选项”设置窗口,进入“高级”选项卡,将“安全”设置中的“启用内存保护减少联机攻击”选项的勾选去掉,然后应用并确定.重启浏 ...

  3. Maven依赖包导入错误(IntelliJ IDEA):java.lang.OutOfMemoryError: GC overhead limit exceeded

    一.问题背景 最近用IntelliJ IDEA 打开一个老应用,一直加载依赖不成功,主POM中存在如下错误. java.lang.OutOfMemoryError:GC overhead limit ...

  4. MySQL使用存储过程实现判断表中字段或者索引是否存在,如果不存在则创建

    使用存储过程可以保证数据库升级脚本可以重复执行而不会报错. CREATE TABLE `tb_user` ( `id` ) NOT NULL COMMENT '非自增id', `account` ) ...

  5. full text search

    definition https://www.techopedia.com/definition/17113/full-text-search A full-text search is a comp ...

  6. PyEchart--数据分析师的利器

    Echart https://echarts.baidu.com/ ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(I ...

  7. vue aes

    npm install crypto-js import CryptoJS from "crypto-js/crypto-js"; const KEY = CryptoJS.enc ...

  8. iOS开发 判定某个时间是否属于这个时间段

    - (BOOL)isBetweenDate { //设置的是中国时间 NSString *startTime=@"13:01"; NSString *expireTime=@&qu ...

  9. Python 工匠:使用数字与字符串的技巧学习笔记

    #Python 工匠:使用数字与字符串的技巧学习笔记#https://github.com/piglei/one-python-craftsman/blob/master/zh_CN/3-tips-o ...

  10. 怎样在sql server profiler跟踪时只显示自己关心的内容

    当我们想知道.net程序到底执行了哪些SQL的时候,通常会使用sql server profiler,但是如果不加设置,我们程序执行的sql通常会被系统的SQL淹没,通过以下的方法,可以只显示我们需要 ...