[0012] Hadoop 版hello word mapreduce wordcount 运行(二)

目的:

学习Hadoop mapreduce 开发环境eclipse windows下的搭建

环境:

Winows 7 64 eclipse,直接运行mapreduce 到服务器,结果输出到eclipse

Hadoop2.6.4环境

准备:

Hadoop2.6.4的源码包

相关:

[0004] Hadoop 版hello word mapreduce wordcount 运行

[0011] windows 下 eclipse 开发 hdfs程序样例 (三)

[0008] Windows 7 下 hadoop 2.6.4 eclipse 本地开发调试配置

1.新建项目

1.1 新建项目、导入hadoop开发包

详细参考

[0007] windows 下 eclipse 开发 hdfs程序样例  1 新建项目

1.2 可选,如果后续执行报错,回头执行这一步

将hadoop下的一个源码包导入,参考 [0008] Y.2.1.b步骤    ,如果还有其他问题 参考[0008]整个搭建过程涉及的设置。

2 新建wordcount类

代码如下

 1 package hdfs;
 2
 3 import java.io.IOException;
 4 import java.util.*;
 5
 6 import org.apache.hadoop.fs.Path;
 7 import org.apache.hadoop.conf.*;
 8 import org.apache.hadoop.io.*;
 9 import org.apache.hadoop.mapreduce.*;
10 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
11 import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
12 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
13 import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
14
15 /**
16  * 描述:WordCount explains by xxm
17  * @author xxm
18  */
19 public class WordCount {
20
21  /**
22  * Map类:自己定义map方法
23  */
24  public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {
25     /**
26     * LongWritable, IntWritable, Text 均是 Hadoop 中实现的用于封装 Java 数据类型的类
27     * 都能够被串行化从而便于在分布式环境中进行数据交换,可以将它们分别视为long,int,String 的替代品。
28     */
29     private final static IntWritable one = new IntWritable(1);
30     private Text word = new Text();
31     /**
32     * Mapper类中的map方法:
33     * protected void map(KEYIN key, VALUEIN value, Context context)
34     * 映射一个单个的输入k/v对到一个中间的k/v对
35     * Context类:收集Mapper输出的<k,v>对。
36     */
37     public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
38         String line = value.toString();
39         StringTokenizer tokenizer = new StringTokenizer(line);
40         while (tokenizer.hasMoreTokens()) {
41             word.set(tokenizer.nextToken());
42             context.write(word, one);
43         }
44     }
45  }
46
47  /**
48  * Reduce类:自己定义reduce方法
49  */
50  public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {
51
52     /**
53     * Reducer类中的reduce方法:
54     * protected void reduce(KEYIN key, Interable<VALUEIN> value, Context context)
55     * 映射一个单个的输入k/v对到一个中间的k/v对
56     * Context类:收集Reducer输出的<k,v>对。
57     */
58     public void reduce(Text key, Iterable<IntWritable> values, Context context)
59       throws IOException, InterruptedException {
60         int sum = 0;
61         for (IntWritable val : values) {
62             sum += val.get();
63         }
64         context.write(key, new IntWritable(sum));
65     }
66  }
67
68  /**
69  * main主函数
70  */
71  public static void main(String[] args) throws Exception {
72
73     Configuration conf = new Configuration();//创建一个配置对象,用来实现所有配置
74 //    conf.set("fs.defaultFS", "hdfs://ssmaster:9000/");
75
76     Job job = new Job(conf, "wordcount");//新建一个job,并定义名称
77
78     job.setOutputKeyClass(Text.class);//为job的输出数据设置Key类
79     job.setOutputValueClass(IntWritable.class);//为job输出设置value类
80
81     job.setMapperClass(Map.class); //为job设置Mapper类
82     job.setReducerClass(Reduce.class);//为job设置Reduce类
83     job.setJarByClass(WordCount.class);
84
85     job.setInputFormatClass(TextInputFormat.class);//为map-reduce任务设置InputFormat实现类
86     job.setOutputFormatClass(TextOutputFormat.class);//为map-reduce任务设置OutputFormat实现类
87
88     FileInputFormat.addInputPath(job, new Path(args[0]));//为map-reduce job设置输入路径
89     FileOutputFormat.setOutputPath(job, new Path(args[1]));//为map-reduce job设置输出路径
90     job.waitForCompletion(true); //运行一个job,并等待其结束
91  }
92
93 }

3 执行

