Hadoop的核心内容之一HDFS,是Hadoop分布式的平台基础,而MapReduce则是充分利用Hdfs分布式,提高运行效率的算法模型 ,Map(映射)和Reduce(归约)两个主要阶段都以<key,value>键值对作为输入和输出,我们需要做的就是对这些<key,value>做我们想要的处理。
https://blog.csdn.net/liujiahan629629/article/details/48301427
map任务处理:
1.读取输入文件内容,解析成键值对(key/value).对输入文件的每一行,解析成键值对(key/value).每一个键值对调用一次map函数
2.写自己的逻辑,对输入的键值对(key/value)处理,转换成新的键值对(key/value)输出.
3.对输出的键值对(key/value)进行分区.(partition)
4.对不同分区的数据,按照key进行排序,分组.相同的key/value放到
一个集合中.(shuffle)
5.分组后的数据进行规约.(combiner,可选择的),也就是可以在mapper中处理一部
分reduce的工作,将reduce的工作进行减压
reduce任务处理:
1.对多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点.
2.对多个map任务的输出进行合并,排序.写reduce函数自己的逻辑,对输入的
key/value处理,转换成新的key/value输出.
3.把reduce的输出保存到文件中(写入到hdfs中).
大数据hw2 part1 (代码见github)