Hadoop3.0有哪些实用新特性

Spark10倍的Hadoop3.0有哪些实用新特性?

hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+磁盘,共同处理数据。

Hadoop 3.0简介

Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.720154月已停止更新,这直接迫使Hadoop社区基于JDK 1.8重新发布一个新的Hadoop版本,而这正是hadoop 3.0

Hadoop 3.0alpha2016夏天发布,GA版本20161112月发布。

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

Hadoop3.0新特性介绍,比Spark10倍的Hadoop3.0新特性

Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+磁盘,共同处理数据。
其实最大改变的是hdfs,hdfs 通过最近black块计算,根据最近计算原则,本地black块,加入到内存,先计算,通过IO,共享内存计算区域,最后快速形成计算结果。

3. Hadoop3.0 总结

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

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

Hadoop 3.0新特性

Hadoop 3.0在功能和性能方面,对hadoop内核进行了多项重大改进,主要包括:

 

HDFS支持纠编码erasure encoding,简称EC技术。EC技术可以防止数据丢失,又可以解决HDFS存储空间翻倍的问题。劣势是: 

一旦数据需要恢复,会带来网络消耗,因为不仅要读取原数据块,还要读取校验块。

存储文件,或者恢复文件需要编码解码,会有CPU消耗。 

建议EC存储用于冷数据,由于冷数据确实数量大,可以减少副本从而降低存储空间,另外冷数据稳定,一旦需要恢复数据,对业务不会有太大影响。

 

Hadoop Common

1、精简了内核,剔除了过期的API和实现,废弃hftp转由webhdfs替代。

将默认组件实现替换成最高效的实现(比如将FileOutputCommitter缺省实现换为v2 版本,废除hftp转由webhdfs替代,移除Hadoop子实现序列化库org.apache.hadoop.Records

2、Classpath isolation防止不同版本jar包冲突,例如google guava在混合使用hadoophbasespark时出现冲突。mapreduce有参数控制忽略hadoop环境中的jar,而使用用户提交的第三方jar,但提交spark任务却不能解决此问题,需要在自己的jar包中重写需要的第三方类或者整个spark环境升级。classpath isolation用户可以很方便的选择自己需要的第三方依赖包。参见

https://issues.apache.org/jira/browse/HADOOP-11656

3、hadoop shell脚本重构,修复了大量bug,增加了新特性,支持动态命令。

1)增加了参数冲突检测,避免重复定义和冗余参数

2CLASSPATH, JAVA_LIBRARY_PATH, and LD_LIBRARY_PATH等参数的去重,缩短环境变量

3shell脚本重构,将更多的代码加入function中,提供重载,删除重复代码,便于测试

4)脚本清理和简化

5)尽可能与当前系统保持兼容

6)提供一份Hadoop环境变量列表

参见https://issues.apache.org/jira/browse/HADOOP-9902

4Hadoop namenode支持一个active,多个standby的部署方式。在hadoop-2.xresourcemanager已经支持这个特性。

5、Mapreduce task-level native优化,mapreduce增加了map output collectornative实现,对于shuffle密集型任务,可以提高30%的执行效率。参见

https://issues.apache.org/jira/browse/MAPREDUCE-2841

6、内存参数自动推断。在Hadoop 2.0中,为MapReduce作业设置内存参数非常繁琐,涉及到两个参数:mapreduce.{map,reduce}.memory.mbmapreduce.{map,reduce}.java.opts,一旦设置不合理,则会使得内存资源浪费严重,比如将前者设置为4096MB,但后者却是“-Xmx2g”,则剩余2g实际上无法让java heap使用到。参见

https://issues.apache.org/jira/browse/MAPREDUCE-5785

7Hadoop Yarn,cgroup增加了内存和io disk的隔离,timeline service v2,YARN container resizing等等。

Hadoop HDFS

(1) HDFS支持数据的擦除编码,这使得HDFS在不降低可靠性的前提下,节省一半存储空间。

https://issues.apache.org/jira/browse/HDFS-7285

(2)多NameNode支持,即支持一个集群中,一个active、多个standby namenode部署方式。注:多ResourceManager特性在hadoop 2.0中已经支持。

( https://issues.apache.org/jira/browse/HDFS-6440)

Hadoop MapReduce

(1) Tasknative 优化。为MapReduce增加了C/C++的map output collector实现(包括Spill,Sort和IFile等),通过作业级别参数调整就可切换到该实现上。对于shuffle密集型应用,其性能可提高约30%。

https://issues.apache.org/jira/browse/MAPREDUCE-2841

(2) MapReduce 内存参数自动推断。在Hadoop 2.0中,为MapReduce作业设置内存参数非常繁琐,涉及到两个参数:

mapreduce.{map,reduce}.memory.mb和 mapreduce.{map,reduce}.java.opts,一旦设置不合理,则会使得内存资源浪费严重,比如将前者设置为4096MB,但后者却是“-Xmx2g”,则剩余2g实际上无法让java heap使用到。

https://issues.apache.org/jira/browse/MAPREDUCE-5785
Hadoop YARN

1) 基于cgroup的内存隔离和IO Disk隔离

https://issues.apache.org/jira/browse/YARN-2619

(3) curator实现RM leader选举

https://issues.apache.org/jira/browse/YARN-4438

(4) containerresizing 

https://issues.apache.org/jira/browse/YARN-1197

(4)Timelineserver next generation

https://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

https://blog.csdn.net/paicmis/article/details/78907805

https://www.cnblogs.com/zdz8207/p/hadoop-3-new-spark.html

猜你喜欢

转载自blog.csdn.net/wypersist/article/details/80274499