我的理解是否正确,作业跟踪器在存储inputsplit的datanode上启动任务(mapper / reducer)并在该数据上运行该任务,mapper将其中间输出存储在其本地存储中?
所以我的问题是:因为mapper在datanode上运行所以它将它的中间数据存储在datanode的RAM中?由于datanode磁盘是hdfs的一部分,而中间输出不存储在hdfs ..
答案 0 :(得分:5)
Mapper的输出(中间数据)存储在每个单独的映射器数据节点的本地文件系统(而不是HDFS)上。这通常是一个临时目录,可以由Hadoop管理员在配置中设置。完成Mapper作业或将数据传输到Reducer后,这些中间数据将被清理,无法再访问。