Chapter04 编写基本的MapReduce程序(一) 专利数据集实战一
获取专利数据集的网站:http://www.nber.org/patents/
需要下载的数据集:pat63_99.txt和Cite75_99.txt
专利引用数据的格式如下,采用逗号分隔
专利描述数据集,各个字段的意义:
大体的程序如下所示:
package cn.edu.hust.job;import java.io.IOException;
import java.util.Iterator;
import java.util.Map;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.KeyValueTextInputFormat;
import org.apache.hadoop.mapred.MapReduceBase;
import org.apache.hadoop.mapred.Mapper;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reducer;
import org.apache.hadoop.mapred.Reporter;
import org.apache.hadoop.mapred.TextOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;public class MyJob extends Configured implements Tool {public static class MapClass extends MapReduceBase implements Mapper<Text,Text,Text,Text>{public void map(Text key, Text value, OutputCollector<Text, Text> collect,Reporter report) throws IOException {collect.collect(value, key);}}public static class ReducerClass extends MapReduceBase implements Reducer<Text, Text, Text, Text>{public void reduce(Text key, Iterator<Text> values,OutputCollector<Text, Text> collect, Reporter report)throws IOException {String csv="";while(values.hasNext()){if (csv.length()>0) {csv+=",";}csv=values.next().toString();}collect.collect(key, new Text(csv));}}//核心public int run(String[] arg0) throws Exception {//创建一个作业Configuration conf=getConf();JobConf jobConf=new JobConf(conf,MyJob.class);//设置输入输出路径Path in=new Path(arg0[0]);Path out=new Path(arg0[1]);FileInputFormat.setInputPaths(jobConf,in);FileOutputFormat.setOutputPath(jobConf, out);//设置mapper、reducer对象jobConf.setJobName("MyJob");jobConf.setMapperClass(MapClass.class);jobConf.setReducerClass(ReducerClass.class);//指定K1、V1的数据格式jobConf.setInputFormat(KeyValueTextInputFormat.class);jobConf.setOutputFormat(TextOutputFormat.class);//指定K2、V2的数据格式jobConf.setOutputKeyClass(Text.class);jobConf.setOutputValueClass(Text.class);jobConf.set("key.value.separator.in.input.line", ",");//启动MapReduce作业JobClient.runJob(jobConf);return 0;}public static void main(String[] args) throws Exception {int res=ToolRunner.run(new Configuration(), new MyJob(), args);System.exit(res);}}
运行的过程:
得到的部分结果:
Chapter04 编写基本的MapReduce程序(一) 专利数据集实战一相关推荐
- 课程、问题-利用mincemeat编写简单的MapReduce程序-by小雨
最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--课程.问题- 本文例子为Coursera上web intelligence and big data的课程业作. 问题描述: Downl ...
- Hadoop之MapReduce程序应用一读取专利引用数据集并对它进行倒排
摘要:MapReduce程序处理专利数据集. 关键词:MapReduce程序 专利数据集 数据源:专利引用数据集cite75_99.txt.(该数据集可以从网址http://www.nber.or ...
- mapreduce编程实例python-使用Python语言写Hadoop MapReduce程序
原标题:使用Python语言写Hadoop MapReduce程序 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 在本教程中,我将描述如何使用Pytho ...
- 如何在Hadoop上编写MapReduce程序
1. 概述 1970年,IBM的研究员E.F.Codd博士在刊物<Communication of the ACM>上发表了一篇名为"A Relational Model of ...
- hadoop的python框架指南_Python之——用Mrjob框架编写Hadoop MapReduce程序(基于Hadoop 2.5.2)...
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79056120 一.环境准备想了解如何使用原生Python编写MapReduce程序 ...
- 教你用Python 编写 Hadoop MapReduce 程序
摘要:Hadoop Streaming 使用 MapReduce 框架,该框架可用于编写应用程序来处理海量数据. 本文分享自华为云社区<Hadoop Streaming:用 Python 编写 ...
- linux hadoop eclipse 安装,linux下安装Hadoopeclipse插件以及编写第一个简单的MapReduce程序...
linux下安装Hadoopeclipse插件以及编写第一个简单的MapReduce程序 Hadoop 安装eclipse这个不难.网上太多的教程,一找一大把.熟悉了之后也不再需要看教程就可以自己安装 ...
- Hadoop详解(三)——MapReduce原理和执行过程,远程Debug,Writable序列化接口,MapReduce程序编写
MapReduce概述 MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. MR由两个阶段组成:Map和Reduce,用户只需要实现map()和Re ...
- 【Hadoop】伪分布式安装---MapReduce程序运行到YARN上,编写MapReduce程序---HDFS yarn
在我的虚拟机(Linux)上安装的Hadoop是2.7.3版本的,安装过程可以参考这个网站,也可以下载. http://hadoop.apache.org/docs/r2.7.6/hadoop-pro ...
- hadoop调用python算法_使用Python实现Hadoop MapReduce程序
根据上面两篇文章,下面是我在自己的ubuntu上的运行过程.文字基本采用博文使用Python实现Hadoop MapReduce程序, 打字很浪费时间滴. 在这个实例中,我将会向大家介绍如何使用Py ...
最新文章
- 通过学历造假获得面试机会,并成功拿到 Offer,这样的操作你认可吗?
- Qt中的QGridLayout
- 云服务器磁盘挂载_云小课 | 磁盘容量不够用?小课教你来扩容!
- 中国剩余定理(CRT)扩展中国剩余定理(exCRT)
- [导入]C#实现Des加密和解密
- 2019cvpr cv_如何编写软件工程简历(CV):权威指南(于2019年更新)
- 数据库和 MIDP,第二部分:数据映射
- 剑指offer——29.顺时针打印矩阵(不熟)
- 轻松实现函数计算文件上传下载
- 编程 常用3500汉字 常用字符
- Fireworks-CS5入门到高级129讲视频教程
- 2018-2019-1 20165301 20165304 20165314 实验二 固件程序设计
- 1、多线程原理与实践 《Java高并发核心编程 卷二》读书笔记
- 01.初识redis
- 微信突破版本限制永久设置透明/半透明头像
- 小红书主页爬取_小红书数据爬取教程
- 知识点总结之Java语言的优点
- 4.s(15): error: A1867E: Immediate 0x00000002 out of range for this operation. Permitted values are
- windows程序设计(一)
- Windows Server 2012 VDI 部署的前提条件