Eclipse环境搭建并且运行wordcount程序

一、安装Hadoop插件

  1. 所需环境

      hadoop2.0伪分布式环境平台正常运行

    所需压缩包:eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz
          在Linux环境下运行的eclipse软件压缩包,解压后文件名为eclipse
          hadoop2x-eclipse-plugin-master.zip
          在eclipse中需要安装的Hadoop插件,解压后文件名为hadoop2x-eclipse-plugin-master

    如图所示,将所有的压缩包放在同一个文件夹下并解压。

      

  2.编译jar包

      编译hadoop2x-eclipse-plugin-master的plugin 的插件源码,需要先安装ant工具

      

      接着输入命令:

ant jar -Dversion=2.6.0 -Declipse.home=‘/home/xiaow/hadoop2.0/eclipse‘  # 刚才放进去的eclipse软件包的路径
              -Dhadoop.home=‘/home/xiaow/hadoop2.0/hadoop-2.6.0‘  # hadoop安装文件的路径

      

      等待一小会时间就好了
      编译成功后,找到放在 /home/xiaow/ hadoop2.0/hadoop2x-eclipse-pluginmaster/build/contrib/eclipse-plugin下, 名为hadoop-eclipse-plugin-2.6.0.jar的jar包, 并将其拷贝到/hadoop2.0/eclipse/plugins下

      输入命令:

cp -r /home/xiaow/hadoop2.0/hadoop2x-eclipse-plugin-master/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.6.0.jar /home/xiaow/hadoop2.0/eclipse/plugins/

      

      

      

二、Eclipse配置

    接下来打开eclipse软件

    

    一定要出现这个图标,没有出现的话前面步骤可能错了,或者重新启动几次Eclipse

    

    然后按照下面的截图操作:

    

    

    

    

    如此,Eclipse环境搭建完成。

三、wordcount程序

    建工程:

    

    

    

    

    

    输入如下代码:

package wordcount;

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.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
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;
import org.apache.hadoop.mapreduce.lib.reduce.IntSumReducer;
import org.apache.hadoop.util.GenericOptionsParser;

public class wordcount {  

	// 自定义的mapper,继承org.apache.hadoop.mapreduce.Mapper
    public static class WordCountMap extends Mapper<LongWritable, Text, Text, IntWritable> {  

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

        //  Mapper<LongWritable, Text, Text, LongWritable>.Context context
        public void map(LongWritable key, Text value, Context context)   throws IOException, InterruptedException {
            String line = value.toString();
            System.out.println(line);
            // split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回,这里按照“\t”来分割text文件中字符,即一个制表符
            // ,这就是为什么我在文本中用了空格分割,导致最后的结果有很大的出入
            StringTokenizer token = new StringTokenizer(line);
            while (token.hasMoreTokens()) {
                word.set(token.nextToken());
                context.write(word, one);
            }
        }
    }  

    // 自定义的reducer,继承org.apache.hadoop.mapreduce.Reducer
    public static class WordCountReduce extends Reducer<Text, IntWritable, Text, IntWritable> {  

    	// Reducer<Text, LongWritable, Text, LongWritable>.Context context
        public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
        	System.out.println(key);
        	System.out.println(values);
            int sum = 0;
            for (IntWritable val : values) {
                sum += val.get();
            }
            context.write(key, new IntWritable(sum));
        }
    }  

    //  客户端代码,写完交给ResourceManager框架去执行
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        Job job = new Job(conf,"word count"); 

        //  打成jar执行
        job.setJarByClass(wordcount.class);     

        //  数据在哪里?
        FileInputFormat.addInputPath(job, new Path(args[0])); 

        //  使用哪个mapper处理输入的数据?
        job.setMapperClass(WordCountMap.class);
        //  map输出的数据类型是什么?
        //job.setMapOutputKeyClass(Text.class);
        //job.setMapOutputValueClass(LongWritable.class);

        job.setCombinerClass(IntSumReducer.class);

        //  使用哪个reducer处理输入的数据
        job.setReducerClass(WordCountReduce.class); 

        //  reduce输出的数据类型是什么?
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);  

