在 MapReduce 框架中,作业执行受两种类型的进程控制:

  • 一个称为 JobTracker 的主要进程,它协调在集群上运行的所有作业,分配要在 TaskTracker 上运行的 map 和 reduce 任务。
  • 许多称为 TaskTracker 的下级进程,它们运行分配的任务并定期向 JobTracker 报告进度。
Apache Hadoop 的经典版本 (MRv1)

大型的 Hadoop 集群显现出了由单个 JobTracker 导致的可伸缩性瓶颈。在集群中有 5,000 个节点和 40,000 个任务同时运行时,这样一种设计实际上就会受到限制。由于此限制,必须创建和维护更小的、功能更差的集群。

此 外,较小和较大的 Hadoop 集群都从未最高效地使用他们的计算资源。在 Hadoop MapReduce 中,每个从属节点上的计算资源由集群管理员分解为固定数量的 map 和 reduce slot,这些 slot 不可替代。设定 map slot 和 reduce slot 的数量后,节点在任何时刻都不能运行比 map slot 更多的 map 任务,即使没有 reduce 任务在运行。这影响了集群的利用率,因为在所有 map slot 都被使用(而且我们还需要更多)时,我们无法使用任何 reduce slot,即使它们可用,反之亦然。

最后但同样重要的是,Hadoop 设计为仅运行 MapReduce 作业。随着替代性的编程模型(比如 Apache Giraph 所提供的图形处理)的到来,除 MapReduce 外,越来越需要为可通过高效的、公平的方式在同一个集群上运行并共享资源的其他编程模型提供支持。

2010 年,Yahoo! 的工程师开始研究一种全新的 Hadoop 架构,用这种架构来解决上述所有限制并增加多种附加功能。

 

最新文章

  1. PHP preg_replace使用例子
  2. MFC 修改各种控件的背景颜色、字颜色和字体
  3. CacheHelper
  4. Ubuntu14.04 安装Gitlab
  5. Css Ajax Entlib aspnetpager
  6. charset的获取方法
  7. 浅析Dagger2的使用
  8. webkit webApp 开发技术要点总结
  9. 使用sqoop 在关系型数据库和Hadoop之间实现数据的抽取
  10. java基础-jdbc——三种方式加载驱动建立连接
  11. 何为 ISAPI
  12. How to setup SLF4J and LOGBack in a web app - fast--转载
  13. 【HDOJ】2780 Su-Su-Sudoku
  14. jmeter 接口重放(投票活动)
  15. 正负样本比率失衡SMOTE
  16. 迁移学习︱艺术风格转化:Artistic style-transfer+ubuntu14.0+caffe(only CPU)
  17. C#编写一个大字母游戏,详细代码,不懂问博主。。。。
  18. 360搜索引擎so自动收录php改写方案——适合phpcms等cms
  19. Linux查看当前目录下文件名中包含指定字符的文件
  20. getQueryString.js

热门文章

  1. html+js+css+接口交互+echarts实例一枚
  2. RTX——第12章 系统时钟节拍和时间管理
  3. logback日志模板与详解
  4. win7语言设置为英语
  5. C语言高速入门系列(八)
  6. 用lua实现ByteArray和ByteArrayVarint
  7. [转]getHibernateTemplate出现的所有find方法的总结
  8. DataGridView使用技巧十一:DataGridView用户输入时,单元格输入值的设定
  9. DataGridView使用技巧七:列顺序的调整、操作行头列头的标题
  10. mybatis 一对多关系