新技术论坛
搜索
查看: 958|回复: 0
打印 上一主题 下一主题

呼之欲出!比Spark快10倍的Hadoop3.0有哪些实用新特性?

[复制链接]
  • TA的每日心情
    开心
    2016-12-9 18:18
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    扫一扫,手机访问本帖
    楼主
    跳转到指定楼层
    发表于 2016-6-6 06:09:02 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
      Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+磁盘,共同处理数据。
      其实最大改变的是hdfs,hdfs  通过最近black块计算,根据最近计算原则,本地black块,加入到内存,先计算,通过IO,共享内存计算区域,最后快速形成计算结果。

      1. Hadoop 3.0简介
      Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,这直接迫使Hadoop社区基于JDK  1.8重新发布一个新的Hadoop版本,而这正是hadoop 3.0。
      Hadoop 3.0的alpha版预计今年夏天发布,GA版本11月或12月发布。
      Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR Native  Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。
      2. Hadoop 3.0新特性
      Hadoop 3.0在功能和性能方面,对hadoop内核进行了多项重大改进,主要包括:
    2.1 Hadoop Common
      (1)精简Hadoop内核,包括剔除过期的API和实现,将默认组件实现替换成最高效的实现(比如将FileOutputCommitter缺省实现换为v2  版本,废除hftp转由webhdfs替代,移除Hadoop子实现序列化库org.apache.hadoop.Records
    (2)Classpath isolation以防止不同版本jar包冲突,比如google  Guava在混合使用Hadoop、HBase和Spark时,很容易产生冲突。(http://issues.apache.org/jira  /browse/HADOOP-11656)
    (3)Shell脚本重构。
      Hadoop  3.0对Hadoop的管理脚本进行了重构,修复了大量bug,增加了新特性,支持动态命令等。http://issues.apache.org/jira/browse/HADOOP-9902
    2.2 Hadoop HDFS
      (1)HDFS支持数据的擦除编码,这使得HDFS在不降低可靠性的前提下,节省一半存储空间。(http://issues.apache.org/jira/browse/HDFS-7285)
    (2)多NameNode支持,即支持一个集群中,一个active、多个standby  namenode部署方式。注:多ResourceManager特性在hadoop  2.0中已经支持。(http://issues.apache.org/jira/browse/HDFS-6440)
    2.3 Hadoop MapReduce
      (1)Tasknative 优化。为MapReduce增加了C/C++的map output  collector实现(包括Spill,Sort和IFile等),通过作业级别参数调整就可切换到该实现上。对于shuffle密集型应用,其性能可提高约30%。(http://issues.apache.org/jira/browse/MAPREDUCE-2841)
    (2)MapReduce 内存参数自动推断。在Hadoop  2.0中,为MapReduce作业设置内存参数非常繁琐,涉及到两个参数:mapreduce..java.opts,一旦设置不合理,则会使得内存资源浪费严重,比如将前者设置为4096MB,但后者却是"-Xmx2g",则剩余2g实际上无法让java  heap使用到。(http://issues.apache.org/jira/browse/MAPREDUCE-5785)
    2.4 Hadoop YARN
      (1)基于cgroup的内存隔离和IO  Disk隔离(http://issues.apache.org/jira/browse/YARN-2619)
    (2)用curator实现RM leader选举(http://issues.apache.org/jira/browse/YARN-4438)
    (3)containerresizing(http://issues.apache.org/jira/browse/YARN-1197)
    (4)Timelineserver next generation  (http://issues.apache.org/jira/browse/YARN-2928)
    以下是hadoop-3.0的最新参数

    Hadoop-3.0

    • HADOOP
      • Move to JDK8+
      • Classpath isolation on by default HADOOP-11656
      • Shell script rewrite HADOOP-9902
      • Move default ports out of ephemeral range HDFS-9427
    • HDFS
      • Removal of hftp in favor of webhdfs HDFS-5570
      • Support for more than two standby NameNodes HDFS-6440
      • Support for Erasure Codes in HDFS HDFS-7285
    • YARN
    • MAPREDUCE
      • Derive heap size or mapreduce.*.memory.mb automatically MAPREDUCE-5785

    在 HDFS-7285中,实现了Erasure Coding这个新功能.鉴于此功能还远没有到发布的阶段,可能后面此块相关的代码还会进行进一步的改造,因此只是做一个所谓的预分析,帮助大家提前了解 Hadoop社区目前是如何实现这一功能的.本人之前也没有接触过Erasure Coding技术,中间过程也确实有些偶然,相信本文可以带给大家收获.

    Erasure coding纠删码技术简称EC,是一种数据保护技术.最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术.他通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性.在一定范围的数据出错情况下,通过纠删码技术都可以进行恢复.下面结合图片进行简单的演示,首先有原始数据n个,然后加入m个校验数据块.如下图所示:

    Parity部分就是校验数据块,我们把一行数据块组成为Stripe条带,每行条带由n个数据块和m个校验块组成.原始数据块和校验数据块都可以通过现有的数据块进行恢复,原则如下:

    如果校验数据块发生错误,通过对原始数据块进行编码重新生成如果原始数据块发生错误, 通过校验数据块的解码可以重新生成。

    而且m和n的值并不是固定不变的,可以进行相应调整。可能有人会好奇,这其中到底是什么原理呢? 其实道理很简单,你把上面这图看成矩阵,由于矩阵的运算具有可逆性,所以就能使数据进行恢复,给出一张标准的矩阵相乘图,大家可以将二者关联。

    3. Hadoop3.0 总结

    Hadoop 3.0的alpha版预计今年夏天发布,GA版本11月或12月发布。

    Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR Native Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。


    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    手机版|Archiver|开发者俱乐部 ( ICP/ISP证:辽B-2-4-20110106号 IDC证:辽B-1-2-20070003号 )

    GMT+8, 2024-12-23 10:43 , Processed in 0.144718 second(s), 23 queries .

    X+ Open Developer Network (xodn.com)

    © 2009-2017 沈阳讯网网络科技有限公司

    快速回复 返回顶部 返回列表