0588-6.1.0-命令行动态指定MapReduce运行参数无效问题分析
zhwl
阅读:82
2023-04-27 14:04:09
评论:0
问题描述:
在使用Hadoop的MapReduce框架时,通过命令行动态指定运行参数,发现指定的参数无效。
问题分析:
在Hadoop中,可以通过命令行动态指定MapReduce运行参数,例如:
hadoop jar myjob.jar -Dmapreduce.job.reduces=10 input output
上述命令中,指定了Reduce任务数为10。但是在实际运行中,发现Reduce任务数并没有按照指定的值运行,而是按照默认值运行。
这是因为,在Hadoop中,有一些参数是只能在Job提交前设置的,例如mapreduce.job.reduces参数。如果在Job运行时动态指定这些参数,是无效的。
解决方案:
如果需要动态指定这些参数,可以使用Configuration对象来设置。例如:
Configuration conf = new Configuration();
conf.set("mapreduce.job.reduces", "10");
Job job = Job.getInstance(conf, "myjob");
这样就可以在Job运行时动态指定参数,并且参数值会生效。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