eclipse指定 输入输出,执行 ,可以参考[0008] 4.3,4.4执行过程

hdfs://ssmaster:9000/input
hdfs://ssmaster:9000/output

正常控制台的输出结果,和在linux上 hadoop jar执行的输出结果一致。

时间: 2024-10-13 20:04:01

[0012] Hadoop 版hello word mapreduce wordcount 运行(二)的相关文章

[0004] Hadoop 版hello word mapreduce wordcount 运行

目的: 初步感受一下hadoop mapreduce 环境: hadoop 2.6.4 1 准备输入文件 paper.txt 内容一般为英文文章,随便弄点什么进去 [email protected]:~$ hadoop fs -mkdir /input [email protected]:~$ ls Desktop Documents Downloads examples.desktop hadoop-2.6.4.tar.gz Music paper.txt Pictures Public Te

Hadoop之MapReduce WordCount运行

搭建好Hadoop集群环境或者单机环境,并运行,MapReduce进程要起来 1. 假设已经配置了下列环境变量 export JAVA_HOME=/usr/java/default export PATH=$JAVA_HOME/bin:$PATH export HADOOP_CLASSPATH=$JAVA_HOME/lib/tools.jar 2.创建2个测试文件,并上传到Hadoop HDFS中 [[email protected]one temp]$ cat file01 Hello Wor

Hadoop版Helloworld之wordcount运行示例

1.编写一个统计单词数量的java程序,并命名为wordcount.java,代码如下: import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoo

Hadoop下面WordCount运行详解

单词计数是最简单也是最能体现MapReduce思想的程序之一,可以称为MapReduce版"Hello World",该程序的完整代码可以在Hadoop安装包的"src/examples"目录下找到.单词计数主要完成功能是:统计一系列文本文件中每个单词出现的次数,如下图所示. 现在我们以"hadoop"用户登录"Master.Hadoop"服务器. 1. 创建本地的示例数据文件: 依次进入[Home]-[hadoop]-[ha

win7 64位下安装hadoop的eclipse插件并编写运行WordCount程序

win7 64位下安装hadoop的eclipse插件并编写运行WordCount程序 环境: win7 64位 hadoop-2.6.0 步骤: 1.下载hadoop-eclipse-plugin-2.6.0.jar包 2.把hadoop-eclipse-plugin-2.6.0.jar放到eclipse安装目录下的plugins目录下 3.打开eclipse发现左边多出来一个DFS Locations 4.在win7上解压hadoop-2.6.0. 5.下载hadoop.dll.winuti

hadoop wordCount运行

本文以康哥的博客为基础进行修改和补充,详见:http://kangfoo.github.io/article/2014/01/hadoop1.x-wordcount-fen-xi/ hadoop mapreduce 过程粗略的分为两个阶段: 1.map; 2.redurce(copy, sort, reduce) 具体的工作机制还是挺复杂的,这里主要通过hadoop example jar中提供的wordcount来对hadoop mapredurce做个简单的理解. Wordcount程序输入

(三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序

配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序 一.   需求部分 在ubuntu上用Eclipse IDE进行hadoop相关的开发,需要在Eclipse上安装hadoop的开发插件.最新释放出的hadoop包含源码的包,以 hadoop-1.X为例,包含相关的eclipse插件的源码,因此可以针对自己的eclipse版本来编译一个合适hadoop的eclipse插件.下面将详细介绍插件的编译安装过程,以及在Eclipse上配置hadoop开发插

Windows 使用Eclipse编译运行MapReduce --WordCount 本地调式

一 . 准备工作 操作系统:windows 10 开发工具:eclipse 4.5 java虚拟机 :jdk 1.8  (jdk-8u91-windows-x64.exe) 官网下载地址http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-windows-x64.exe hadoop版本:hadoop2.6 (hadoop-2.6.4.tar.gz) 官网下载地址http://apache.fayea.com/hadoop/c

hadoop笔记之MapReduce的运行流程

MapReduce的运行流程 MapReduce的运行流程 基本概念: Job&Task:要完成一个作业(Job),就要分成很多个Task,Task又分为MapTask和ReduceTask JobTracker TaskTracker Hadoop MapReduce体系结构 JobTracker的角色 作业调度 分配任务.监控任务执行进度 监控TaskTracker的状态 TaskTracker的角色 执行任务 汇报任务状态 MapReduce作业执行过程 MapReduce的容错机制 重复