mapreduce.Job: Running job: job_1553100392548_0001

这几天一直在尝试一个mapreduce的例子,但是一直都是卡在mapreduce.Job: Running job: job_1553100392548_0001,查看日志也不报错,查看每个配置文件没有问题,很纳闷。今晚决定把整个流程梳理一下,试图找出问题原因,果然功夫不负有心人。

首先来说一下现象

运行的时候一直卡在这个界面

也没有报错。很奇怪。

然后访问Applications查看情况(http://192.168.23.130:8088

看到这个页面,有点奇怪,这个任务是未定义的,而且进度条也不动。然后再继续点进去看

发现yarn并没有分配处理节点。那么这是为什么呢?

哦,突然想起来自己是只起了一个datanode和一个nodemanager【因为自己电脑内存不够,搭建集群的时候弄了4个虚拟机,后来每次只起两个机器来用,一个作为NameNode/ResourceManager,另外一台作为DataNode/NodeManager;由此节省一些内存。】而恰好问题就出现在了这里。

因为你只有一个datanode节点,而副本的数量为2,这时候就很难办了。所以当你向hdfs上传文件的时候,只有一个地方存放,而后来在统计的时候,yarn分配资源又无法找到这些文件在哪里,不知道应该用哪个NodeManager来处理。这样就没有办法处理,所以导致程序一直卡住,但是也不会报错。

解决办法:

把当前NameNode节点也作为一个DataNode节点和NodeManager即可。也就是修改slaves配置文件即可

原来只有一台mini2

现在把mini1也加入进去作为一个从节点

然后重启hdfs集群和yarn集群,再次执行

发现果然成功了

再看看管理页面上,也不一样了

至此,已经把这个问题解决了。纳闷了好几天,终于可以松口气了。

posted @ 2019-03-21 01:36  yaochunguang  阅读(1745)  评论(0编辑  收藏  举报