欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-23 08:08:58
...

在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%的解决方案另外,如果slave2节点没有开启(即处于关机状态),运行wordcount同样也会卡住,那么只需要将该节点开启,并执行

[aaa@qq.com sbin]# ./hadoop-daemon.sh start datanode
[aaa@qq.com sbin]# ./yarn-daemon.sh start nodemanager

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

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