首先,hadoop与mapreduce并不是从属关系:
hadoop是一个由apache基金会开发的分布式系统基础架构,
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。
mapreduce基于“分而治之”的思想,将一个比较大的计算任务分解为map和reduce两个过程,整个过程可以概括为:“分散运行,归并结果”。
mr的步骤:
1:源文件:把每行数据输入给多个map程序并行处理,可以将每行数据视为一个k,v对;
2:map:对输入的数据并行处理,输出;
3:combine:对map的输出按照第一列(key2)进行升序排序,将属于同一个key2的所有value2组合在一起作为reduce的输入;
4:reduce:对combine的输出进行处理(例如:求和,取最小值,平均值等),得出最终结果,存放在hdfs上。
hadoop和单机程序计算的对比: