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