前面,我们已经通过eclipse下安装Hadoop的插件配置好了基于Hadoop+eclipse的MapReduce开发环境。现在,我们在这个Hadoop+eclipse环境下运行MapReduce程序。

一、新建MapReduce项目

【 File】—>【new】->【Project】,选择【Map/Reduce Project】,单击下一步,设置项目名称为WordCount,确定。

在WordCount项目下,新建类,类名为WordCount,其程序内容为WordCount.java。

二、设置HDFS的输入文件

hadoop fs -mkdir input
hadoop fs -copyFromLocal WordCount.txt input

我将WordCount.java源程序的内容拷到了WordCount.txt内,并上传到Input中作为程序的输入。

三、配置eclipse的运行参数

对本项目右键->【run】->【Run Configurations】,单击中间的Arguments,并设置输入输出参数。在Program arguments栏中输入:

hdfs://master:9000/user/abc/input   hdfs://master:9000/user/abc/output

其中abc是用户名,根据自己的用户名调整,可以在web方式下输入地址:master:50070后查看相关信息。

本文中的master是在localhost上,因为master可以替换成localhost。

点击【Run】或对本项目->【Run As】->【Run on Hadoop】,运行MapReduce程序。

四、查看运行结果

点击【Run】后,eclipse的输出窗口中会显示,MapReduce程序运行的状态:

15/11/23 17:47:06 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
15/11/23 17:47:07 WARN mapred.JobClient: No job jar file set.  User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
15/11/23 17:47:07 INFO input.FileInputFormat: Total input paths to process : 1
15/11/23 17:47:07 INFO mapred.JobClient: Running job: job_local_0001
15/11/23 17:47:07 INFO input.FileInputFormat: Total input paths to process : 1
15/11/23 17:47:07 INFO mapred.MapTask: io.sort.mb = 100
15/11/23 17:47:09 INFO mapred.JobClient:  map 0% reduce 0%
15/11/23 17:47:11 INFO mapred.MapTask: data buffer = 79691776/99614720
15/11/23 17:47:11 INFO mapred.MapTask: record buffer = 262144/327680
15/11/23 17:47:11 INFO mapred.MapTask: Starting flush of map output
15/11/23 17:47:12 INFO mapred.MapTask: Finished spill 0
15/11/23 17:47:12 INFO mapred.TaskRunner: Task:attempt_local_0001_m_000000_0 is done. And is in the process of commiting
15/11/23 17:47:12 INFO mapred.LocalJobRunner:
15/11/23 17:47:12 INFO mapred.TaskRunner: Task 'attempt_local_0001_m_000000_0' done.
15/11/23 17:47:12 INFO mapred.LocalJobRunner:
15/11/23 17:47:12 INFO mapred.Merger: Merging 1 sorted segments
15/11/23 17:47:12 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 2723 bytes
15/11/23 17:47:12 INFO mapred.LocalJobRunner:
15/11/23 17:47:12 INFO mapred.JobClient:  map 100% reduce 0%
15/11/23 17:47:13 INFO mapred.TaskRunner: Task:attempt_local_0001_r_000000_0 is done. And is in the process of commiting
15/11/23 17:47:13 INFO mapred.LocalJobRunner:
15/11/23 17:47:13 INFO mapred.TaskRunner: Task attempt_local_0001_r_000000_0 is allowed to commit now
15/11/23 17:47:13 INFO output.FileOutputCommitter: Saved output of task 'attempt_local_0001_r_000000_0' to hdfs://master:9000/user/abc/output4
15/11/23 17:47:13 INFO mapred.LocalJobRunner: reduce > reduce
15/11/23 17:47:13 INFO mapred.TaskRunner: Task 'attempt_local_0001_r_000000_0' done.
15/11/23 17:47:13 INFO mapred.JobClient:  map 100% reduce 100%
15/11/23 17:47:13 INFO mapred.JobClient: Job complete: job_local_0001
15/11/23 17:47:13 INFO mapred.JobClient: Counters: 14
15/11/23 17:47:13 INFO mapred.JobClient:   FileSystemCounters
15/11/23 17:47:13 INFO mapred.JobClient:     FILE_BYTES_READ=35973
15/11/23 17:47:13 INFO mapred.JobClient:     HDFS_BYTES_READ=4938
15/11/23 17:47:13 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=72594
15/11/23 17:47:13 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=2266
15/11/23 17:47:13 INFO mapred.JobClient:   Map-Reduce Framework
15/11/23 17:47:13 INFO mapred.JobClient:     Reduce input groups=0
15/11/23 17:47:13 INFO mapred.JobClient:     Combine output records=114
15/11/23 17:47:13 INFO mapred.JobClient:     Map input records=119
15/11/23 17:47:13 INFO mapred.JobClient:     Reduce shuffle bytes=0
15/11/23 17:47:13 INFO mapred.JobClient:     Reduce output records=0
15/11/23 17:47:13 INFO mapred.JobClient:     Spilled Records=228
15/11/23 17:47:13 INFO mapred.JobClient:     Map output bytes=3100
15/11/23 17:47:13 INFO mapred.JobClient:     Combine input records=176
15/11/23 17:47:13 INFO mapred.JobClient:     Map output records=176
15/11/23 17:47:13 INFO mapred.JobClient:     Reduce input records=114

