每个Input split在hadoop集群中被复制3次。对于每个复制分裂,hadoop是否分配每个映射?. 如果然后分配哪个映射结果发送到reduce函数。hadoop是否也复制reduce函数
不,即使一个split有三个副本,MapReduce引擎只会分配一个mapper。它使用名为数据本地化的概念来决定使用哪个分割副本。
Hadoop尽力在输入的节点上运行map任务数据驻留在HDFS中。这被称为数据局部性优化,因为它不使用宝贵的集群带宽。然而,有时,所有三个节点都托管HDFS块副本对于一个映射任务的输入拆分正在运行的其他映射任务等作业调度器将在同一机架的节点上查找空闲的映射槽其中一个街区。有时候,这是不可能的,所以使用机架外节点,导致机架间网络传输
请在下面找到Hadoop权威指南的摘录。
Hadoop将MapReduce作业的输入分成固定大小的块叫做输入分割,或者就是分割。Hadoop为创建一个映射任务每个分割,它为每个记录运行用户定义的映射函数