MapReduce编程实例之自定义分区
任务描述:
一组数据,按照年份的不同将其分别存放在不同的文件里
example Data:
2013 1
2013 5
2014 5
2014 8
2015 9
2015 4
Code:
package mrTest;import java.io.IOException;
import java.util.StringTokenizer;import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Partitioner;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class zidingyiPartition {public static class myPartition extends Partitioner<LongWritable, LongWritable>{public int getPartition(LongWritable key, LongWritable value, int numTaskReduces) {// TODO Auto-generated method stubif(key.get()==2013){return 0;}else if(key.get()==2014){return 1;}else{return 2;}}}public static class Map extends Mapper<Object, Text, LongWritable,LongWritable>{public void map(Object key, Text value, Context context) throws IOException, InterruptedException{String[] line = value.toString().split("\t");context.write( new LongWritable(Integer.parseInt(line[0])) , new LongWritable(Integer.parseInt(line[1])) );}}public static class Reduce extends Reducer<LongWritable, LongWritable, LongWritable, LongWritable>{public void reduce(LongWritable key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException{for (LongWritable longWritable : values) {context.write(key, longWritable);}}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {// TODO Auto-generated method stubJob job = new Job();job.setJarByClass(zidingyiPartition.class);// 1FileInputFormat.addInputPath(job, new Path(args[0]));// 2job.setMapperClass(Map.class);job.setMapOutputKeyClass(LongWritable.class);job.setMapOutputValueClass(LongWritable.class);// 3job.setPartitionerClass(myPartition.class);// 4// 5job.setNumReduceTasks(3);// 6job.setReducerClass(Reduce.class);job.setOutputKeyClass(LongWritable.class);job.setOutputValueClass(LongWritable.class);// 7FileOutputFormat.setOutputPath(job, new Path(args[1]));// 8System.exit(job.waitForCompletion(true)? 0 : 1);}}
结果展示:
MapReduce编程实例之自定义分区相关推荐
- MapReduce编程实例之自定义排序
任务描述: 给出一组数据,自定义排序的样式,第一列降序,相同时第二列升序 example Data: 2013 1 2013 5 2014 5 2014 8 2015 9 2015 4 Code: p ...
- 大数据之Hadoop学习——动手实战学习MapReduce编程实例
文章目录 一.MapReduce理论基础 二.Hadoop.Spark学习路线及资源收纳 三.MapReduce编程实例 1.自定义对象序列化 需求分析 报错:Exception in thread ...
- 三、MapReduce编程实例
前文 一.CentOS7 hadoop3.3.1安装(单机分布式.伪分布式.分布式) 二.JAVA API实现HDFS MapReduce编程实例 文章目录 前文 MapReduce编程实例 前言 注 ...
- MapReduce编程实例
实验目的 搭建MapReduce编程模型 配置Eclipse和Maven Hadoop集群与启动顺序 MapReduce的WordCount应用 书上代码练习 学习编写一个MapReduce程序 实验 ...
- hadoop中使用MapReduce编程实例
原文链接:http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html 从网上搜到的一篇hadoop的编程实例,对于初学者真是帮助太大 ...
- mapreduce编程实例(1)-统计词频
今天开始把MapReduce Design Patterns这本书上的mapreduce例子过一遍,我觉得这本书对学mapreduce编程非常好,把这本书看完了,基本上能遇到的mapreduce问题也 ...
- mapreduce编程实例python-使用Python实现Hadoop MapReduce程序
在这个实例中,我将会向大家介绍如何使用Python 为Hadoop编写一个简单的MapReduce 程序. 尽管Hadoop 框架是使用Java编写的但是我们仍然需要使用像C++.Python等语言来 ...
- MapReduce编程实践之自定义数据类型
一:任务描述 自定义数据类型完成手机流量的分析 二:example data 格式为:记录报告时间戳.手机号码.AP mac.AC mac.访问的网址.网址种类.上行数据包数.下行数据包数.上行总流量 ...
- mapreduce编程实例python-Python模拟MapReduce的流程
说一下开发环境,是在WIN7下面进行的. python环境是:python2.7 MapReduce的主要流程有: Map阶段->Shuffle阶段->Reduce阶段. 那么一下分别对应 ...
最新文章
- 教你玩转 统一异常处理
- 关于龙芯的争吵我都无语了
- Confluence 6 导入 SSL 证书和问题解决
- 3dvary灯光材质为什么不亮_夜间跑高速开近光灯与为什么近光灯和刹车泡容易坏。...
- Spring-boot国际化
- NSAssert的使用
- php中this,self,parent三个关键字之间的区别(转载)
- 命令行编译 WRK ,windbg 调试
- Davinci DM6446 Codec Engine双核通信环境的搭建
- datetime使用
- android studio | openGL es 3.0增强现实(AR)开发 (5) GLSurfaceView浅解
- 【51单片机】SG90舵机控制
- ccnp计算机英语,英语不好可以学习CCNA或是CCNP吗?
- 计算机网络的发展简史
- 参数是list集合校验,使用@Vaild或者@Vaildated不起作用
- 创业之初你不可不知的融资知识
- vitamin_baidu
- 你知道PDF怎么合并吗?这些技巧快来码住
- Thinkphp5.0实战 仿百度糯米开发多商家电商平台视频中常见的命令(正在更新)
- 切面的优先级、重(chong)用切点表达式
热门文章
- 【C++基础学习】C++中的引用
- uboot中添加hi35xx的GPIO设置
- 引人遐想,用 Python 获取你想要的 “某个人” 摄像头照片
- 千万级游标_在一个千万级的数据库查寻中,如何提高查询效率
- 如何判断 cxgrid 双击了哪一列_唐卡的价值主要体现在哪 如何判断唐卡的价值
- 关于TypeError: ‘numpy.ndarray‘ object is not callable报错
- 二分图专题系列各大知识点总结(匈牙利,染色法,最大独立集,最小点覆盖,最小路径覆盖)
- xsemaphoretake返回_FreeRTOS 计数信号量
- 解题报告(二)E、(BZOJ3513) [MUTC2013] idiots(生成函数 + FFT + 组合计数)
- Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~