从计算框架MapReduce看Hadoop1.0和2.0的区别

时间:2021-10-21 17:00:42

一、1.0版本

主要由两部分组成:编程模型运行时环境

编程模型为用户提供易用的编程接口,用户只需编写串行程序实现函数来实现一个分布式程序,其他如节点间的通信、节点失效,数据切分等,则由运行时环境完成。

基本编程模型将问题抽象成MapReduce两个阶段,Map阶段将输入数据解析成key/value,迭代调用map()函数后,再以key/value的形式输出到本地目录;Reduce阶段则将key相同的value进行归约处理,并将最终结果写入到HDFS

运行时环境由JobTrackerTaskTracker两类服务组成,JobTracker负责资源管理和所有作业的控制,TaskTracker负责接收来自JobTracker的命令并执行。

二、2.0版本

2.0版本在编程模型上是一样的,但是在运行时环境上引入全新的资源管理框架:YARN,将JobTracker中的资源管理作业控制功能分开,分别由两个不同进程ResourceManagerApplicationMaster实现,ResourceManager负责所有应用程序的资源分配,Application负责管理一个应用程序。

三、其他区别

在HDFS方面,2.0版本引入HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时彻底解决NameNode单点故障问题。

四、总结

可以看出,在计算框架MapReduce方面,1.0和2.0的主要差异还是在资源管理方面,YARN的引入让MapReduce在扩展性和多框架支持方面更加完善。而存储系统引入HDFS联盟来解决1.0版本的扩展问题。