MapReduce
Lv_Hulk
从“0”到“1”!
展开
-
MapReduce介绍
MapReduce介绍(一)MapReduce简介MapReduce是一种分布式计算模型,是Google提出的,主要用于搜索领域,解决海量数据的计算问题。MR有两个阶段组成:Map和Reduce,用户只需实现map()和reduce()两个函数,即可实现分布式计算。(二)MapReduce有哪些角色?各自的作用是什么?MapReduce由JobTracker和TaskTracker组成。...原创 2019-02-17 00:09:49 · 1225 阅读 · 0 评论 -
MapReduce 程序运行方式
MapReduce 程序运行方式MapReduce 程序运行方式:本地运行模式集群运行模式本地运行模式:Eclipse 开发环境下本地运行,好处是方便调试和测试要点一:MapReduce 程序是被提交给 LocalJobRunner 在本地以单进程的形式运行要点二:数据输入输出可以在本地,也可以在 HDFS要点三:怎么实现本地运行?在你的 MapReduce 程序当中不要带集群的配...原创 2019-02-17 00:31:05 · 294 阅读 · 0 评论 -
MapReduce Join 介绍
MapReduce Join 介绍MapReduce 的 Join 操作主要分两类:MapJoin 和 ReduceJoinReduceJoin:1、 map 阶段,两份数据 data1 和 data2 会被 map 分别读入,解析成以链接字段为 key 以查询字段为 value 的 key-value 对,并标明数据来源是 data1 还是 data2。2、 reduce 阶段,redu...原创 2019-02-17 08:51:48 · 434 阅读 · 0 评论 -
shuffle过程
shuffle过程概述1、MapReduce 中,mapper 阶段处理的数据如何传递给 reducer 阶段,是 MapReduce 框架中 最关键的一个流程,这个流程就叫 Shuffle2、Shuffle: 数据混洗 ——(核心机制:数据分区,排序,局部聚合,缓存,拉取,再合并 排序)3、具体来说:就是将 MapTask 输出的处理结果数据,按照 Partitioner 组件制定的规则...原创 2018-10-23 01:18:41 · 457 阅读 · 0 评论 -
MapReduce编程场景之多Job串联
MapReduce编程场景之多Job串联(一)需求一个稍复杂点的处理逻辑往往需要多个 MapReduce 程序串联处理,多 job 的串联可以借助MapReduce 框架的 JobControl 实现(二)分析有两个 MapReduce 任务,分别是 Flow 的 SumMR 和 SortMR,其中有依赖关系:SumMR的输出是 SortMR 的输入,所以 SortMR 的启动得在 Sum...原创 2019-02-17 09:10:33 · 241 阅读 · 0 评论 -
MapReduce编程场景之TopN 算法实现
MapReduce编程场景之TopN 算法实现(一)需求求出每个班参考学生成绩最高的学生的信息,班级,姓名和平均分(二)分析1、利用“班级和平均分”作为 key,可以将 map 阶段读取到的所有学生成绩数据按照班级和成绩排倒序,发送到 reduce2、在 reduce 端利用 GroupingComparator 将班级相同的 kv 聚合成组, 然后取第一个即是最大值(三)代码实现...原创 2019-02-17 09:51:55 · 1870 阅读 · 0 评论 -
MapReduce 编程场景之全局计数器
MapReduce 编程场景之全局计数器(一)简介计数器是用来记录 job 的执行进度和状态的。它的作用可以理解为日志。我们可以在程序的某个位置插入计数器,记录数据或者进度的变化情况。MapReduce 计数器(Counter)为我们提供一个窗口,用于观察 MapReduce Job 运行期的各种细节数据。对 MapReduce 性能调优很有帮助,MapReduce 性能优化的评估大部分都是...原创 2019-02-17 10:09:03 · 202 阅读 · 0 评论 -
MapReduce编程场景之数据分类输出
MapReduce编程场景之数据分类输出(一)需求现有一些原始日志需要做增强解析处理,流程:1、 从原始日志文件中读取数据2、 根据业务获取业务数据库的数据3、 根据某个连接条件获取相应的连接结果(二)分析程序的关键点是要在一个 MapReduce 程序中根据数据的不同输出两类结果到不同目录,这类灵活的输出需求可以通过自定义 OutputFormat 来实现(三)实现实现要点:...原创 2019-02-17 22:40:56 · 595 阅读 · 0 评论 -
MapReduce编程场景之小文件合并
MapReduce编程场景之小文件合并(一)需求无论 HDFS 还是 MapReduce,对于小文件都有损效率,实践中,又难免面临处理大量小文件的场景,此时,就需要有相应解决方案(二)分析小文件的优化无非以下几种方式:1、 在数据采集的时候,就将小文件或小批数据合成大文件再上传 HDFS2、 在业务处理之前,在 HDFS 上使用 MapReduce 程序对小文件进行合并3、 在 Ma...原创 2019-02-17 22:49:46 · 1399 阅读 · 0 评论