MapReduce工作流程原理:
Map的输出 是key,value的 list
Reduce的输入是key。value的list
MapReduce核心思想
分而治之,先分后和(只有一个模型)
Map负责数据拆分 map: [k1,v1] → [(k2,v2)]
Reduce负责数据合并 reduce: [k2, {v2,…}] → [k3, v3]
Mapreduce的输入是一个目录,那么会将目录内的所有文件进行读取计算,
若是一个文件,那么只计算该文件。
Mapreduce的输出路径绝对不能已存在
Mapreduce Maptask不能人为设置
Reducetask可以人为设置,task越多速度越快
job.setNumReduceTasks(5);
将代码打包(jar)上传到集群运行需要在driver中添加以下代码
job.setJarByClass(WordCountDriver.class);
MapReduce执行流程
第一步:InputFormat