PipeMapRed在Hadoop流中做了什么?

时间:2013-04-03 09:38:18

标签: hadoop-streaming

我经营过一次hadoop工作,每次都需要花费太多时间才能完成,比如* 15分钟*

我检查了syslog,发现org.apache.hadoop.streaming.PipeMapRed正在为 10分钟做一些事情,并且PipeMapRed完成后MapTask接管并在不到<1分钟的时间内完成,到底是什么?

PipeMapRed实际上做了什么?为什么这么费时?

以下是PipeMapRed打印的一些日志:

17:00:57,307 INFO org.apache.hadoop.streaming.PipeMapRed: Records R/W=1633/1
17:00:59,782 INFO org.apache.hadoop.streaming.PipeMapRed: R/W/S=10000/8763/0 in:5000=10000/2 [rec/s] out:4381=8763/2 [rec/s]
17:01:07,310 INFO org.apache.hadoop.streaming.PipeMapRed: Records R/W=60670/59051
17:01:12,610 INFO org.apache.hadoop.streaming.PipeMapRed: R/W/S=100000/97904/0 in:6666=100000/15 [rec/s] out:6526=97904/15 [rec/s]
17:01:17,332 INFO org.apache.hadoop.streaming.PipeMapRed: Records R/W=126104/124334
17:01:27,378 INFO org.apache.hadoop.streaming.PipeMapRed: Records R/W=181681/179714
17:01:30,514 INFO org.apache.hadoop.streaming.PipeMapRed: R/W/S=200000/198233/0 in:6060=200000/33 [rec/s] out:6007=198233/33 [rec/s]
17:01:37,404 INFO org.apache.hadoop.streaming.PipeMapRed: Records R/W=244642/242654

1 个答案:

答案 0 :(得分:3)

您提供的日志是来自mapreduce流的日志,您可以查看正在读取和写入的记录数,例如:

R/W/S=10000/8763/0 in:5000=10000/2 [rec/s] out:4381=8763/2 [rec/s]

第一部分代表有多少记录:

READ/WRITE/SKIPPED=10000/8763/0

第二部分是关于你处理记录的速度有多快,所以你读取5000条记录/秒并写入4381条记录/秒

每个(流媒体)mapreduce工作15分钟是完全可以的,如果不是很少:)