![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mapreduce
poppy_rain
为天地立心为生民立命为往圣继绝学为万世开太平
展开
-
一个简单的mapreduce程序---统计每个单词出现次数
因为会对key进行排序,所以要把需要排序的元素写到key中例如:统计单词出现次数,并按照次数降序。 可以这样:map阶段输出<单词,1>,reduce阶段输出<单词,n>,map阶段输出<n,单词>,reduce阶段输出<单词,n> 统计每个单词出现次数1. 定义一个Mapper类2. 定义一个Re...原创 2018-12-06 21:26:54 · 6301 阅读 · 1 评论 -
mapreduce例子---join算法,全局计数器,多job串联,TopN
1. join算法题如下: 订单数据表t_order id date pid amount 1001 20150710 ...原创 2018-12-13 01:15:20 · 438 阅读 · 0 评论 -
mapreduce可以自定义的类
1. 分区partition默认按照key的hashcode值分区。自定义:手机号按照省份分区自定义类,继承partitioner 重写getpartion方法public class TextPartitioner extends Partitioner<Text, FlowBean> { static HashMap<St...原创 2018-12-08 20:36:38 · 218 阅读 · 0 评论 -
mapreduce序列化
1. hadoop的序列化(Writable)比jdk的序列化(Serializable)更加简洁高效2. 基本序列化类型LongWritable IntWritable nullWritable Text3. Bean序列化因为maprduce的shuffle过程要对key比较排序,所以,如果key是bean,就要对bean进行序列化实现WritableCo...原创 2018-12-08 19:13:45 · 379 阅读 · 0 评论 -
mapreduce的shuffle过程
shuffle:map阶段的数据传递到reduce阶段,这个流程叫做shuffle 程序执行,首先启动mrAppMaster(mr) mr根据job信息,启动相应数量的mapTask进程分片大小默认等于block(块)大小,块大小默认128M。分片大小可以通过FileInputFormat的getSplit方法修改。一个分片启动一个mapTask。注意多个文件不能分到同一个...原创 2018-12-06 23:59:32 · 160 阅读 · 0 评论 -
mapreduce的主类配置(job.set)
jar包所在类;map类;reduce类;job.setJarByClass; job.setMapperClass; job.setReducerClass;map输出类型;最后输出类型;job.setMapOutputKeyClass; job.setMapOutputValueClass; job.setOutputKeyClass; job.setOutputValueCla...原创 2018-12-07 00:22:48 · 1404 阅读 · 0 评论