hadoop3 任务卡在map 0% reduce 0%的解决方案

在VMWare上面配置好了hadoop3之后,当然是先试跑一下案例。然而在master上面运行wordcount的时候却出现了卡在map 0% reduce 0%的情况,搜索了这个问题的相关解决方案,基本是修改yarn-site.xml的配置,如
1.增大cpu数,yarn.nodemanager.resource.cpu-vcores
2.增大每个节点可用内存,yarn.scheduler.maximum-allocation-mb
3.调整虚拟内存值,yarn.nodemanager.vmem-pmem-ratio
然而都尝试了之后还是一样会卡在map 0% reduce 0%上面(防火墙均已关闭),通过网页查看8088端口上面可以看到application一直在running上面。后来在一篇blogHadoop运行任务时一直卡在: INFO mapreduce.Job: Running job上的评论看到,将mapred-site.xml里面的yarn模式去掉之后就可以跑wordcount了。尝试该方法后wordcount也的确跑通了,但是在8088上完全看不到job的运行情况,hadoop -job list也报空指针错误。原因是在不用yarn模式下,hadoop将会使用local模式执行任务,不会用到resourcemanager,自然也不会在8088端口上可见。
回顾了一下之前配置的节点结构:

namenode:master
datanode:slave1
datanode:slave2

由于之前一直是在master节点上开启resourcemanager,slave1节点上开启nodemanager,slave2上没有开启nodemanager,然后今天在slave2上开启了nodemanager之后,再到master节点上运行wordcount,结果就成功了,原来是之前slave2上没有开启nodemanager,导致resourcemanager无法分配资源到slave2上,因此就一直卡在map 0% reduce 0%上。现在开启之后,任务成功运行,而8088端口上面也能看到运行结果了。hadoop3 任务卡在map 0% reduce 0%的解决方案_第1张图片另外,如果slave2节点没有开启(即处于关机状态),运行wordcount同样也会卡住,那么只需要将该节点开启,并执行

[root@slave2 sbin]# ./hadoop-daemon.sh start datanode
[root@slave2 sbin]# ./yarn-daemon.sh start nodemanager

即可将节点加入resourcemanager,无需重启整个集群。

总结:遇到问题可以先尝试在网上查找问题的相关解决方法,如果这些方法不能成功,则需要从具体情况出发,多尝试一些方法,直到解决问题为止。

你可能感兴趣的:(Hadoop,hadoop,机器学习)