在eclipse的左上角DFS Locations下可以查看输入和输出结果,output下的part-r-00000即是WordCount程序的运行结果文件。

我这里因为多次运行,所以有多个output文件。

也可以在终端方式下查看运行结果:

hadoop fs -cat output/*

同时,在web方式下输入master:50070后进去查看运行结果也是可以的。
这次WordCount程序的运行结果为:

!=    1
"word    1
(IntWritable    1
(itr.hasMoreTokens())    1
(otherArgs.length    1
+=    1
0    1
0;    1
1);    1
2)    1
:    2
<in>    1
<out>");    1
=    8
?    1
Configuration();    1
Context    1
Exception    1
GenericOptionsParser(conf,    1
IOException,    2
IntSumReducer    1
IntWritable    2
IntWritable();    1
IntWritable(1);    1
IntWritable>{    1
InterruptedException    2
Iterable<IntWritable>    1
Job(conf,    1
Mapper<Object,    1
Path(otherArgs[0]));    1
Path(otherArgs[1]));    1
Reducer<Text,IntWritable,Text,IntWritable>    1
StringTokenizer(value.toString());    1
Text    2
Text();    1
Text,    2
TokenizerMapper    1
WordCount    1
args)    1
args).getRemainingArgs();    1
class    3
conf    1
context)    2
count");    1
extends    2
final    1
import    12
itr    1
java.io.IOException;    1
java.util.StringTokenizer;    1
job    1
key,    2
main(String[]    1
map(Object    1
new    9
one    1
one);    1
org.apache.hadoop.conf.Configuration;    1
org.apache.hadoop.fs.Path;    1
org.apache.hadoop.io.IntWritable;    1
org.apache.hadoop.io.Text;    1
org.apache.hadoop.mapreduce.Job;    1
org.apache.hadoop.mapreduce.Mapper;    1
org.apache.hadoop.mapreduce.Reducer;    1
org.apache.hadoop.mapreduce.lib.input.FileInputFormat;    1
org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;    1
org.apache.hadoop.util.GenericOptionsParser;    1
otherArgs    1
public    4
reduce(Text    1
result    1
result);    1
static    4
sum    1
throws    3
val    1
val.get();    1
value,    1
values)    1
values,Context    1
void    3
word    1
wordcount    1
{    8
}    4
  Configuration    1
  FileInputFormat.addInputPath(job,    1
  FileOutputFormat.setOutputPath(job,    1
  Job    1
  String[]    1
  System.exit(job.waitForCompletion(true)    1
  if    1
  job.setCombinerClass(IntSumReducer.class);    1
  job.setJarByClass(WordCount.class);    1
  job.setMapperClass(TokenizerMapper.class);    1
  job.setOutputKeyClass(Text.class);    1
  job.setOutputValueClass(IntWritable.class);    1
  job.setReducerClass(IntSumReducer.class);    1
  private    3
  public    2
  }    3
    StringTokenizer    1
    System.err.println("Usage:    1
    System.exit(2);    1
    context.write(key,    1
    for    1
    int    1
    result.set(sum);    1
    }    1
      sum    1
      while    1
      }    1
        context.write(word,    1
        word.set(itr.nextToken());    1

Hadoop+eclipse运行MapReduce程序相关推荐

  1. eclipse 运行MapReduce程序错误异常汇总(解决Map not fount)

    错误一: Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class wordCount.wordCount$ ...

  2. 使用eclipse运行mapreduce程序

    今天使用http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504205.html上的方式搭建一个基于Eclipse的mapreduce开发环境,在 ...

  3. 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu

    上篇介绍了使用命令行编译打包运行自己的MapReduce程序,使用 Eclipse 更加方便.要在 Eclipse 上编译和运行 MapReduce 程序,需要安装 hadoop-eclipse-pl ...

  4. windows环境下Eclipse开发MapReduce程序遇到的四个问题及解决办法

    按此文章<Hadoop集群(第7期)_Eclipse开发环境设置>进行MapReduce开发环境搭建的过程中遇到一些问题,饶了一些弯路,解决办法记录在此: 文档目的: 记录windows环 ...

  5. linux系统运行MapReduce程序报错:exitCode 127

    linux系统运行MapReduce程序报错:exitCode 127 hadoop mapreduce 出现 /bin/bash: /bin/java: No such file or direct ...

  6. 如何在Hadoop上编写MapReduce程序

    1. 概述 1970年,IBM的研究员E.F.Codd博士在刊物<Communication of the ACM>上发表了一篇名为"A Relational Model of ...

  7. 关于Hadoop下运行MapReduce任务卡在Map0%和Reduce0%的解决办法

    关于Hadoop下运行MapReduce任务卡在Map0%和Reduce0%的解决办法 检查核心配置 mapred-site.xml文件 检查以下配置信息,如果没有该信息,则添加上去 放个对比图吧(这 ...

  8. hadoop大数据——mapreduce程序提交运行模式及debug方法

    本地运行模式 (1)mapreduce程序是被提交给LocalJobRunner在本地运行 (2)而处理的数据及输出结果可以在本地文件系统,也可以在hdfs上 怎样实现本地运行?:写一个程序,不要带集 ...

  9. hadoop jar包_计算机毕业设计中hadoop上运行Java程序

    点击上方"蓝字",关注我们. 第一种:原生态运行jar包 1,利用eclipse编写Map-Reduce方法,一般引入Hadoop-core-1.1.2.jar.注意这里eclip ...

最新文章

  1. 李刚java视频_《Srping视频教程》疯狂Java 李刚老师[WMV]
  2. 134安装教程_PS教程连载第135课:PS第三方插件安装方法
  3. 分数优先遵循志愿php源码_天津中考录取16字原则:分数优先、遵循志愿、一次投档、额满为止...
  4. js 计算任意凸多边形内最大矩形_题库 | 计算机视觉常见面试题型介绍及解答 第 7 期...
  5. 0619-dedeCMS的安装、重装、目录说明、基本操作及注意事项
  6. 【Java多线程】并发时的线程安全:快乐影院示例
  7. 使用dockerfile自动化构建镜像
  8. 【动态规划笔记】区间dp:括号匹配(删除字符和括号匹配)
  9. 基于Spring MVC的Excel文件上传
  10. 模拟实现memcpy、memmove函数
  11. Java 使用反射 Class.forName() 报错java.lang.ClassNotFoundException 的解决办法
  12. 数据分析专题报告范文6篇_阿里大佬是怎么写数据分析报告的?
  13. 云端抢红包能从服务器看到我微信操作吗,微信抢红包暗藏规律 悄悄告诉你诀窍...
  14. 常见电容器图片_最强汇总:燃油锅炉常见故障分析与解决方法简单粗暴!编辑不易!...
  15. JavaScript基础教程第8版-例1-Bingo卡片游戏
  16. java 生成der_java – 我们如何将字符串从PEM转换为DER格式
  17. python floor是什么意思_python里floor怎么用
  18. 图解Topo拓扑排序
  19. postgresql立式版本下载_PostgreSQL下载_PostgreSQL最新官方版下载_3DM单机
  20. matlab怎么读txt文件字符串,Matlab中读取txt文件的几种方法

热门文章

  1. Java Review - 线程池资源一直不被释放案例源码分析
  2. 深入理解分布式技术 - 消息队列知识点回顾总结
  3. Spring-AOP @AspectJ切点函数之@within()和@target
  4. android fragment传递数据,Android 两个Fragment之间传递数据实例详解
  5. 学习笔记(二十二)—— 了解进程和线程
  6. 运行VC++6.0出现error LNK2001: unresolved external symbol _WinMain@16
  7. json html显示中文乱码,后台请求json文件,中文出现乱码
  8. 使用adb命令控制Android
  9. Linux 使用ps命令查看某个进程文件的启动位置
  10. php丢弃,在IIS 7.5中,PHP吓坏了(连接丢失,连接被丢弃)