hadoop程序MapReduce之DataSort
需求:对文件中的数据进行排序。
样本:sort.log
10
13
10
20
输出:1 10
2 10
3 13
4 20
分析部分:
mapper分析:
1、<k1,v1>k1代表:行位置编号,v1代表:一行数据
2、<k2,v2>k2代表:一行数据,v2代表:此处为1.
reduce分析:
3、<k3,v3>k3代表:相同的key,v3代表:list<int>
4、合并输出:<k4,v4>k4代表:递增编号,v4代表:key值。
程序部分:
SortMapper类:
package com.cn.sort;import java.io.IOException;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper;public class SortMapper extends Mapper<Object, Text, IntWritable, IntWritable> {String line = null;@Overrideprotected void map(Object key, Text value, Context context)throws IOException, InterruptedException {line = value.toString();int lineValue = Integer.parseInt(line);context.write(new IntWritable(lineValue), new IntWritable(1));} }
SortReduce类
package com.cn.sort;import java.io.IOException;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.mapreduce.Reducer;public class SortReduce extends Reducer<IntWritable, IntWritable, IntWritable, IntWritable>{IntWritable lineNum = new IntWritable(1);@Overrideprotected void reduce(IntWritable key, Iterable<IntWritable> values,Context context)throws IOException, InterruptedException {for(IntWritable value : values){context.write(lineNum, key);lineNum = new IntWritable(lineNum.get()+1);}} }
DataSort类
package com.cn.sort;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.util.GenericOptionsParser;/*** 数据排序* @author root**/ public class DataSort {public static void main(String[] args) throws Exception {Configuration conf = new Configuration();String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();if (otherArgs.length != 2) {System.err.println("Usage: DataSort ");System.exit(2);}Job job = new Job(conf, "Data Sort"); job.setJarByClass(DataSort.class);//设置输入输出文件目录FileInputFormat.addInputPath(job, new Path(otherArgs[0]));FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));//设置mapper和reduce处理逻辑类job.setMapperClass(SortMapper.class);job.setReducerClass(SortReduce.class);//设置输出key-value类型job.setOutputKeyClass(IntWritable.class);job.setOutputValueClass(IntWritable.class);//提交作业并等待它完成System.exit(job.waitForCompletion(true) ? 0 : 1);}}
没事就把自己写过的代码总结哈。
hadoop程序MapReduce之DataSort相关推荐
- hadoop程序MapReduce之SingletonTableJoin
需求:单表关联问题.从文件中孩子和父母的关系挖掘出孙子和爷奶关系 样板:child-parent.txt xiaoming daxiong daxiong alice daxiong jack 输出: ...
- hadoop程序运行
hadoop命令的使用: Usage: hadoop [--config confdir] COMMAND 这里COMMAND为下列其中一个: 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- Hadoop 新 MapReduce 框架 Yarn 详解
Hadoop MapReduceV2(Yarn) 框架简介 原 Hadoop MapReduce 框架的问题 对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储 ...
- Hadoop:The Definitive Guid 总结 Chapter 1~2 初识Hadoop、MapReduce
1.数据存储与分析 问题:当磁盘的存储量随着时间的推移越来越大的时候,对磁盘上的数据的读取速度却没有多大的增长 从多个磁盘上进行并行读写操作是可行的,但是存在以下几个方面的问题: 1).第一个问题是硬 ...
- Hadoop之MapReduce面试知识复习
Hadoop之MapReduce面试知识复习 目录 谈谈Hadoop序列化和反序列化及自定义bean对象实现序列化? FileInputFormat切片机制 在一个运行的Hadoop 任务中,什么是I ...
- Hadoop之MapReduce工作流程
Hadoop之MapReduce工作流程 目录 流程示意图 流程详解 注意 1. 流程示意图 MapReduce工作流程 流程示意图,如下图 2. 流程详解 上面的流程是整个mapreduce最全工作 ...
- Hadoop之MapReduce入门
Hadoop之MapReduce概述 目录 MapReduce定义 MapReduce优缺点 MapReduce核心思想 MapReduce进程 MapReduce编程规范 MapReduce案例实操 ...
- 使用ToolRunner运行Hadoop程序基本原理分析
为了简化命令行方式运行作业,Hadoop自带了一些辅助类.GenericOptionsParser是一个类,用来解释常用的Hadoop命令行选项,并根据需要,为Configuration对象设置相应的 ...
- mrunit_使用MRUnit测试Hadoop程序
mrunit 这篇文章将略微绕开使用MapReduce实现数据密集型处理中发现的模式,以讨论同样重要的测试. 汤姆•惠勒 ( Tom Wheeler)在纽约2012年Strata / Hadoop W ...
最新文章
- @Service注解的使用
- 第九周项目实践2 二叉树遍历的递归算法
- linux 环境变量 term,linux – TERM环境变量未设置
- 高频面试题1:自增边量
- android java 时间格式化_(Java / Android)计算两个日期之间的日期,并以特定格式显示结果...
- asp.net MVC 验证错误信息本地化
- 不要在给自己不学习找借口了,否则…
- devexpress 打印一个form界面_通过回车键提交form表单时,你是否注意过这些问题?...
- 2013年6月12日星期三
- 10g手动创建数据库
- gram矩阵的性质_第十七课:正交矩阵和GramSchmidt正交化——MIT线性代数课程学习笔记...
- 声压级和灵敏度的关系
- Cookie 版购物车
- Linux系统启动过程分析
- c语言程序设计 江汉大学,C语言程序设计B卷
- 430单片机实现三人投票表决器_基于51单片机的三人表决器设计.doc
- js 生成二维码及打印
- 计算机专业的有关的外文文献,计算机专业外文外文 计算机专业专著类参考文献有哪些...
- 苹果唯冠商标战对iPad3的影响:iPad3太TM贵,肾都不够卖了!
- BlackBerry上网初体验
热门文章
- matlab2014调用vs2015进行混合编译生成mex文件
- 21天 Jenkins打卡-Day1 环境准备
- dl360 g7安装linux,HPDL360G7服务器安装说明.ppt
- 看了无数文章,今天终于理解这些性能指标了
- 自动化测试:Selenium8种元素定位+unittest框架设计
- matlab2016a 问题及解决方法记录
- PHP中的方形按钮怎么敲,php 魔术方法使用说明
- php方便,两个方便测试PHP特性的小程序
- 基于深度学习的大豆病虫害自动计数(SLIC超像素方法进行图像分割)
- ftp 200 227 451linux,FTP无法链接