Hadoop Mapreduce之WordCount实现

1.新建一个WCMapper继承Mapper

public class WCMapper extends Mapper<LongWritable, Text, Text, LongWritable> {

@Override

protected void map(LongWritable key, Text value, Context context)

throws IOException, InterruptedException {

//接收数据V1

String line = value.toString();

//切分数据

String[] wordsStrings = line.split(" ");

//循环

for (String w: wordsStrings) {

//出现一次,记一个一,输出

context.write(new Text(w), new LongWritable(1));

}

}

}

2.新建一个WCReducer继承Reducer

public class WCReducer extends Reducer<Text, LongWritable, Text, LongWritable> {

@Override

protected void reduce(Text key, Iterable<LongWritable> v2s, Context context)

throws IOException, InterruptedException {

// TODO Auto-generated method stub

//接收数据

//Text k3 = k2;

//定义一个计算器

long counter = 0;

//循环v2s

for (LongWritable i : v2s)

{

counter += i.get();

}

//输出

context.write(key, new LongWritable(counter));

}

}

3.WordCount类实现Main方法

/*

* 1.分析具体的业力逻辑,确定输入输出数据样式

* 2.自定义一个类,这个类要继承import org.apache.hadoop.mapreduce.Mapper;

* 重写map方法,实现具体业务逻辑,将新的kv输出

* 3.自定义一个类,这个类要继承import org.apache.hadoop.mapreduce.Reducer;

* 重写reduce,实现具体业务逻辑

* 4.将自定义的mapper和reducer通过job对象组装起来

*/

public class WordCount {

public static void main(String[] args) throws Exception {

// 构建Job对象

Job job = Job.getInstance(new Configuration());

// 注意:main方法所在的类

job.setJarByClass(WordCount.class);

// 设置Mapper相关属性

job.setMapperClass(WCMapper.class);

job.setMapOutputKeyClass(Text.class);

job.setMapOutputValueClass(LongWritable.class);

FileInputFormat.setInputPaths(job, new Path("/words.txt"));

// 设置Reducer相关属性

job.setReducerClass(WCReducer.class);

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(LongWritable.class);

FileOutputFormat.setOutputPath(job, new Path("/wcount619"));

// 提交任务

job.waitForCompletion(true);

}

}

4.打包为wc.jar,并上传到linux,并在Hadoop下运行

hadoop jar /root/wc.jar

时间: 2024-10-17 15:36:59

Hadoop Mapreduce之WordCount实现的相关文章

Hadoop MapReduce(WordCount) Java编程

编写WordCount程序数据如下: hello beijing hello shanghai hello chongqing hello tianjin hello guangzhou hello shenzhen ... 1.WCMapper: package com.hadoop.testHadoop; import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop

Hadoop:MapReduce编程-WordCount统计单词个数-eclipse-java环境

之前习惯用hadoop streaming环境编写python程序,下面总结编辑java的eclipse环境配置总结,及一个WordCount例子运行. 一 下载eclipse安装包及hadoop插件 1去官网下载linux版本的eclipse安装包(或者在本人为了大家方便下载,上传到了csdn下载,网址: 2下载插件:hadoop-eclipse-plugin-2.6.0.jar 二 安装elicpse及hadoop插件 1 把eclipse解压到路径 /user/local/eclipse

【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析

Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS)的开源实现. MapReduce是Google MapReduce的开源实现. HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算. 本文主要参考了以下三篇博客学习整理而成. 1. Hadoop示例程序WordCount详解及实例 2. hadoop 学习笔

Hadoop 6、第一个mapreduce程序 WordCount

1.程序代码 Map: 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; import org.apache.hadoop.util.StringUtils; public

Hadoop实战-MapReduce之WordCount(五)

环境介绍: 主服务器ip:192.168.80.128(master)  NameNode  SecondaryNameNode ResourceManager 从服务器ip:192.168.80.129(slave1)  DataNode NodeManager 从服务器ip: 192.168.80.130(slave2)  DataNode NodeManager 1.文件准备 1)在HDFS上创建文件夹 hadoop fs -mkdir /user/joe/wordcount/input

hadoop程序MapReduce之WordCount

需求:统计一个文件中所有单词出现的个数. 样板:word.log文件中有hadoop hive hbase hadoop hive 输出:hadoop 2 hive 2 hbase 1 MapReduce设计方式: 一.Map过程<k,v>键值队的设计: 1.按行将文本文件切割成 <k1,v1>,k1代表:行在文件中的位置,v1代表:一行数据.多少个<k1,v1>就调用多少次map()方法. 2.在map()方法中将一行数据按照空格继续分割成<k2,v2>,

Hadoop MapReduce 官方教程 -- WordCount示例

Hadoop MapReduce 官方教程 -- WordCount示例: http://hadoop.apache.org/docs/r1.0.4/cn/mapred_tutorial.html#%E4%BE%8B%E5%AD%90%EF%BC%9AWordCount+v1.0

初学Hadoop之图解MapReduce与WordCount示例分析

Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS)的开源实现,MapReduce是Google MapReduce的开源实现. HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算. 本文主要参考了以下三篇博客学习整理而成. 1.Hadoop示例程序WordCount详解及实例 2.hadoop 学习笔记:m

Hadoop实例之利用MapReduce实现Wordcount单词统计 (附源代码)

大致思路是将hdfs上的文本作为输入,MapReduce通过InputFormat会将文本进行切片处理,并将每行的首字母相对于文本文件的首地址的偏移量作为输入键值对的key,文本内容作为输入键值对的value,经过在map函数处理,输出中间结果<word,1>的形式,并在reduce函数中完成对每个单词的词频统计.整个程序代码主要包括两部分:Mapper部分和Reducer部分. Mapper代码 public static class doMapper extends Mapper<O