![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MapReduce
莹火虫的另一半
成功之路,在于坚持与态度
展开
-
07 MR案例-分组
一、MR案例-分组1.1、分组需求 分区和分组的区别 分区:将相同的 k2的数据,发送给同一个 reducer 中,这个操作是在 map端执行 分组:将相同的 k2的值进行合并形成一个集合操作,在 reduce 中对同一个分区下的数据进行分组操作。 案例:需求: 现在需要求出每一个订单中成交金额最大的一笔交易,将结果集存储到2个文件。 数据 订单id 商品id 成交金额Or...原创 2020-12-28 21:53:06 · 163 阅读 · 0 评论 -
06 MR执行流程和原理
一、MR执行流程和原理图1.1、执行流程和原理图mapTask的并行机制 mapTask在运行的时候,开启多个map由谁来决定? 默认情况:mapTask 的数量和读取 HDFS 中的数据块 block 的数量相等 block块:HDFS 中文件各个小数据块(默认 128m )(物理划分) FileSplit: 在MapReduce 读取每一个块称为 fileSplit(文件切片)(逻辑划分) block 的数量 和 文件分片的数量一样,大小也是一...原创 2020-12-20 09:57:05 · 1554 阅读 · 1 评论 -
05 MR的序列化和排序
序列化(Serialization)是指把结构化对象转化为字节流。反序列化(Deserialization)是序列化的逆过程。把字节流转为结构化对象。作用:用于实现网络的传输 和 数据的磁盘存储工作一、需求:a 1a 9b 3a 7b 8b 10a 5要求:第一列按照字典顺序进行排列第一列相同的时候, 第二列按照升序进行排列,输出到文件。二、思路: 实现自定义的...原创 2020-12-20 09:56:39 · 336 阅读 · 1 评论 -
04 MR-分区
MapReduce的分区 分区: 将相同的 k2 的数据发送到同一个分区中 物以类聚,人与群分 案例 将彩票中的彩票结果进行分区操作并输出需求:将partition.csv文本文件中的彩票数据进行分区,小于等于15的分到一个区里, 大于15的分到另外一个区里,并最终将数据保存到两个文件中。思路:怎么进行数据的分区? mapreduce 默认分区的方式是 hashPartiton (key.hashCode() & In...原创 2020-12-20 09:54:29 · 159 阅读 · 1 评论 -
03 MR实例-wordCount
理解需求:在一堆给定的文本文件中统计输出每一个单词出现的总次数实现流程图如下:shuffle阶段暂时不用管数据准备 创建一个新的文件 cd/export/server vim wordcount.txt 向其中放入以下内容并保存 hello helloworld world hadoop hadoop hello world hello fl...原创 2020-12-20 09:49:47 · 173 阅读 · 1 评论 -
02 MapReduce的编程规范
三个阶段 : 数据传输的过程中,都是以 key - value的键值对出现的。map阶段 读取数据,将数据转换成 k1 和 v1 自定义 map逻辑, 将 k1 和 v1 转换成 k2 和 v2 shuffle阶段 分区: 将相同的k2的数据发送给同一个reduce程序 排序:根据k2的数据,进行排序操作(按照字典顺序) 规约combine:是局部聚合,是MapReduce的优化步骤 分组:...原创 2020-12-20 09:42:36 · 148 阅读 · 1 评论 -
01 MapReduce的基本概念
什么是Mapreduce ? 分布式计算框架,是hadoop的一部分。 核心的思想: 分而治之 什么是分而治之 将一个复杂的大的问题,拆分成多个简单的小问题,将每个小的问题进行分别的计算处理操作,得到一个局部的结果之后,再进行合并操作最终得到一个结果。 比如说:需求 从1 + 2 + 3 + 4 .... + 10000 如何计算呢? 单机程序: 每个数字的累加计算。 分布式,分而治之思想: 先找十个...原创 2020-12-20 09:41:54 · 122 阅读 · 1 评论