Hadoop 节点间的数据移动是否发生在减速器阶段?地图还原

Hadoop 节点间的数据移动是否发生在减速器阶段?地图还原,hadoop,mapreduce,Hadoop,Mapreduce,这是一个概念性问题。映射器函数完成后,会在本地节点上发出中间键值对。如果假设Jobtracker选择从不同的节点运行reducer,那么数据是否会跨节点移动 如果是这样,请让我知道,只有在所有映射程序阶段完成后,reduce阶段才会开始。或者,是否会有任何后台进程在单个映射程序完成后立即运行,从而将数据移动/复制到Reducer节点 如果这个问题愚蠢,请忽略:( 如果假设Jobtracker选择从不同的节点运行reducer,那么数据是否会跨节点移动 是,如果Reduce任务在不同的节点上运行,

这是一个概念性问题。映射器函数完成后,会在本地节点上发出中间键值对。如果假设Jobtracker选择从不同的节点运行reducer,那么数据是否会跨节点移动

如果是这样,请让我知道,只有在所有映射程序阶段完成后,reduce阶段才会开始。或者,是否会有任何后台进程在单个映射程序完成后立即运行,从而将数据移动/复制到Reducer节点

如果这个问题愚蠢,请忽略:(

如果假设Jobtracker选择从不同的节点运行reducer,那么数据是否会跨节点移动

是,如果
Reduce
任务在不同的节点上运行,则数据移动会跨节点进行

请让我知道,只有在所有映射程序阶段完成后,reduce阶段才会开始

Reduce
任务在所有
Mapper
完成之前,它本身不会被初始化。但是映射任务可能在不同的时间完成,因此
Reduce
任务在每个映射完成后立即开始复制
Mapper
的数据。这被称为Reduce任务的
copy
阶段。一旦所有映射器完成完成了处理,并且在reducer端聚合了所有数据之后,reduce方法将被初始化

是否有任何后台进程在单个映射程序完成后立即运行,从而将数据移动/复制到Reducer节点

Mapper的中间数据由TaskTracker托管的内部jetty web服务器提供,reduce任务具有一组线程,这些线程将从mapred.reduce.parallel.copies指定的地图输出中并行复制数据