MapReduce计算任务的步骤

MapReduce 计算任务的步骤
1 步: InputFormat
InputFormat hdfs 上读取数据
将数据传给 Split
2 步: Split
// 设置读取数据的路径
TextInputFormat.addInputPath(job,new Path("C:\\bbb.txt"));
//3 、设置 Map
job.setMapperClass(WordCountMap.class);
// 设置 map 输出的类型
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(LongWritable.class);
//4 、设置 reduce 代码
job.setReducerClass(WordCountReduce.class);
// 设置 reduce 输出的类型
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(LongWritable.class);
//5 、设置读输出数据的 class
job.setOutputFormatClass(TextOutputFormat.class);
// 设置输出数据的路径
TextOutputFormat.setOutputPath(job,new Path("C:\\ccc.txt"));
//6 、等待代码执行(返回状态码)
return job.waitForCompletion(true)?0:1; Split 将数据进行逻辑切分,
将数据传给 RR
3 步: RR
RR: 将传入的数据转换成一行一行的数据,输出行首字母偏移量和偏移量对应的数据
将数据传给 MAP
4 步: MAP
MAP: 根据业务需求实现自定义代码
将数据传给 Shufflfflffle partition
5 步: partition
partition: 按照一定的分区规则,将 key value list 进行分区。
将数据传给 Shufflfflffle Sort
6 步: Sort
Sort: 对分区内的数据进行排序
将数据传给 Shufflfflffle combiner
7 步: combiner
combiner: 对数据进行局部聚合。
将数据传给 Shufflfflffle Group
8 步: Group
Group: 将相同 key key 提取出来作为唯一的 key,
将相同 key 对应的 value 获取出来作为 value list
将数据传给 Reduce
9 步: Reduce
Reduce :根据业务需求进行最终的合并汇总。
将数据传给 outputFormat
10 步: outputFormat
outputFormat: 将数据写入 HDFS 打包代码到集群运行
在代码中添加
job.setJarByClass(WordCountDriver.class);
打包提交

你可能感兴趣的:(MapReduce)