hadoop2.Xeclipse插件编译

一.简介

Hadoop2.x之后没有Eclipse插件工具,我们就不能在Eclipse 上调试代码,我们要把写好的java代码的MapReduce打包成jar然后在Linux上运行,所以这种不方便我们调试代码,所以我们自己编译一个 Eclipse插件,方便我们在我们本地上调试,经过hadoop1.x的发展,编译hadoop2.x版本的eclipse插件比之前简单多了。接下来 我 们开始编译Hadoop-eclipse-plugin插件,并在Eclipse开发Hadoop。

二.软件安装并配置

1.JDK配置

1) 安装jdk

2) 配置环境变量

JAVA_HOME、CLASSPATH、PATH等设置,这里就不多介绍,网上很多资料

2.Eclipse

1).下载eclipse-jee-juno-SR2.rar

2).解压到本地磁盘,如图所示:

3.Ant

1)下载

http://ant.apache.org/bindownload.cgi

apache-ant-1.9.4-bin.zip

2)解压到一个盘,如图所示:

3).环境变量的配置

新建ANT_HOME=E:\ant\apache-ant-1.9.4-bin\apache-ant-1.9.4

在PATH后面加;%ANT_HOME%\bin

4)cmd 测试一下是否配置正确

ant version   如图所示:

4.Hadoop

1).下载hadoop包

hadoop-2.6.0.tar.gz

解压到本地磁盘,如图所示:

下载hadoop2x-eclipse-plugin源代码

1)目前hadoop2的eclipse-plugins源代码由github脱管,下载地址是https://github.com/winghc/hadoop2x-eclipse-plugin,然后在右侧的Download ZIP连接点击下载,如图所示:

2)下载hadoop2x-eclipse-plugin-master.zip

解压到本地磁盘,如图所示:

三.编译hadoop-eclipse-plugin插件

1.hadoop2x-eclipse-plugin-master解压在E:盘打开命令行cmd,切换到E:\hadoop\hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin 目录,如图所示:

2.执行ant jar

antjar -Dversion=2.6.0 -Declipse.home=F:\tool\eclipse-jee-juno-SR2\eclipse-jee-juno-SR2 -Dhadoop.home=E:\hadoop\hadoop-2.6.0\hadoop-2.6.0,如图所示:

3.编译成功生成的hadoop-eclipse-plugin-2.6.0.jar在E:\hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin路径下,如图所示:

四.Eclipse配置hadoop-eclipse-plugin 插件

1.把hadoop-eclipse-plugin-2.6.0.jar拷贝到
F:\tool\eclipse-jee-juno-SR2\eclipse-jee-juno-SR2\plugins目录下,重启一下
Eclipse,然后可以看到DFS Locations,如图所示:

2.打开Window-->Preferens,可以看到Hadoop Map/Reduc选项,然后点击,然后添加hadoop-2.6.0进来,如图所示:

3.配置Map/ReduceLocations

1)点击Window-->Show View -->MapReduce Tools  点击Map/ReduceLocation

2)点击Map/ReduceLocation选项卡,点击右边小象图标,打开Hadoop Location配置窗口: 输入Location
Name,任意名称即可.配置Map/Reduce Master和DFS
Mastrer,Host和Port配置成hdfs-site.xml与core-site.xml的设置一致即可。

4.查看是否连接成功

五.运行新建WordCount 项目并运行

1.右击New->Map/Reduce Project

2.新建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.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.output.FileOutputFormat;

public class WordCount {

  public static class TokenizerMapper
       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);
      }
    }
  }

  public static class IntSumReducer
       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);
    }
  }

  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();
    Job job = Job.getInstance(conf, "word count");
    job.setJarByClass(WordCount.class);
    job.setMapperClass(TokenizerMapper.class);
    job.setCombinerClass(IntSumReducer.class);
    job.setReducerClass(IntSumReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    FileInputFormat.addInputPath(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}

3.在hdfs输入目录创建需要统计的文本

1)没有输入输出目录卡,先在hdfs上建个文件夹

#bin/hdfs dfs -mkdir –p  /user/root/input

#bin/hdfs dfs -mkdir -p  /user/root/output

2).把要统计的文本上传到hdfs的输入目录下

# bin/hdfs dfs -put/usr/local/hadoop/hadoop-2.6.0/test/* /user/root/input      //把tes/file01文件上传到hdfs的/user/root/input中

3).查看

#bin/hdfs dfs -cat /user/root/input/file01

4.点击WordCount.java右击-->Run As-->Run COnfigurations   设置输入和输出目录路径,如图所示:

