我正在尝试在The Definitive Hadoop一书中监视名为Find Maximum Temperature的示例MapReduce应用程序的作业。在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>
纱-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 INFO mapreduce.Job:任务ID: attempt_1505767853223_0003_m_000005_1,状态:FAILED容器 container_1505767853223_0003_01_000013的启动失败: org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException:The auxService:mapreduce_shuffle不存在于 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at 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 start historyserver 这是3个工作失败后的SS:
答案 0 :(得分:0)
谷歌搜索 org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException:auxService:mapreduce_shuffle不存在返回此SO帖子 org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:mapreduce_shuffle does not exist
将这些行添加到yarn-site.xml中的配置:
ZoneId.getAvailableZoneIds()
解决了这个问题。现在所有工作,无论是失败还是成功,都会出现在JobHistory页面上。这是SS: