第2节 mapreduce深入学习:2、3
第2节 mapreduce深入学习:2、MapReduce的分区;3、分区案例的补充完成运行实现
在MapReduce中,通过我们指定分区,会将同一个分区的数据发送到同一个reduce当中进行处理,例如我们为了数据的统计,我们可以把一批类似的数据发送到同一个reduce当中去,在同一个reduce当中统计相同类型的数据,就可以实现类似数据的分区,统计等
说白了就是相同类型的数据,送到一起去处理,在reduce当中默认分区只有1个。
MapReduce当中的分区类图:

mapreduce的分区以及与reduceTask的个数,物以类聚,人以群分,相同的数据去到同一个reduce
分区主要就是把相同的一批数据,发送到同一个reduce里面去
相同key的数据发送到同一个reduce里面去
例子:需求:将以下数据进行分开处理
详细数据参见partition.csv 这个文本文件,其中第五个字段表示开奖结果数值,现在需求将15以上的结果以及15以下的结果进行分开成两个文件进行保存。

思路图解:
注意:分区的案例,只能打成jar包发布到集群上面去运行,本地模式已经不能正常运行了。
打成jar包提交到集群上面去运行:
hadoop jar partition.jar cn.itcast.demo1.partition.PartitionerMain /partition_in /partition_out
详见代码
参考:
mapReduce编程步骤: 背下来
map阶段两个步骤
1、读取文件,解析成key,value对 k1, v1
2、自定义map逻辑,接收第一步的k1 v1 转换成新的k2 v2输出
shuffle阶段四个步骤
3、分区,相同key的数据发送到同一个reduce,value形成一个集合
4、排序 默认规则排序,按照字段顺序排列
5、规约 小型的reducer,发生在map阶段,可以在map阶段对数据做一次聚合,减少数据传输到reduce量
6、分组 主要作用就是形成集合
reduce阶段两个步骤
7、自定义reduce逻辑,接收k2 v2 的数据,准换成新的k3 v3输出
8、输出数据
第2节 mapreduce深入学习:2、3的更多相关文章
- 第2节 mapreduce深入学习:14、mapreduce数据压缩-使用snappy进行压缩
第2节 mapreduce深入学习:14.mapreduce数据压缩-使用snappy进行压缩 文件压缩有两大好处,节约磁盘空间,加速数据在网络和磁盘上的传输. 方式一:在代码中进行设置压缩 代码: ...
- 第2节 mapreduce深入学习:8、手机流量汇总求和
第2节 mapreduce深入学习:8.手机流量汇总求和 例子:MapReduce综合练习之上网流量统计. 数据格式参见资料夹 需求一:统计求和 统计每个手机号的上行流量总和,下行流量总和,上行总流量 ...
- 第2节 mapreduce深入学习:7、MapReduce的规约过程combiner
第2节 mapreduce深入学习:7.MapReduce的规约过程combiner 每一个 map 都可能会产生大量的本地输出,Combiner 的作用就是对 map 端的输出先做一次合并,以减少在 ...
- 第2节 mapreduce深入学习:6、MapReduce当中的计数器
第2节 mapreduce深入学习:6. MapReduce当中的计数器 计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计.计数器还可辅助诊断系统故障.如果需要将日志信息传输到map ...
- 第2节 mapreduce深入学习:4, 5
第2节 mapreduce深入学习:4.mapreduce的序列化以及自定义排序 序列化(Serialization)是指把结构化对象转化为字节流. 反序列化(Deserialization)是序列化 ...
- 第2节 mapreduce深入学习:15、reduce端的join算法的实现
reduce端的join算法: 例子: 商品表数据 product: pidp0001,小米5,1000,2000p0002,锤子T1,1000,3000 订单表数据 order: pid ...
- 第2节 mapreduce深入学习:11、maptask运行机制(多看几遍)
mapTask运行机制详解以及mapTask的并行度在mapTask当中,一个文件的切片大小使用默认值是128M,就是跟我们一个block块对应大小一样 MapTask运行的整个过程 背下来1.Tex ...
- 第2节 mapreduce深入学习:10、手机号码进行分区
需求三:手机号码分区 在需求一的基础上,继续完善,将不同的手机号分到不同的数据文件的当中去,需要自定义分区来实现,这里我们自定义来模拟分区,将以下数字开头的手机号进行分开 135 开头数据到一个分区文 ...
- 第2节 mapreduce深入学习:9、手机上行流量排序
还是上次那个例子,需求二:上行流量倒序排序(递减排序) 分析,以需求一的输出数据作为排序的输入数据,自定义FlowBean,以FlowBean为map输出的key,以手机号作为Map输出的value, ...
随机推荐
- Python科学计算工具包
import numpy as np # 创建一个Ndarray # 1. 从list对象中创建 # 2. 创建一个特定的数组,全1数组ones,随机数组random.randn,对角矩阵diag # ...
- bzoj 1055: [HAOI2008]玩具取名【区间dp】
不难想,就是处理起来比较麻烦 设f[i][j][k]为是否可以把区间(i,j)合并为k,初始状态是f[i][j][s[i]]=1,转移的话另一段枚举长度x,向(i-x,j),(i,j+x)转移 把四个 ...
- 洛谷 P2774 方格取数问题【最小割】
因为都是正整数,所以当然取得越多越好.先把所有点权加起来,黑白染色后,s向所有黑点连流量为点权的边,所有白点向t连流量为点权的边,然后黑点向相邻的四个白点连流量为inf的边,表示不可割,这样一来,对于 ...
- 如何管理第三方接口token过期时间
背景: 随着微服务的盛行,做开发时不可避免的要涉及第三方接口,安全起见,这些接口都会需要一个token参数.而token一般都会有一个过期时间,比如2小时或者30分钟.那么如何在自己的应用中存储并管理 ...
- magento 获得当前产品页面的产品id
$product_id = Mage::registry('current_product')->getId();
- 使用HttpClient携带证书报错_Certificate for <IP> doesn't match any of the subject alternative names:[域名]
使用HttpClient携带pfx证书通过Https协议发送SOUP报文调用WebService接口时报如下错误: Exception in thread "main" javax ...
- XmlPullParser接口详述
带*的是非常重要的函数.点击有说明.setInputgetDepthisWhitespacegetTextisEmptyElementTaggetAttributeCountgetAttributeV ...
- Android偏好设置(7)自定义Preference,和PreferenceDialog
Building a Custom Preference The Android framework includes a variety of Preference subclasses that ...
- 转】Mahout构建图书推荐系统
原博文出自于: http://blog.fens.me/hadoop-mahout-recommend-book/ 感谢! Mahout构建图书推荐系统 Hadoop家族系列文章,主要介绍Hadoop ...
- jquery各种选择器示例
$("#itemExpressionHidden>b:last") 选择id为itemExpressionHidden中的最后一个b标签 $("#itemExp ...