5.点击WordCount.java右击-->Run
As-->Run on  Hadoop

然后到output/count目录下,有一个统计文件,并查看结果,所以配置成功。

五.注意的地方

我们在这篇介了,Eclipse连接Linux虚拟机上Hadoop并在Eclipse开发Hadoop的一些问题,解决Exception: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
等一系列问题

时间: 2024-11-10 10:25:09

hadoop2.Xeclipse插件编译的相关文章

window8.1编译hadoop2 eclipse插件,并远程调试hadoop程序

一.编译hadoop2 eclipse插件     1.安装ant 2.准备eclipse插件包,下载地址:http://pan.baidu.com/s/1i3myDvv 或者https://github.com/nemotan/hadoop2x-eclipse-plugin 3.解压插件包,进入主目录执行: ant jar -Dversion=2.6.0 -Declipse.home=F:\tool\eclipse-jee-juno-SR2\eclipse-jee-juno-SR2 -Dhad

Hadoop2.2.0 eclipse插件编译及Ecliipse配置说明(图文版)

一.引言: 最近在做一个城商行项目的POC测试it版本,涉及到编译Linux64bti的源码和开发插件使用,作为笔记分享给大家. 二.插件编译 Hadoop2x版本的Eclipse插件已经单独抽取成独立的开源项目,区别于之前版本直接集成到Hadoop1.x版本的模式,需要单独下载,下载网址: https://github.com/winghc/hadoop2x-eclipse-plugin 2.1 源码编译 1 hadoop2x-eclipse-plugin 2 ================

hadoop-2.2.0编译

由于从官网下载的hadoop中依赖包 native hadoop library是基于32位版本的,在64位机器上安装,会出现以下错误: 2014-05-30 19:47:49,703 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: registered UNIX signal handlers for [TERM, HUP, INT]2014-05-30 19:47:49,887 WARN org.apache.hadoop.hdfs

hadoop2.1.0编译安装教程(转载)

由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable的错误,但在实际测试中是可以正常安装并可以运行自带的w

Hadoop-2.7.6编译

1. 使用系统和软件 操作系统:CentOS Linux release 7.4.1708 (Core) 64位 使用软件如下: jdk1.8.0_112.tar.gz hadoop-2.7.6-src.tar.gz apache-ant-1.9.11-bin.tar.gz apache-maven-3.5.3-bin.tar.gz findbugs-3.0.1.tar.gz protobuf-2.5.0.tar.gz 2. 必要的包安装 [[email protected] ~]# yum i

hadoop2.6.0的eclipse插件编译和设置

1.编译hadoop2.6.0的eclipse插件 下载源码: git clone https://github.com/winghc/hadoop2x-eclipse-plugin.git 编译源码: cd src/contrib/eclipse-plugin ant jar -Dversion=2.6.0 -Declipse.home=/opt/eclipse -Dhadoop.home=/opt/hadoop-2.6.0 eclipse.home 和 hadoop.home 设置成你自己的

Hadoop2 自己动手编译Hadoop的eclipse插件

前言:       毕业两年了,之前的工作一直没有接触过大数据的东西,对hadoop等比较陌生,所以最近开始学习了.对于我这样第一次学的人,过程还是充满了很多疑惑和不解的,不过我采取的策略是还是先让环境跑起来,然后在能用的基础上在多想想为什么.       通过这三个礼拜(基本上就是周六周日,其他时间都在加班啊T T)的探索,我目前主要完成的是: 1.在Linux环境中伪分布式部署hadoop(SSH免登陆),运行WordCount实例成功. http://www.cnblogs.com/Pur

Hadoop1.2.1插件编译

本文介绍了Hadoop 1.2.1插件的编译步骤及编译后插件的配置. 1. 将Haoop 1.2.1源文件hadoop-1.2.1.tar.gz解压到D:\hadoop-1.2.1 2. 将项目导入Eclipse 3. 将build-contrib.xml拷贝到项目下. 4. 修改build.xml 1). 指定build-contrib.xml路径 <import file="./build-contrib.xml"/> 2). 添加Hadoop相关包到classpath

Nginx负载均衡优化插件编译及配置

一. Ngix依赖模块安装 Ngix依赖模块有:pcre.zlib.openssl.md5 /sha1(如果系统中没有安装相应模块,需要按照下列方式安装) 1. 安装pcre模块(8.35) 官方网站:http://www.pcre.org/ 安装命令: # unzip pcre-8.35.zip # cd pcre-8.35 # ./configure # make && make install 在64位linux系统中,nginx搜索的库位置为lib64:所以,需要建立软连接: #