我在我的 MAC 上安装了 Hadoop 和 YARN。我能够在 HDFS(伪分布模式)上运行 wordcount 示例并输出结果,我知道我的程序正在 HDFS 上运行数据文件,因为我必须将文件复制到 HDFS 才能运行。但是,当我查看 YARN 的 WEB UI 时,没有任何任务已完成的记录。上网查了一下,应用好像还在本地运行。
在 start-yarn.sh 之后,我可以打开资源管理器 web UI http://localhost:8088/
,问题是没有任务出现。此外,我什至无法访问我的 JobTracker Web UI。
我找到了以下链接。和我的有类似的问题,但是这个解决方案对我不起作用
Hadoop is not showing my job in the job tracker even though it is running
我的 XML 设置如下
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>mapred.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:9002</value>
</property>
核心站点.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
有人知道问题出在哪里吗?谢谢
最佳答案
如果您使用的是 yarn,因为没有 jobtracker,它将由 resourcemanager 来处理您的请求。因此,当您将 mapred.framework.service 指定为 yarn 时,框架将运行资源管理器。 从 mapred-site.xml 中删除 jobtracker 的条目 试试下面的 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>
也可以通过 bin/yarn-damemoe.sh start historyserver
启动历史服务器
通过这个你将能够看到你完成的应用程序的历史(旧 mapreduce 中的工作)。
在 Web UI 上,您只会显示正在运行的任务,有关更多详细信息,它会提供指向 application master 的链接,它负责在 yarn 中运行应用程序。完成任务后,您还可以通过单击历史链接查看历史记录。尝试在 resourmanager web UI 上找到这些链接
关于hadoop - YARN 不显示完成的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25964054/