Mr
完整的 MapReduce
框架包含两部分:
算法逻辑层面,即
map
、shuffle
以及reduce
三个重要算法组成部分;实际运行层面,即算法逻辑作业在分布式主机中是以什么形式和什么流程运行的,自
MapReduce version2
以后,作业都是提交给YARN
进行管理
P.S.
2.0之前只有MapReduce的运行框架,那么它里面有只有两种节点,一个是master,一个是worker。master既做资源调度又做程序调度,worker只是用来参与计算的。 但是在2.0之后加入了YARN集群,Yarn集群的主节点承担了资源调度,Yarn集群的从节点中会选出一个节点(这个由redourcemanager决定)用作类似于2.0之前的master的工作,来进行应用程序的调度。
资源调度: 处理程序所需要的cpu、内存资源,以及存储数据所需要的硬盘资源都是resourcemanager去分配的。

一切都是从最上方的user program开始的,user program链接了MapReduce库,实现了最基本的Map函数和Reduce函数。 图中执行的顺序都用数字标记了。
mapreduce就是分治法的一种,将输入进行分片,然后交给不同的task进行处理,然后合并成最终的解。 mapreduce实际的处理过程可以理解为Input->Map->Sort->Combine->Partition->Reduce->Output。
以上详细内容可见:https://cloud.tencent.com/developer/article/1023958
这篇文章[http://oserror.com/distributed/mapreduce/] 还举了一些mapreduce的例子,比较通俗易懂。
2.0之后,MapReduce框架通常由三个操作(或步骤)组成:
Map:每个工作节点将
map
函数应用于本地数据,并将输出写入临时存储。主节点确保仅处理冗余输入数据的一个副本。Shuffle:工作节点根据输出键(由
map
函数生成)重新分配数据,对数据映射排序、分组、拷贝,目的是属于一个键的所有数据都位于同一个工作节点上。Reduce:工作节点现在并行处理每个键的每组输出数据。
流程图:
详细内容参考:
https://juejin.im/post/5bb59f87f265da0aeb7118f2
2. 使用Hadoop Streaming -python写出WordCount
3.使用mr计算movielen中每个用户的平均评分。
https://www.cnblogs.com/sykblogs/articles/10021703.html
https://www.cnblogs.com/sss4/p/10443497.html
4.使用mr实现merge功能。根据item,merge movielen中的 u.data u.item
5.使用mr实现去重任务。
6.使用mr实现排序。
7.使用mapreduce实现倒排索引。
8.使用mapreduce计算Jaccard相似度。
9.使用mapreduce实现PageRank。
Last updated
Was this helpful?