0

我运行一项 hadoop 作业不止一次,每次都需要很长时间才能完成,比如 * 15 分钟 * 总共。

我检查了syslog,发现,org.apache.hadoop.streaming.PipeMapRed做了大约10 分钟的事情,完成后PipeMapRedMapTask接管并在不到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
4

1 回答 1

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 分钟完全可以,如果不是很少的话:)

于 2013-11-20T15:50:11.547 回答