答案 0 :(得分:0)
Hadoop知道块的位置。如果拆分完全等于一个块,那么Hadoop将尝试在同一节点上运行map任务以应用"数据位置"原则并保存所需的任何网络传输。
如果A,B,C全部可用,则地图任务将在最靠近客户端的节点上运行。如果节点A不可用,则它在B或C上运行,具体取决于哪一个最接近客户端。
如果A,B,C都不可用,那么Hadoop将找出A,B或C中哪个节点最接近客户端,然后选择与A相同的机架上的空闲节点(因为机架内传输更快)。如果整个机架都忙,那么它将别无选择,只能选择不同的机架和节点来处理拆分。拆分将临时复制到节点,处理后将从临时位置删除。
但是,如果输入分割大于块大小,则应用完全相同的原则。唯一的区别是Hadoop框架会在第2区和第2区分配+几行。到节点进行处理。