【大数据】MapReduce
【大数据】MapReduce
北京小辉
余辉,硕士毕业于中科院,从事IT行业12年。专注于大数据、云数据、用户画像、推荐算法。在数据团队担任过的角色:研发、架构师、负责人、讲师。数据知识产权:出版大数据书籍【1】本,论文【2】篇,软著【6】篇,专利【65】篇。
展开
-
MapReduce: combiner
1、什么是combiner? combiner就是规约操作,通过对map输出的数量进行规约,可以减少reduce的数量,提高执行效率combiner的输入输出类型必须和mapper的输出以及reducer的输入类型一致2、什么情况要使用 combiner,什么情况不使用? 求平均数的时候就不需要用combiner,因为不会减少reduce执行数量。在其他的时候,可以依据情况,使用combi原创 2016-03-15 11:15:34 · 1257 阅读 · 0 评论 -
mapreduce的shuffle,partition,combine
shuffle: 是描述着数据从map端传输到reduce端的过程,而且我们知道的是hadoop的集群环境中,大部分map task和reduce task是在不同的node上执行,主要的开销是网络开销和磁盘IO开销,因此shuffle的主要作用相当于是 1.完整的从map task端传输到reduce task端。 2.跨节点传输数据时,尽可能减少对带宽的消耗.(注意是reduce执行原创 2016-03-14 23:06:11 · 1101 阅读 · 0 评论 -
MapReduce:实现jion的几种方法
reduce side join reduce side join是一种最简单的join方式,其主要思想如下: 在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签 (tag),比如:tag=0表示来自文件File1,tag=2表示来自文件File2。即:map阶段的主要任务是对不同文件中的数据打标签。原创 2016-03-15 11:27:23 · 3290 阅读 · 0 评论 -
MapReduce中wordCount程序工作过程分析
MapReduce主要分为八个步骤: 1)读取文件,解析成key,value对 2)自定义map函数 3)对map输出的数据进行分区 4)对分区后的数据进行排序分组 5)对分组后的数据进行规约 6)通过网络拷贝,将map输出的数据拷贝到reduce节点 7)自定义reduce函数,对map输入的key,value对进一步的处理 8)对处理后的数据进行输出具体8个步鄹细节如下:Map处原创 2016-03-20 09:00:08 · 1099 阅读 · 0 评论 -
MapReduce怎样实现二级排序
有两种方法进行二次排序,分别为:buffer and in memory sort和 value-to-key conversion。对于buffer and in memory sort,主要思想是:在reduce()函数中,将某个key对应的所有value保存下来,然后进行排序。 这种方法最大的缺点是:可能会造成out of memory。对于value-to-key conversion,主要原创 2016-03-15 17:18:07 · 2567 阅读 · 0 评论 -
MapReduce: Partition
1、partion的作用 Partion作用主要是对map处理的数据进行分区,可以解决数据倾斜的问题。2、如果没有定义partitioner,那数据在被送达reducer前是如何被分区的? hadoop有一个默认的分区类,HashPartioer类,通过对输入的k2去hash值来确认map输出的k2,v2送到哪一个reduce中去执行。3、代码体现public class Provinc原创 2016-03-15 11:23:25 · 1140 阅读 · 0 评论 -
yarn的工作流程
运行在YARN上的应用程序主要分为两类: (1)短应用程序 (2)长应用程序 短应用程序是指一定时间内(可能是秒级、分钟级或小时级,尽管天级别或者更长时间的也存在,但非常少)可运行完成并正常退出的应用程序,比如MapReduce作业、Tez DAG作业等.长应用程序是指不出意外,永不终止运行的应用程序,通常是一些服务,比如Storm Service(主要包括Nimbus和Supervisor两原创 2016-03-15 14:43:44 · 2844 阅读 · 0 评论 -
MapReduce中job参数及设置map和reduce的个数
map的个数在map阶段读取数据前,FileInputFormat会将输入文件分割成split。split的个数决定了map的个数。影响map个数,即split个数的因素主要有:1)HDFS块的大小,即HDFS中dfs.block.size的值。如果有一个输入文件为1024m,当块为256m时,会被划分为4个split;当块为128m时,会被划分为8个split。2原创 2016-06-02 21:10:18 · 12084 阅读 · 0 评论 -
MapReduce:详解shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里我原创 2016-03-14 23:35:43 · 1052 阅读 · 0 评论