映射器是否将它的中间输出存储在运行它的datanode的RAM上?

use*_*017 5 hadoop mapreduce

我的理解是否正确,作业跟踪器在存储inputsplit的datanode上启动任务(mapper/reducer)并在该数据上运行该任务,mapper将其中间输出存储在其本地存储中?

所以我的问题是:因为mapper正在datanode上运行,所以它将它的中间数据存储在datanode的RAM中?由于datanode磁盘是hdfs的一部分,中间输出不存储在hdfs中.

Kri*_*ris 5

Mapper的输出(中间数据)存储在每个单独的映射器数据节点的本地文件系统(而不是HDFS)上.这通常是一个临时目录,可以由Hadoop管理员在配置中设置.Mapper作业完成或数据传输到Reducer后,这些中间数据将被清除,无法再访问.