我正在单节点集群下测试MR作业。一旦我安装了mahout 9版本,Mapreduce作业就停止在jobtracker中显示进度。(不知道这是否发生在mahout安装之后)
当我在hadoop集群中运行作业时,它不会像以前那样在作业附加器UI中显示状态,控制台中显示的执行日志也不同(类似于mahout日志)
为什么会这样?
提前感谢。
很可能您的作业正在使用LocalJobRunner运行。如果您的作业使用LocalJobRunner
,您会注意到mapreduce作业输出中的mapred.LocalJobRunner
事件。这可能有几个原因:
如果是MapReduce v1:
确保您的mapred-site.xml
具有属性mapred.job.tracker
,并且指向适当的JobTracker主机和端口:
<property>
<name>mapred.job.tracker</name>
<value>[fqdn_of_jobtracker]:[port_of_jobtracker]</value>
</property>
通常,如果hadoop无法读取属性mapreduce.framework.name
或属性已设置为local
,则mapreduce将选择LocalJobRunner。
如果没有成功,请尝试使用hadoop的通用命令行选项显式指定属性,如:
hadoop jar hadoop-examples.jar pi -jt [fqdn_of_jt]:[port_of_jt] 2 1000
在YARN和MapReduce v2的情况下:
在这种情况下,如果您在YARN上运行MapReduce,如果您没有在mapred-site.xml
中指定MapReduce框架名称,则作业将由LocalJobRunner
运行,因此请确保您具有以下属性:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>