当前位置: 首页 > 科技观察

准备出来了!比Spark快10倍的Hadoop3.0有哪些实用的新特性?

时间:2023-03-13 21:03:55 科技观察

Apachehadoop项目组***消息,hadoop3.x未来将调整解决方案架构,Mapreduce将基于内存+io+磁盘共同处理数据。事实上,最新的变化是hdfs。HDFS通过最近的黑色块进行计算。根据就近计算原则,将局部黑块加入内存,优先计算。通过IO,共享内存计算区最终快速形成计算结果。一、Hadoop3.0简介Hadoop2.0是基于JDK1.7开发的,而JDK1.7在2015年4月停止更新,直接迫使Hadoop社区重新发布了基于JDK1.8的Hadoop新版本,即hadoop3.0。预计今年夏天将发布Hadoop3.0的alpha版本,并在11月或12月发布GA。Hadoop3.0引入了一些重要的功能和优化,包括HDFS可擦写编码、多Namenode支持、MRNativeTask优化、基于YARNcgroup的内存和磁盘IO隔离、YARN容器调整大小等。2.Hadoop3.0的新特性在功能和性能方面,Hadoop3.0对hadoop内核做了多项重大改进,主要包括:2.1HadoopCommon(1)精简Hadoop内核,包括去除过时的API和实现,替换默认的组件实现成功实现(如改变FileOutputCommitter默认实现到v2版本,废除hftp换成webhdfs,去掉Hadoop子实现序列化库org.apache.hadoop.Records(2)类路径隔离,防止不同版本Jar包冲突,比如GoogleGuava,都是当Hadoop、HBase和Spark混合使用时容易发生冲突。(https://issues.apache.org/jira/browse/HADOOP-11656)(3)Shell脚本重构。Hadoop3.0重构了Hadoop管理脚本,修复了大量bug,增加了新特性,支持动态命令等。https://issues.apache.org/jira/browse/HADOOP-99022.2HadoopHDFS(1)HDFS支持数据纠删码,可以让HDFS在不降低可靠性的情况下节省一半的存储空间。(https://issues.apache.org/jira/browse/HDFS-7285)(2)MultipleNameNodesupport,即集群内支持一主多备namenode部署。注意:multi-ResourceManager特性在hadoop2.0中已经被支持。(https://issues.apache.org/jira/browse/HDFS-6440)2.3HadoopMapReduce(1)Tasknative优化。为MapReduce新增C/C++map输出收集器实现(包括Spill、Sort、IFile等),可通过调整job级参数切换到该实现。对于shuffle密集型应用,其性能可提升约30%。(https://issues.apache.org/jira/browse/MAPREDUCE-2841)(2)自动推断MapReduce内存参数。在Hadoop2.0中,为MapReduce作业设置内存参数非常繁琐,涉及两个参数:mapreduce.{map,reduce}.memory.mb和mapreduce.{map,reduce}.java.opts,一旦设置不合理,则It会造成内存资源的严重浪费。比如前者设置为4096MB,而后者为“-Xmx2g”,则剩下的2g实际上不能被java堆使用。(https://issues.apache.org/jira/browse/MAPREDUCE-5785)2.4HadoopYARN(一)基于cgroup的内存隔离和IO磁盘隔离(https://issues.apache.org/jira/browse/YARN-2619)(2)使用curator实现RMleader选举(https://issues.apache.org/jira/browse/YARN-4438)(3)containerresizing(https://issues.apache.org/jira/browse/YARN-1197)(4)Timelineservernextgeneration(https://issues.apache.org/jira/browse/YARN-2928)以下是hadoop-3.0hadoop-3.0HADOOP的***参数移至JDK8+Classpath默认情况下打开隔离HADOOP-11656Shell脚本重写HADOOP-9902将默认端口移出临时范围HDFS-9427HDFS删除hftp以支持webhdfsHDFS-5570支持两个以上的备用NameNodeHDFS-6440支持HD8FS中的纠删码-7YARNMAPREDUCEDeriveheapsizeormapreduce.*.memory.mbautomaticallyMAPREDUCE-5785在HDFS-7285中,实现了纠删码的新功能。由于该功能距离发布阶段还很远,所以与该区块相关的代码可能还没有执行进一步改造,所以我只是做一个所谓的前期分析,帮助大家了解Hadoop社区目前是如何实现这个功能的。之前没有接触过ErasureCoding技术,中间过程确实有些意外。相信这篇文章能给大家带来收获。纠删码技术,简称EC,是一种数据保护技术。最早用于通信行业数据传输中的数据恢复。它是一种编码容错技术。它在原来的数据数据上增加了一个新的校验和,使得各部分的数据相互关联。在数据出现一定范围错误的情况下,可以通过纠删码技术进行恢复。下面是结合图片的简单演示。首先有n个原始数据,然后加入m个修正。检查数据块。如下图所示:Parity部分为校验数据块。我们将一行数据块组成Stripe条带,每行条带由n个数据块和m个校验块组成。原始数据块和奇偶校验可以通过已有的数据块恢复所有的验证数据块,原理如下:如果验证数据块有错误,可以通过对原始数据块进行编码重新生成。如果原始数据块有错误,可以通过解码验证数据块重新生成。生成的m和n的值不是固定的,可以相应调整。可能有人会好奇,这是什么原理?其实原因很简单。你把上图看成一个矩阵。由于矩阵的运算是可逆的,可以还原数据,给出一个标准矩阵。通过将图形相乘,您可以将两者联系起来。3.Hadoop3.0概述Hadoop3.0alpha版预计在今年夏天发布,GA版将在11月或12月发布。Hadoop3.0引入了一些重要的功能和优化,包括HDFS可擦写编码、多Namenode支持、MRNativeTask优化、基于YARNcgroup的内存和磁盘IO隔离、YARN容器大小调整等。