[MapReduce] Hadoop1.x和Hadoop2.x的MapReduce架构区别

前言

hadoop2.x对于计算框架进行改变,这里作一个对比,方便深刻的了解mapreduce的运行机制,从而为后面的计算优化作好铺垫。java

架构图

hadoop 1.x

hadoop 2.x

架构总结

2e2b4fd2c9d9463a.png

优点

Yarn 框架相对于老的 MapReduce 框架什么优点呢?咱们能够看到:编程

  1. 这个设计大大减少了 JobTracker(也就是如今的 ResourceManager)的资源消耗,而且让监测每个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。
  2. 在新的 Yarn 中,ApplicationMaster 是一个可变动的部分,用户能够对不一样的编程模型写本身的 AppMst,让更多类型的编程模型可以跑在 Hadoop 集群中,能够参考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。
  3. 对于资源的表示之内存为单位 ( 在目前版本的 Yarn 中,没有考虑 cpu 的占用 ),比以前以剩余 slot 数目更合理。
  4. 老的框架中,JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行情况,如今,这个部分就扔给 ApplicationMaster 作了,而 ResourceManager 中有一个模块叫作 ApplicationsMasters( 注意不是 ApplicationMaster),它是监测 ApplicationMaster 的运行情况,若是出问题,会将其在其余机器上重启。
  5. Container 是 Yarn 为了未来做资源隔离而提出的一个框架。这一点应该借鉴了 Mesos 的工做,目前是一个框架,仅仅提供 java 虚拟机内存的隔离 ,hadoop 团队的设计思路应该后续能支持更多的资源调度和控制 , 既然资源表示成内存量,那就没有了以前的 map slot/reduce slot 分开形成集群资源闲置的尴尬状况。

这里slot是计算资源的一个逻辑单位,原来slot基本上按照cpu来分配的,后面的版本是按照内存来处理的。安全

相关文章
相关标签/搜索