全部的省时间优化,主要是讲Hadoop采用的数据本地优化,避免浪费宝贵的网络带宽,可是有时候对于一个Map任务输入来讲,储存有某个HDFS数据块备份的三个节点可能正在运行其余map任务,此时做业调度,也就是所谓的JobTracker需在三个备份中的某个数据寻求同个机架中的空闲机器来运行该map任务。网络
因此咱们应该清楚了为何最佳分片大小应该与块大小相同:由于这种机制能够确保能够储存在单个节点上的最大输入块的大小。换句话说加剧的字体是咱们的目标。若是分片跨越两个数据块,那么对于任何一个HDFS节点,基本上都不可能同时储存这两个数据块,所以分片中的部分数据须要经过网络传输到map任务节点,与使用本地数据运行整个map任务相比,这种方法显然效率更低。oop
此外,应该注意map任务应该将结果存入本地硬盘,而不是HDFS系统。由于它产生的只是中间结果。字体