任务描述:

一组数据,按照年份的不同将其分别存放在不同的文件里

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编程实例之自定义分区相关推荐

  1. MapReduce编程实例之自定义排序

    任务描述: 给出一组数据,自定义排序的样式,第一列降序,相同时第二列升序 example Data: 2013 1 2013 5 2014 5 2014 8 2015 9 2015 4 Code: p ...

  2. 大数据之Hadoop学习——动手实战学习MapReduce编程实例

    文章目录 一.MapReduce理论基础 二.Hadoop.Spark学习路线及资源收纳 三.MapReduce编程实例 1.自定义对象序列化 需求分析 报错:Exception in thread ...

  3. 三、MapReduce编程实例

    前文 一.CentOS7 hadoop3.3.1安装(单机分布式.伪分布式.分布式) 二.JAVA API实现HDFS MapReduce编程实例 文章目录 前文 MapReduce编程实例 前言 注 ...

  4. MapReduce编程实例

    实验目的 搭建MapReduce编程模型 配置Eclipse和Maven Hadoop集群与启动顺序 MapReduce的WordCount应用 书上代码练习 学习编写一个MapReduce程序 实验 ...

  5. hadoop中使用MapReduce编程实例

    原文链接:http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html 从网上搜到的一篇hadoop的编程实例,对于初学者真是帮助太大 ...

  6. mapreduce编程实例(1)-统计词频

    今天开始把MapReduce Design Patterns这本书上的mapreduce例子过一遍,我觉得这本书对学mapreduce编程非常好,把这本书看完了,基本上能遇到的mapreduce问题也 ...

  7. mapreduce编程实例python-使用Python实现Hadoop MapReduce程序

    在这个实例中,我将会向大家介绍如何使用Python 为Hadoop编写一个简单的MapReduce 程序. 尽管Hadoop 框架是使用Java编写的但是我们仍然需要使用像C++.Python等语言来 ...

  8. MapReduce编程实践之自定义数据类型

    一:任务描述 自定义数据类型完成手机流量的分析 二:example data 格式为:记录报告时间戳.手机号码.AP mac.AC mac.访问的网址.网址种类.上行数据包数.下行数据包数.上行总流量 ...

  9. mapreduce编程实例python-Python模拟MapReduce的流程

    说一下开发环境,是在WIN7下面进行的. python环境是:python2.7 MapReduce的主要流程有: Map阶段->Shuffle阶段->Reduce阶段. 那么一下分别对应 ...

最新文章

  1. 教你玩转 统一异常处理
  2. 关于龙芯的争吵我都无语了
  3. Confluence 6 导入 SSL 证书和问题解决
  4. 3dvary灯光材质为什么不亮_夜间跑高速开近光灯与为什么近光灯和刹车泡容易坏。...
  5. Spring-boot国际化
  6. NSAssert的使用
  7. php中this,self,parent三个关键字之间的区别(转载)
  8. 命令行编译 WRK ,windbg 调试
  9. Davinci DM6446 Codec Engine双核通信环境的搭建
  10. datetime使用
  11. android studio | openGL es 3.0增强现实(AR)开发 (5) GLSurfaceView浅解
  12. 【51单片机】SG90舵机控制
  13. ccnp计算机英语,英语不好可以学习CCNA或是CCNP吗?
  14. 计算机网络的发展简史
  15. 参数是list集合校验,使用@Vaild或者@Vaildated不起作用
  16. 创业之初你不可不知的融资知识
  17. vitamin_baidu
  18. 你知道PDF怎么合并吗?这些技巧快来码住
  19. Thinkphp5.0实战 仿百度糯米开发多商家电商平台视频中常见的命令(正在更新)
  20. 切面的优先级、重(chong)用切点表达式

热门文章

  1. 【C++基础学习】C++中的引用
  2. uboot中添加hi35xx的GPIO设置
  3. 引人遐想,用 Python 获取你想要的 “某个人” 摄像头照片
  4. 千万级游标_在一个千万级的数据库查寻中,如何提高查询效率
  5. 如何判断 cxgrid 双击了哪一列_唐卡的价值主要体现在哪 如何判断唐卡的价值
  6. 关于TypeError: ‘numpy.ndarray‘ object is not callable报错
  7. 二分图专题系列各大知识点总结(匈牙利,染色法,最大独立集,最小点覆盖,最小路径覆盖)
  8. xsemaphoretake返回_FreeRTOS 计数信号量
  9. 解题报告(二)E、(BZOJ3513) [MUTC2013] idiots(生成函数 + FFT + 组合计数)
  10. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~