1.跟着某马的视频学hadoop 在做mapreduce提交任务到yarn运行时虚拟机上一切都正常,没有报错,但在yarn 的web网页上我发现没有任务信息,回到虚拟机jps一下发现没有jobhistoryserver进程,于是使用mapred --daemon start historyserver开启历史服务器,再jps一下发现已经有了这个进程,于是又执行了一次mapreduce任务,发现网页依然没有提交的任务,回到虚拟机jps发现jobhistoryserver进程发现这个进程又消失了,总结就是执行了mapred --daemon start historyserver后第一次jps有这个进程后面jps就没了 看日志显示报了空指针异常 我百思不得其解,也在网上搜了一些解决方法但都无济于事,最后就剩下自己的一个猜想 版本的问题 我Hadoop是3.3.6 Java是jdk21 于是我将Java换成了jdk11 这个问题解决了
2.多次jps都有这个进程了,在虚拟机提交mapreduce任务 但网页没有任务信息,后面发现这是我mapred-site.xml文件出错了,在mapreduce.framework.name这一项中我的是vim.mapreduce.framework.name去掉vim.即可
3.提交mapreduce任务网页中有任务信息了,但显示失败,虚拟机中也报错root is not a leaf queve
在yarn-site.xml文件中添加
<!-- 选择调度器,默认容量 -->
<property>
<description>The class to use as the resource scheduler.</description>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
按原来文件格式就好,我这排版错误,然后重启Hadoop,提交任务,问题解决