mapReducer第一个例子WordCount
mapreducer第一个例子,主要是统计一个目录下各个文件中各个单词出现的次数。
mapper
package com.mapreduce.wordCount;import java.io.IOException;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;/** TextInputFormat中的recorder 每次读取 一个分片中的 一行文本* 所以map 函数每次读取一行。规定:* 输入:key: 行偏移量 value:一行的文本* 输出: key: 一个词 value: 1* * map 做个映射。*/public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{Text keyOut = new Text();IntWritable valueOut = new IntWritable();protected void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException {String line = value.toString();String[] worlds = line.split(" ");for( String w:worlds){keyOut.set(w);valueOut.set(1);context.write(keyOut,valueOut);}}}
reudcer
package com.mapreduce.wordCount;import java.io.IOException;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; /** 输入: 对应maper 的输出 [key: values] {"love":[1,1,1,1,1,1]}* 输出: 词和每个词的出现次数。* 中间shuffle 阶段自动排序分区。 因为没有分区,所以输出到一个文件中 // 所以结果文件是按 key 排序的。* */ public class WordReducer extends Reducer<Text, IntWritable, Text, IntWritable>{protected void reduce(Text key, Iterable<IntWritable> value,Context context)throws IOException, InterruptedException {int count = 0;for( IntWritable v:value){count += v.get();}context.write(key, new IntWritable(count));} }
job 驱动
package com.mapreduce.wordCount;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;public class WordCountDemo {public static void main(String[] args) throws Exception {// 1 获取configurationConfiguration configuration = new Configuration();// 2 job Job job = Job.getInstance(configuration);// 3 作业jar包 job.setJarByClass(WordCountDemo.class);// 4 map, reduce jar 包job.setMapperClass(WordCountMapper.class);job.setReducerClass(WordReducer.class);// 5 map 输出类型 job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);// 6 最终 输出类型 (reducer) job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);// 7 inputformatclass , outputformatclass 输入输出入文件类型 可能决定分片信息 job.setInputFormatClass(TextInputFormat.class);job.setOutputFormatClass(TextOutputFormat.class);// 8 输入输出文件路径 FileInputFormat.setInputPaths(job, new Path("d:/input"));FileOutputFormat.setOutputPath(job, new Path("d:/output"));// 9 job提交 job.waitForCompletion(true);}}
转载于:https://www.cnblogs.com/lijins/p/10092885.html
mapReducer第一个例子WordCount相关推荐
- Ubantu下hadoop运行第一个例子wordcount过程
Ubantu12.04下hadoop-1.2.1运行第一个例子wordcount过程,分享一下 将WordCount.java文件放在Hadoop安装目录下,并在安装目录下创建输入目录input,目录 ...
- 《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决
<Unix网络编程卷1-套接字联网API>是本好书. 但是第一个例子不是很好编译. 需要如下步骤: 本人机器CentOS 5.4 1.下载源码 unpv13e解压到任意目录 然后按其rea ...
- python中tornado的第一个例子
python中tornado的第一个例子 1 先安装tornado pip install tornado 2 新建tor.py 记住不能建立 tornado.py 这样的名字 不然会报错 Imp ...
- (1)Hadoop 的第一个程序 WordCount 理解
Hadoop 的第一个程序 WordCount 理解 map and Reduce 相关概念 Map 将数据拆分成一个个键值对, reduce 负责将一个个键值对进行归集, 最后统计出结果 machi ...
- GLSL着色语言学习。橙皮书第一个例子GLSL+OpenTK+F#的实现。
Opengl红皮书有选择的看了一些,最后的讲着色语言GLSL的部分看的甚为不理解,然后找到Opengl橙皮书,然后就容易理解多了. 在前面,我们或多或少接触到Opengl的处理过程,只说前面一些处理, ...
- TensorFlow版的“Hello World”,运行官网第一个例子
TensorFlow版的"Hello World",运行官网第一个例子.代码如下: #!/usr/bin/env python import os import tensorflo ...
- Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)
准备开始学一学d3d,听说<Introduction to 3D Game Programming with DirectX 12>这本书不错,于是就拿来学一学.不料第一个例子,按照书中的 ...
- DirectX9 SDK 下载、安装、VC++开发环境配置、跑通第一个例子
一 可在 http://download.microsoft.com/download/F/1/7/F178BCE4-FA19-428F-BB60-F3DEE1130BFA/DXSDK_Feb10.e ...
- TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅
TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...
最新文章
- 基础数据结构【二】————动态数组,单向链表及链表的反转
- Java中的即时编译(Just-in-time compilation)
- DOS下查看局域网的ip使用情况,以及ip对应的主机名
- 华为鸿蒙15日上市,华为鸿蒙什么时候上市
- 万达放弃A股上市,数据揭秘王思聪投资为何频繁跳水?
- 如何优雅的使用RabbitMQ?
- PHP获取客户端的真实IP
- 畅享网助力打造IT界的文化人
- linux实验目的能学会什么意思,Linux实验.doc
- 无需重新部署Eclipse和Tomcat即可进行更改
- 计算机图标用鼠标双击和右键都无法启动,电脑桌面只有“我的电脑”图标双击找不开,用右键资源管理器能打开,为什么...
- java里当显式请求注释时才接受类名称
- C-COT目标跟踪-----连续卷积算子
- 从苹果封杀Epic与特斯拉硬刚拼多多看新时代的渠道产品战
- C# worksheet设置Excel样式
- m3u8转mp4,不用格式软件
- 使用微软Azure的tts文本转语音服务出现java.lang.UnsatisfiedLinkError
- 使用C#进行串口通信开发上位机软件
- 2023电工杯数学建模A题B题
- JavaScript一键换肤