Hadoop基础:第二章 关于MapReduce
mapReduce执行策略
- map具备本地化优势策略
map执行时优先选择在存储HDFS数据的服务器上执行,其次在同机架的服务器上执行,最次在其他机架服务器上执行。
hadoop执行第一步是将输入数据分片(分成固定大小),单个分片大小要与HDFS最小数据单元相同,因为如果一个分片大于HDFS单元的话,就无法保证分片数据在同一台服务器上。如果跨服务器就会增加网络传输数据的时间消耗。 - reduce 不具备本地化优势策略
reduce任务执行不具备就近原则,会通过网络将map执行结果传输之reduce处理的服务器中,在进行计算。
Hadoop处理流程
- map对输入数据进行清洗、筛选工作,准备好具备计算条件的数据。
- combiner函数在map执行之后执行(可选)(在map执行的服务器上执行),对map处理结果进行二次编辑。
combiner函数针对单个map结果进行编辑(局部编辑),使用前需考虑局部编辑与全局编辑的结果是否一至。如果不一致还是将编辑放在reduce过程中 - reduce利用map(和combiner)执行结果进行计算,得到最终计算结果。