更新时间:2023-10-05 来源:黑马程序员 浏览量:
Hadoop1.x架构
·MapReduce既负责Hadoop资源管理,又负责Hadoop的数据处理,负荷较大。
·HDFS主要负责Hadoop的分布式文件存储。
Hadoop2.x架构
·MapReduce只负责Hadoop的数据处理,负载相对较小。
·YARN负责Hadoop的资源管理和任务调度。
·HDFS负责Hadoop中的分布式文件存储。
·YARN支持为其他大数据开源项目提供资源管理。
·JDK升级:Hadoop 2.x版本支持的最低JDK版本为7。Hadoop 3.x版本支持的最低JDK版本为8。
·重构Shell脚本:Hadoop3.x中的Shell脚本被重写,修补了许多长期存在的Bug,提高了Hadoop使用时的稳定性。
·精简内核:Hadoop 3.x剔除了过期的API,将默认组件的实现替换成更高效的实现。
·类路径隔离:Hadoop 3.x提供了类路径隔离机制,防止不同版本的jar包发生冲突。
·任务本地优化:Hadoop 3.x中,为MapReduce增加了NativelMapOutputCollector组件来处理Map Task输出的键值对,包括排序、溢写和IFile序列化,对于Shuffle比较密集型的任务,可以使MapTask的执行速度性能提高2~3倍。
·内存参数自动推断:在Hadoop 2.x中,运行MapReduce程序时设置内存参数的过程非常繁琐。而Hadoop 3.x中运行MapReduce程序时,可自动进行内存的调整。
·YARN Timeline Service V2:YARN Timeline Service V2主要对Hadoop 2.x的YARN进行了两处优化,第一使用了更具有伸缩性的分布式体系架构,以及可扩展的后端存储,从而将数据的写入和读取进行了分离;第二采用了一组收集器负责将数据写入到后端进行存储。
·增加YARN资源类型:Hadoop 3.x中,YARN资源模型已被通用化,支持用户定义CPU和内存以外的可计数资源类型。
·支持多个NameNode:Hadoop 2.x只允许HDFS中存在一个Active(激活)状态的NameNode和一个Standby(备用)状态的NameNode。Hadoop 3.x版本允许HDFS中存在一个Active状态的NameNode和多个Standby状态的NameNode,有效提高了HDFS的可靠性。
·引入Erasure Coding(纠删码):Hadoop 3.x引入了Erasure Coding,在确保HDFS存储数据可靠的前提下,可以节省50%的存储空间。