`
caoruntao
  • 浏览: 480778 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

使用eclipse插件进行mapreduce程序开发和运行

阅读更多

一、环境说明

linux:redhat enterprise linux 5

hadoop:0.20.2

eclipse:3.4.2

jdk:1.6.21

ant:1.8.2

 

二、安装hadoop伪分布式

 

三、安装eclipse

把eclipse-SDK-3.4.2-linux-gtk.tar.gz解压到/home/hadoop/eclipse3.4.2

 

四、安装ant 1.8.2

1、把apache-ant-1.8.2-bin.tar.gz解压到/usr/apache-ant-1.8.2

2、设置/etc/profile:

export ANT_HOME=/usr/apache-ant-1.8.2
export PATH=$PATH:$ANT_HOME/bin

 

五、生成hadoop eclipse plugin

1、修改/usr/local/hadoop/hadoop-0.20.2/build.xml:

修改 <property name="version" value="0.20.2"/>

 

2、修改/usr/local/hadoop/hadoop-0.20.2/src/contrib/build-contrib.xml:

添加 <property name="eclipse.home" location="/home/hadoop/eclipse3.4.2"/>

 

3、修改 /usr/local/hadoop/hadoop-0.20.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/launch/HadoopApplicationLaunchShortcut.java

 

注释掉原来的//import org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut;
改为import org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut; 

4、下载jdk-1_5_0_22-linux-i586.bin,安装到/home/hadoop/jdk1.5.0_22,不用设置环境变量。

 

5、下载apache-forrest-0.8.tar.gz,解压到/home/hadoop/apache-forrest-0.8。

 

6、编译并打包

$ cd /usr/local/haoop/hdoop-0.20.2

$ ant compile
$ ln -sf /usr/local/hadoop/hadoop-0.20.2/docs  /usr/local/hadoop/hadoop-0.20.2/build/docs
$ ant package


      如果成功的话,会在/usr/local/hadoop/hadoop-0.20.2/build/contrib/eclipse-plugin

下生成hadoop-0.20.2-eclipse-plugin.jar。

 

六、设置eclipse

1、把hadoop-0.20.2-eclipse-plugin.jar复制到/home/hadoop/eclipse3.4.2/plugins下。

 

2、打开eclipse。

 

3、在eclipse中设置Window->Open Perspective->Other->Map/Reduce

 

4、新建project

File->New->Project->Map/Reduce Project

输入Project name:icas

Configure Hadoop install directory...



 
 


 



 



 

 



 

 

右键icas->properties


 
 

 

mapper类

package Sample;

import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class mapper extends Mapper<Object, Text, Text, IntWritable> {

  private final static IntWritable one = new IntWritable(1);
  private Text word = new Text();

  public void map(Object key, Text value, Context context)
      throws IOException, InterruptedException {
    StringTokenizer itr = new StringTokenizer(value.toString());
    while (itr.hasMoreTokens()) {
      word.set(itr.nextToken());
      context.write(word, one);
    }
  }
}

 

 

reducer类

package Sample;

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class reducer extends Reducer<Text, IntWritable, Text, IntWritable> {
  private IntWritable result = new IntWritable();

  public void reduce(Text key, Iterable<IntWritable> values, Context context)
      throws IOException, InterruptedException {
    int sum = 0;
    for (IntWritable val : values) {
      sum += val.get();
    }
    result.set(sum);
    context.write(key, result);
  }
}

 

mapreduce driver类

package Sample;

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.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {

  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();
    String[] otherArgs = new GenericOptionsParser(conf, args)
        .getRemainingArgs();
    if (otherArgs.length != 2) {
      System.err.println("Usage: wordcount <in> <out>");
      System.exit(2);
    }
    Job job = new Job(conf, "word count");
    job.setJarByClass(WordCount.class);
    job.setMapperClass(mapper.class);

    job.setCombinerClass(reducer.class);
    job.setReducerClass(reducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
    FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}

 

 

Run As—>Run Configurations->Arguments中输入:/user/hadoop/input/f1 /user/hadoop/output

 

Run As—>Java Application

 

  Run As—>Run on Hadoop

 

 

结果:



 

  • 大小: 42.7 KB
  • 大小: 21.6 KB
  • 大小: 38.7 KB
  • 大小: 20.6 KB
  • 大小: 30.4 KB
  • 大小: 81.1 KB
分享到:
评论

相关推荐

    使用Eclipse编译运行MapReduce程序.doc

    Eclipse作为流行的Java集成开发环境,配合Hadoop-Eclipse Plugin,使得在Eclipse中编写、调试和运行MapReduce程序变得非常方便。 ### 实验目的 1. 学习如何在Ubuntu/CentOS系统上使用Eclipse开发MapReduce程序。 2....

    window下eclipse中运行mapreduce程序所需要的Hadoop全部jar包

    6. **测试和运行**:编写MapReduce程序后,可以使用Eclipse的“运行”菜单选择“运行配置”来创建一个MapReduce配置。配置包括指定主类、输入输出路径、集群地址等参数。然后点击“运行”执行程序。 7. **提交作业*...

    eclipse運行mapreduce的插件

    标题提到的"eclipse運行mapreduce的插件"正是为了解决这个问题,它使得开发者可以在Eclipse内直接编写、调试和运行MapReduce程序,极大地提高了开发效率。 MapReduce是Google提出的一种分布式计算模型,用于处理和...

    使用IBM的MapReduce Tools for Eclipse插件简化Hadoop开发和部署文档

    总结来说,IBM的MapReduce Tools for Eclipse插件是一个强大的工具,它使得在Eclipse中开发、调试和部署Hadoop MapReduce程序变得更加便捷。借助该插件,开发者可以更快速地创建和优化MapReduce应用程序,同时减少了...

    eclipse的mapreduce插件

    Eclipse的MapReduce插件是Java开发人员在Eclipse集成开发环境中进行Hadoop MapReduce程序开发的重要工具。这个插件允许开发者直接在Eclipse中编写、调试和运行MapReduce作业,极大地提高了开发效率和便捷性。它通过...

    Hadoop集群搭建部署与MapReduce程序关键点个性化开发.doc

    接着,安装Hadoop-Eclipse-Plugin插件,该插件允许开发者在Eclipse中直接编写、调试和运行MapReduce程序。配置插件时,要确保指向正确的Hadoop安装路径,以便Eclipse能识别Hadoop环境。通过Eclipse操作HDFS文件,...

    eclipse运行MapReduce架包

    Eclipse插件`hadoop-eclipse-plugin-2.7.3.jar`使得开发人员能够在Eclipse中直接编写、调试和运行MapReduce任务,提供了极大的便利性。 首先,`hadoop-eclipse-plugin-2.7.3.jar`是Eclipse的Hadoop插件,用于与...

    Windows下Eclispe远程开发Mapreduce程序

    `hadoop-eclipse-plugin-2.6.0.jar`是一个Eclipse插件,它使得Eclipse可以直接与Hadoop集群交互,方便地开发和调试MapReduce程序。这个插件需要被放置在Eclipse的plugins目录下,即`${MyEclispe_HOME} /plugins`。 ...

    eclipse hadoop2 插件

    Eclipse Hadoop2 插件是为开发人员提供的一种强大工具,它允许用户在Eclipse集成开发环境中(IDE)直接编写、调试和管理Hadoop项目。这个插件针对Hadoop 2.x版本进行了优化,提供了丰富的功能来简化Hadoop应用程序的...

    IBM09年推出的一款基于eclipse的mapreduce小插件

    总的来说,这个IBM的MapReduce插件是为数据爱好者和开发人员提供了一个高效、便捷的开发环境,使得他们可以在Eclipse中轻松地进行MapReduce编程,从而更好地挖掘和分析大数据。通过这个插件,用户可以深入理解并行...

    mapreduce_eclipse开发需要的所有包

    在Eclipse中,开发者需要导入Hadoop的SDK或者相关的依赖库,这样可以在Eclipse环境中编写和调试MapReduce程序。 2. **Eclipse Hadoop插件**:如`Hadoop-Eclipse-Plugin`,这个插件允许开发者直接在Eclipse中创建、...

    hadoop eclipse mapreduce下开发所有需要用到的JAR包

    总结来说,"hadoop eclipse mapreduce下开发所有需要用到的JAR包"涉及到的是Hadoop MapReduce开发的环境配置,确保正确导入所有必要的依赖库,以便在Eclipse中编写、测试和运行MapReduce程序。这些JAR包是Hadoop生态...

    hadoop eclipse mapreduce 下开发所有需要用到的 JAR 包

    在Hadoop生态系统中,Eclipse是一个常用的集成开发环境(IDE),用于编写MapReduce程序。...通过熟练掌握这些JAR包和开发流程,你将能够充分利用Hadoop Eclipse插件进行高效、便捷的MapReduce开发。

    hadoop-2.5.0-eclipse插件

    而Hadoop-2.5.0-eclipse插件则是为Eclipse集成开发环境(IDE)设计的一个扩展,帮助开发者在Eclipse中直接编写、调试和运行Hadoop MapReduce程序。 该插件的安装非常简单,只需将`hadoop-eclipse-plugin-2.5.0.jar`...

    hadoop各版本的eclipse插件

    当开发者需要在Eclipse中编写和调试Hadoop应用程序时,就需要使用特定的Hadoop Eclipse插件。本资料包含的是针对Hadoop不同版本的Eclipse插件,包括0.20和1.0版本。 1. Hadoop Eclipse插件的作用: Hadoop Eclipse...

    hadoop-eclipse插件各版本合集

    Hadoop-Eclipse插件是Apache Hadoop项目与Eclipse IDE集成的一个重要工具,它使得Hadoop开发者能够在Eclipse环境中直接创建、编辑、调试和管理Hadoop MapReduce作业,极大地提升了开发效率。本合集包含了多个版本的...

    eclipse-linux软件包-包含mapreduce的jar包

    Eclipse集成MapReduce的jar包意味着开发人员可以直接在Eclipse环境中编写、调试和运行MapReduce程序,无需离开熟悉的IDE。这对于开发Hadoop应用来说是一个巨大的便利,因为这样可以利用Eclipse的强大功能,如代码...

    hadoop eclipse插件

    Hadoop Eclipse插件是开发Hadoop MapReduce程序的重要工具,它允许开发者在本地Eclipse集成开发环境中直接编写、测试和调试Hadoop作业,极大地提高了开发效率。以下是对这个插件的详细说明: 首先,安装Hadoop ...

    hadoop2.7.3 eclipse插件

    本篇将详细介绍如何利用Hadoop 2.7.3的Eclipse插件进行开发,并阐述相关知识点。 首先,Hadoop Eclipse插件是一个强大的工具,它允许开发者直接在Eclipse环境中创建、编辑和管理Hadoop MapReduce项目。这个插件提供...

Global site tag (gtag.js) - Google Analytics