MapReduce的运行流程
input:读取数据
map:将整个任务分割成多个task,每个task处理一部分数据
shuffle:对数据进行分区、排序、分组
reduce:将所有分割的任务的处理结果进行合并
output:将整个程序的结果进行输出
例如:文本中含有数据
hadoop hive hbase hadoop hive spark
spark impala hadoop
input:
hadoop hive hbase hadoop hive spark
spark impala hadoop
map(in):MapReduce的默认输入格式
<偏移量(100),hadoop hive hbase hadoop hive spark >
<偏移量(120),spark impala hadoop >
map(out):
hadoop 1
hive 1
hbase 1
hadoop 1
hive 1
spark 1
spark 1
impala 1
hadoop 1
shuffle(out):
hadoop list<1,1,1>
hbase list<1>
hive list<1,1>
spark list<1,1>
impala list<1>
reduce(out):
hadoop 3
hbase 1
hive 2
impala 1
spark 2
output:
hadoop 3
hbase 1
hive 2
impala 1
spark 2