Hadoop运行mapreduce卡住或者一直停在map 0% reduce 0%的解决方案

首先先要说明我的系统的一个配置

主机名主机IPV4地址配置
hadoop001192.168.120.100RecourceManager、NodeManager、DateNode、NameNode
hadoop002192.168.120.101NodeManager、DateNode、SecondaryNameNode
hadoop003192.168.120.102NodeManager、DateNode

在运行示例的时候,我发现总是运行不出来,要么卡在0%要么就是报错,经过一系列递归查错,我觉得问题可能出在以下几个方面(楼主解决了这些之后都出来了)

首先讲一下如何退出运行状态,我之前一直通过关虚拟机退出,特别麻烦,后来才知道可以通过在终端输入ctrl+C退出。

解决步骤如下(你按顺序解决,可能到某一步就全部出来了)
1.首先排查自己的配置有没有发生错误

2.反思自己是否多次进行初始化,**如果多次进行初始化,会导致集群的id不一致运行不出来。这个可以通过去查看yarn集群(通过50070端口访问)的live node数量,我是3个,因为配置了3个节点。如果发现少于3个,就可以去着手解决这个问题了。解决方案请参考
https://blog.csdn.net/qq_41059374/article/details/80695581
这个也不是最全的,大家可以搜索相关多次初始化hadoop集群怎么办,我只是将我参考的其中一个拎出来了(下面的参考资料也是一样)。

3.如果解决了上面一步,就该反思是不是自己的内存设置小了,**如果内存设置小了就会导致运算特别慢。给人感觉就是没有运行出来,卡住了。主要调节yarn.xml和mapred.xml文件,大多数人只调节前者就出来了。解决请参考
https://blog.csdn.net/aspkhdp/article/details/49996689

4.如果你这样调节了之后,等待一会出现了map 13%,reduce 0%的情况,最后出现类似于

AttemptID:attempt_1390962167768_0001_m_000002_0 Timed out after 600 secs
cleanup failed for container container_1390962167768_0001_01_000011 : 
java.net.SocketTimeoutException: Call From dev-51job-dev4/10.100.2.7 to dev-51jobdev3-6:60250 failed on socket timeout exception: 
java.net.SocketTimeoutException: 60000 millis timeout while waiting for channel to be ready for read. ch : java.nio.channels.SocketChannel[connected 

大概意思就是说 超时了(timeout),那就在mapred.xml文件中加入以下配置能得到解决

<property>
<name>mapred.task.timeout</name>
<value>1800000</value>
</property>

4.如果出现以下代码块

2018-01-09 17:47:22,892 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8031. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2018-01-09 17:47:23,893 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8031. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2018-01-09 17:47:24,895 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8031. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2018-01-09 17:47:25,896 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8031. Already tried 3 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2018-01-09 17:47:26,898 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8031. Already tried 4 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

tried 多次请参考以下网址(一般来说这一步是不需要的,我没做)
https://blog.csdn.net/u011563666/article/details/79026723#commentBox
按照这个博主这样写反而map都出不来了。

5.计算数字设置的过大,而电脑运行速度过慢。
最后一步,我其实经历了以上操作都没有出来结果。后来我把调试的数字变小了(我运行的是系统自带的计算圆周率的,把计算数字从50 20变成了10 10),等待一小会就出来了(如果写5 5 更短)总体来说 如果经过以上步骤还没有出来,那可以思考一下是不是你的数字设置的太大了。

  • 3
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值