首先先要说明我的系统的一个配置
主机名主机IPV4地址配置hadoop001192.168.120.100RecourceManager、NodeManager、DateNode、NameNodehadoop002192.168.120.101NodeManager、DateNode、SecondaryNameNodehadoop003192.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 更短)总体来说 如果经过以上步骤还没有出来,那可以思考一下是不是你的数字设置的太大了。