分享

Hadoop跑map-reduce任务时停滞不前的问题总结

pig2 发表于 2014-1-24 15:41:35 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 42272
本帖最后由 pig2 于 2014-1-24 15:45 编辑

1.task tracker存在

今天跑job 的时候,发现map 任务很正常地结束,但跑reduce 任务时到20% 几就停滞不前,而且一直卡住没法正常结束。看userlog ,好 像是FETCH map 任务的结果时超时,无法取到结果。中间还出现了一个诡异的地址web30.bbn.com.cn/202.106.195.30 。也就是 说,reduce 任务到这个诡异的地址上去取结果。上网搜了一下,这个域名/IP 是网通的一台找不到域名或地址后自动定向的上网导航服务器。再看了下 job tracker 的日志,看到在启动的时候它将这个地址加进了节点中。这就说明,它认为这个节点是一个合法的节点,然后分配任务的时候也往这个节点分配任务(当然会失败),取结果的时候也试图到这个节点上取。

反复检查了SSH 和hosts 文件,一切都很正常。conf/slaves 文件看起来也没有问题。就是不知道哪里出的错。后来看到log 中有一个heartbeat 的词,突然想起来,节点是通过心跳来告诉master 自己还存活的。而在这之前,我做了一个测试,加了一个新节点到集群中,后来又把节点给删了,hosts 的文件也被改了,会不会是这个节点还在往master 发送心跳?SSH 到那个新节点上,jps 看一下任务,task tracker 果然还活着!把这个进程kill 掉,问题就OK 了


2.操作失误

显示结果如下:

  1. [gabriel@alienware bin]$ ./hadoop jar ../contrib/streaming/hadoop-streaming-1.1.2.jar -input input -output output -mapper /bin/cat -reducer usr/bin/wc
  2. packageJobJar: [/tmp/hadoop-gabriel/hadoop-unjar7679007167852267598/] [] /tmp/streamjob5343206746589744583.jar tmpDir=null
  3. 13/04/03 15:20:45 INFO util.NativeCodeLoader: Loaded the native-hadoop library
  4. 13/04/03 15:20:45 WARN snappy.LoadSnappy: Snappy native library not loaded
  5. 13/04/03 15:20:45 INFO mapred.FileInputFormat: Total input paths to process : 2
  6. 13/04/03 15:20:45 INFO streaming.StreamJob: getLocalDirs(): [/tmp/hadoop-gabriel/mapred/local]
  7. 13/04/03 15:20:45 INFO streaming.StreamJob: Running job: job_201304030301_0015
  8. 13/04/03 15:20:45 INFO streaming.StreamJob: To kill this job, run:
  9. 13/04/03 15:20:45 INFO streaming.StreamJob: /home/gabriel/software/hadoop-1.1.2/libexec/../bin/hadoop job -Dmapred.job.tracker=localhost:9001 -kill job_201304030301_0015
  10. 13/04/03 15:20:45 INFO streaming.StreamJob: Tracking URL: http://localhost.localdomain:50030/jobdetails.jsp?jobid=job_201304030301_0015
  11. 13/04/03 15:20:46 INFO streaming.StreamJob: map 0% reduce 0%
  12. 13/04/03 15:20:50 INFO streaming.StreamJob: map 33% reduce 0%
  13. 13/04/03 15:20:51 INFO streaming.StreamJob: map 67% reduce 0%
  14. 13/04/03 15:20:52 INFO streaming.StreamJob: map 100% reduce 0%</font></font>
复制代码
解答:
  1. [gabriel@alienware bin]$ ./hadoop jar ../contrib/streaming/hadoop-streaming-1.1.2.jar -input input -output output -mapper /bin/cat -reducer usr/bin/wc
复制代码
"usr/bin/wc" 前面少打了一个"/"?


3.Hadoop,数据较大(600G),map 任务很快完成,不过 reduce 运行缓
可能查询逻辑有误造成的,比如join的用法,仔细检查下语句。

4.reduce 负载不平衡 HADOOP_HEAPSIZE 过小,也可能造成这种情况


没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条