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运行时动态指定参数,并且参数值会生效。


标签:MapReduce
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号