//        job.setInputFormatClass(TextInputFormat.class);
//        job.setOutputFormatClass(TextOutputFormat.class);  

        //  数据输出到哪里?
        FileOutputFormat.setOutputPath(job, new Path(args[1]));  

        //  交给yarn去执行,直到执行结束才退出本程序
        job.waitForCompletion(true);  

        /*
        String[] otherArgs = new GenericOptionsParser(conf,args).getRemainingArgs();
        if(otherArgs.length<2){
        	System.out.println("Usage:wordcount <in> [<in>...] <out>");
        	System.exit(2);
        }
        for(int i=0;i<otherArgs.length-1;i++){
        	FileInputFormat.addInputPath(job, new Path(otherArgs[i]));
        }
        System.exit(job.waitForCompletion(tr0ue)?0:1);
        */
    }
}

    

    

    

     

    将准备到的文档导入进去

    

    

    目录结构如下:

    

    运行mapreduce程序

    

    

    

    

    

    OK,搞定收工!!!

    

原文地址:https://www.cnblogs.com/xiaoyh/p/9885678.html

时间: 2024-11-06 14:41:39

Eclipse环境搭建并且运行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开发插

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

在ubuntu上安装eclipse同时连接hadoop运行wordcount程序

起先我是在win7 64位上远程连接hadoop运行wordcount程序的,但是这总是需要网络,考虑到这一情况,我决定将这个环境转移到unbuntu上 需要准备的东西 一个hadoop的jar包,一个连接eclipse的插件(在解压的jar包里有这个东西),一个hadoop-core-*.jar(考虑到连接的权限问题) 一个eclipse的.tar.gz包(其它类型的包也可以,eclipse本身就是不需要安装的,这里就不多说了) 因为我之前在win7上搭建过这个环境,所以一切很顺利,但还是要在

一步一步跟我学习hadoop(2)----hadoop eclipse插件安装和运行wordcount程序

本博客hadoop版本是hadoop  0.20.2. 安装hadoop-0.20.2-eclipse-plugin.jar 下载hadoop-0.20.2-eclipse-plugin.jar文件,并添加到eclipse插件库,添加方法很简单:找到eclipse安装目录下的plugins目录,直接复制到此目录下,重启eclipse 依次点击eclipse工具栏的window-----show view ------other在弹出的窗口中输入map,确认找到如下所示 到这里插件安装成功 map

021_在Eclipse Indigo中安装插件hadoop-eclipse-plugin-1.2.1.jar,直接运行wordcount程序

1.工具介绍 Eclipse Idigo.JDK1.7-32bit.hadoop1.2.1.hadoop-eclipse-plugin-1.2.1.jar(自己网上下载) 2.插件安装步骤 1)将hadoop-eclipse-plugin-1.2.1.jar放到eclipse安装目录的plugins文件夹中,重新启动eclipse. 2)打开Window-->Preferens,发现Hadoop Map/Reduce选项,说明插件安装成功,配置Hadoop installation direct

scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/download/sdk.html 根据自己的机器配置选择合适的IDE: 我这里选择For scala2.11 版本的Windows 32 bit的IDE,单击即下载. scala安装: 安装包下载地址,进入官网:http://www.scala-lang.org/ 进入DOWNLOAD下,选择scala 2.11 版本,单击下载: Windows上安装scala 2.11: 单击运行sca

(3)windows下hadoop+eclipse环境搭建

(1)环境说明 hadoop的集群环境我已经在虚拟机上搭建并能正常运行(见前2篇文章),现在我要在windows下搭建hadoop+eclipse的开发环境. (2)安装hadoop-eclipse-plugin-1.1.2.jar插件 hadoop-eclipse-plugin-1.1.2.jar这个插件大家可以自己编译,或者直接到网上下载.我是直接在网上下载安装. 下载好后,将hadoop-eclipse-plugin-1.1.2.jar放到eclipse安装目录下的plugins文件夹下.

在linux环境下编译运行OpenCV程序的两种方法

原来以为在Ubuntu下安装好了OpenCV之后,自己写个简单的程序应该很容易吧,但是呢,就是为了编译一个简单的显示图片的程序我都快被弄崩溃了. 在谷歌和上StackOverFlow查看相关问题解答之后,我下面就介绍Command Line和CMake两种方式. 首先我先粘上我测试的代码吧,文件名为Test.c 1 #include <highgui.h> 2 3 int main(int argc,char ** argv) { 4 5 IplImage* img = cvLoadImage

Mac系统下STF的环境搭建和运行

本文参考以下文章整理:MAC 下 STF 的环境搭建和运行 一. 前言 STF,全称是Smartphone Test Farm,WEB 端批量移动设备管理控制工具,就是可以用浏览器来批量控制你的移动设备,目前只支持Android设备. 二.环境搭建 1. 安装xcode和xcode 命令行工具 (安装Macport需要) Xcode:直接在App Store下载安装 Xcode Command Line Tools:在terminal中输入以下命令,然后在弹出的安装步骤中猛点下一步自动安装. 1