本帖最后由 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.操作失误 显示结果如下:
-
- [gabriel@alienware bin]$ ./hadoop jar ../contrib/streaming/hadoop-streaming-1.1.2.jar -input input -output output -mapper /bin/cat -reducer usr/bin/wc
- packageJobJar: [/tmp/hadoop-gabriel/hadoop-unjar7679007167852267598/] [] /tmp/streamjob5343206746589744583.jar tmpDir=null
- 13/04/03 15:20:45 INFO util.NativeCodeLoader: Loaded the native-hadoop library
- 13/04/03 15:20:45 WARN snappy.LoadSnappy: Snappy native library not loaded
- 13/04/03 15:20:45 INFO mapred.FileInputFormat: Total input paths to process : 2
- 13/04/03 15:20:45 INFO streaming.StreamJob: getLocalDirs(): [/tmp/hadoop-gabriel/mapred/local]
- 13/04/03 15:20:45 INFO streaming.StreamJob: Running job: job_201304030301_0015
- 13/04/03 15:20:45 INFO streaming.StreamJob: To kill this job, run:
- 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
- 13/04/03 15:20:45 INFO streaming.StreamJob: Tracking URL: http://localhost.localdomain:50030/jobdetails.jsp?jobid=job_201304030301_0015
- 13/04/03 15:20:46 INFO streaming.StreamJob: map 0% reduce 0%
- 13/04/03 15:20:50 INFO streaming.StreamJob: map 33% reduce 0%
- 13/04/03 15:20:51 INFO streaming.StreamJob: map 67% reduce 0%
- 13/04/03 15:20:52 INFO streaming.StreamJob: map 100% reduce 0%</font></font>
复制代码
解答:- [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 过小,也可能造成这种情况
|