【问题标题】:What is the difference between classic, local for mapreduce.framework.name in mapred-site.xml?mapred-site.xml 中的 mapreduce.framework.name 的经典本地有什么区别?
【发布时间】:2014-12-28 12:04:16
【问题描述】:

这个参数的官方说明如下:

The runtime framework for executing MapReduce jobs. Can be one of local, classic or yarn.

我知道 'yarn' 的值适用于 MRv2,它会将 mapreduce 作业提交给资源管理器。但是本地和经典之间有什么区别?哪个对应MRv1?

非常感谢!

【问题讨论】:

    标签: hadoop mapreduce hadoop-yarn


    【解决方案1】:

    你说得对,“yarn”代表 MRv2。 “经典”适用于 MRv1,“本地”适用于 MR 作业的本地运行。但为什么需要 MRv1? Yarn 现在已经退出测试版,它比旧的 MRv1 框架更稳定,而您的 MapReduce 作业仍然可以使用旧的“mapred”API

    【讨论】:

    • 什么是本地运行MR作业?我第一次使用 hadoop 是 MRv1,没有意识到有本地运行版本。
    • 这是你在本地和同一个JVM中同时运行mapper和reducer的模式(限制是你只能使用一个reducer,但无论哪种方式,这个东西都是为调试而设计的,所以你应该使用数据的子集)。请参阅此处进行设置:understandbigdata.wordpress.com/tag/debug 它非常适合调试目的,也请参阅此处的示例:slideshare.net/martyhall/…
    【解决方案2】:

    我同意上面的回答,我想再补充一点。

    Classic 是 MR1,每当我们使用框架名称作为 classic 提交 MR 作业时,Job 都会提交给 MR1 中的 Jobtracker 守护进程,该守护进程将协调 mapreduce 的执行,每个任务将在不同的 JVM 中执行

    而本地 JobRunner 的主要目的是使用 少量输入调试/测试 mapreduce 程序。它不需要像 JobTracker、TaskTracker 这样的守护进程。当您从 eclipse 执行任何 MR 应用程序时,此执行模式很有用,默认情况下将在本地 jobrunner 中执行(使用与 eclipse 相同的 JVM)。所有 mapper/reduce 都将执行相同的 JVM。由于所有执行(Driver+Map+Reduce)都使用同一个 JVM,因此不能使用它来处理大数据,执行最终会出现 OutOfMemory 异常。

    【讨论】:

      猜你喜欢
      • 2014-01-26
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 2010-10-17
      相关资源
      最近更新 更多