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


    一、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版本的扩展问题。

  • 相关阅读:
    pyhanlp 实体命名识别
    NABCD需求分析
    源代码
    遇到的问题和解决方法
    运行及总结
    测试与调试
    读《一个程序猿的生命周期》和《人,绩效和职业道德》有感
    面向对象程序设计
    设计类图
    SRS文档
  • 原文地址:https://www.cnblogs.com/harrymore/p/8872374.html
Copyright © 2020-2023  润新知