Hadoop JobHistory 仅显示失败的作业
Posted
技术标签:
【中文标题】Hadoop JobHistory 仅显示失败的作业【英文标题】:Hadoop JobHistory shows only the failed jobs 【发布时间】:2017-09-19 08:28:47 【问题描述】:我正在尝试监控示例 MapReduce 应用程序的作业,称为 The Definitive Hadoop book 中的 Find Maximum Temperature。在 Hadoop-2.6 的默认安装和配置中,该应用程序运行良好,即它计算年度最高温度。但是在我像这样扩展了mapred-site.xml和yarn-site.xml的配置之后:(取自How do I view my Hadoop job history and logs using CDH4 and Yarn?和YARN job history not coming)
mapred-site.xml:
<property>
<name> mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost:19888</value>
</property>
yarn-site.xml:
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/app-logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
当我运行相同的 MaxTemperature 应用程序时,该应用程序运行良好并输出名为 part-r-00000 的文件,但在 localhost:19888 的 JobHistory 页面上看不到它。 (同时 localhost:8042、localhpst:8088 和 localhost:50070 的其他页面工作正常)
有没有一种方法可以让我看到所有作业,因为它们在任何 Hadoop 页面上运行?
有时当我运行相同的应用程序时,它会出现以下错误:
17/09/19 11:07:49 信息 mapreduce.Job:任务 ID: 尝试_1505767853223_0003_m_000005_1,状态:容器失败 container_1505767853223_0003_01_000013 的启动失败: org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: auxService:mapreduce_shuffle 不存在于 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:422) 在 org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.instantiateException(SerializedExceptionPBImpl.java:168) 在 org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.deSerialize(SerializedExceptionPBImpl.java:106) 在 org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$Container.launch(ContainerLauncherImpl.java:155) 在 org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$EventProcessor.run(ContainerLauncherImpl.java:369) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)
如果它给出了这个错误,它会显示在 JobHistory 页面上。我不知道为什么它有时会失败,但它发生在重新启动 Hadoop 之后:start-dfs.sh 和 start-yarn.sh 和 / usr/local/hadoop-2.6.0/sbin/mr-jobhistory-daemon.sh 启动historyserver 这是 3 个作业失败后的 SS:
【问题讨论】:
【参考方案1】:谷歌搜索 org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:mapreduce_shuffle does not exist 返回了这个 SO 帖子 org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:mapreduce_shuffle does not exist
将这些行添加到 yarn-site.xml 的配置中:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
解决了这个问题。现在所有作业,无论是失败还是成功,都会出现在 JobHistory 页面上。这是一个 SS:
【讨论】:
以上是关于Hadoop JobHistory 仅显示失败的作业的主要内容,如果未能解决你的问题,请参考以下文章