我正在阅读一本书(专业Hadoop解决方案),通过指定作业配置mapreduce.job.jvm.numtasks
可以启用JVM重用。我的问题是我们需要在Driver类中设置它吗?
我尝试在mapreduce.Job
对象中查找此配置,但我找不到它。可以在我正在使用的Hadoop版本的其他地方替换此API吗?或者我不是在寻找合适的地方?我正在使用Hadoop 1.0.3版。
我还试图寻找较旧的属性mapred.job.reuse.jvm.num.tasks
,而我无法做到。
谢谢!
答案 0 :(得分:2)
您的来源是指针对Hadoop 2.x(YARN)的较新的Hadoop配置API。在转向YARN的过程中,修改了许多配置名称。对于相关的Hadoop版本,here上的更改记录为the offical site(在本例中,亚马逊的Elastic MapReduce采用的是2.4.0版本)。
明确提到旧配置名称mapred.job.reuse.jvm.num.tasks
已被新名称mapreduce.job.jvm.numtasks
取代。
此外,MapReduce default configuration的文档对mapreduce.job.jvm.numtasks
说明了这一点:
每个jvm运行多少个任务。如果设置为-1,则没有限制。
例如,可以在GrepCode上找到Hadoop 1.2.1(兼容配置API到1.0.3)的默认配置。
关于您的问题,在何处设置此属性。它可以设置
${HADOOP_CONF_DIR}/mapred-site.xml
,job.getConfiguration().set("mapred.job.reuse.jvm.num.tasks","-1");
答案 1 :(得分:0)
您可以在mapred-site.xml中定义它:
<property>
<name>mapred.job.reuse.jvm.num.tasks</name>
<value>-1</value>
</property>
当你有一个较短的任务运行一段时间时使用它。