在 Eclipse 环境下可以方便地进行 Hadoop 并行程序的开发和调试。前提是安装hadoop-eclipse-plugin,利用这个 plugin, 可以在 Eclipse 中创建一个 Hadoop MapReduce 应用程序,并且提供了一些基于 MapReduce 框架的类开发的向导,可以打包成 JAR 文件,部署一个 Hadoop MapReduce 应用程序到一个 Hadoop 服务器(本地和远程均可),可以通过一个专门的视图 ( perspective ) 查看 Hadoop 服务器、Hadoop 分布式文件系统( DFS )和当前运行的任务的状态。

但hadoop2.2.0未提供该插件的二进制安装包,需要自己编译源码生成。

1、编译hadoop-eclipse-plugin

源码下载地址:https://github.com/winghc/hadoop2x-eclipse-plugin

1.1 编译前需要先安装Ant,

wget http://apache.dataguru.cn//ant/binaries/apache-ant-1.9.3-bin.tar.gz

tar -zxvf  apache-ant-1.9.3-bin.tar.gz

mv apache-ant-1.9.3  ant1.9.3

vi  /etc/profile

export ANT_HOME=/home/hadoop/ant1.9.3
export PATH=$PATH:$ANT_HOME/bin

source /etc/profile

ant -version

1.2 编译

cd {ANT_HOME}/src/contrib/eclipse-plugin

ant jar -Dversion=2.2.0 -Declipse.home=/home/hadoop/eclipse -Dhadoop.home=/home/hadoop/hadoop2.2

上述命令中的两个路径分别是eclipse和hadoop的安装根目录,根据自己的实际情况输入。

编译过程中ivy要下载很多包,如果网络不是很好,请耐心等待。

编译成功后会在{ANT_HOME}/build/contrib/eclipse-plugin下生成hadoop-eclipse-plugin-2.2.0.jar包,将其拷贝到Eclipse的dropins目录下,重启Eclipse即可看到该插件已生效。

2、配置插件

2.1 打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory。

其中的“hadoop installation directory”配置项用于指向你的hadoop安装目录(在windows下只需要把linux上编译好的Hadoop2.2.0拷贝到某个位置,然后指向这个位置即可)。

2.2 通过Window->Show View中打开Map/Reduce Locations,右键-->New Hadoop Location。

在弹出的对话框中你需要配置Location name,还有Map/Reduce Master和DFS Master。如图:

这里面的Host、Port分别为你在core-site.xml中配置的地址及端口。

2.3 通过Window->Open Perspective菜单打开Map Reduce视图,如下:

如果点击DFS Locations-->LocalHadoop如果能显示文件夹(*)说明配置正确,*表示包含的文件夹个数。

3、新建项目

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

上一篇文章中我们测试的WordCount程序的源码可在以下目录中找到,

hadoop-2.2.0-src/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/

将WordCount.java添加到项目中。

测试数据继续使用上一篇构建的数据。

4、运行项目

右键-->Run As-->Run Configurations

在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount

配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”

hdfs://192.168.20.50:8020/input   hdfs://192.168.20.50:8020/output

点击运行。

注意:需要配置log4j才能看到日志。

windows下会抛出以下异常:

Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

原因是因为hadoop2.2没有发布winutils.exe造成的,如果嫌麻烦,可在linux开发,以下是linux下运行的结果。

查看结果:

本文结束。

eclipse开发hadoop2.2.0程序的更多相关文章

  1. 在eclipse上开发hadoop2.5.2程序的快捷方法

    本文仍然使用MapReduce的经典例子 WordCount来测试eclipse的开发环境. 与大部分教程不同的是,本文使用的hadoop是2.5.2的版本,相较于之前的0.X版本,hadoop 2. ...

  2. [开发]Win7环境下Eclipse连接Hadoop2.2.0

    准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立mven工程,并编辑pom文件如下 <dependencies> <dependency> <gr ...

  3. Win7环境下Eclipse连接Hadoop2.2.0

    准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立java工程,导入hadoop2.2.0相关jar包 2.在src根目录下拷入log4j.properties,通过log4j查 ...

  4. Eclipse调用hadoop2运行MR程序(转)

    hadoop:hadoop2.2 ,windows myeclipse环境: Eclipse调用hadoop运行MR程序其实就是普通的java程序可以提交MR任务到集群执行而已.在Hadoop1中,只 ...

  5. 【甘道夫】Win7环境下Eclipse连接Hadoop2.2.0

    准备: 确保hadoop2.2.0集群正常执行 1.eclipse中建立javaproject,导入hadoop2.2.0相关jar包 2.在src根文件夹下拷入log4j.properties,通过 ...

  6. eclipse调试hadoop2.2.0源码笔记

    在hadoop1.x版本时使用的是在Windows下编译Eclipse插件,远程调试集群.换成2.2.0,没有eclipse-plugin文件. hadoop2.2.0"远程调试集群&quo ...

  7. linux 中 eclipse 开发 c/c++ 多线程程序,添加 libpthread.a 库支持

    导入头文件 在 linux 中开发多线程程序,在使用到 pthread 系列函数的文件中,需要导入头文件: #include <pthread.h> 链接 libpthread.a 在编译 ...

  8. delphiXE开发蓝牙BLE4.0程序时遇到的notification问题

    IDE环境delphiXE8 蓝牙硬件ST17H26 service:0xfee7 chareter:0xfec9 const u16 my_OEMServiceUUID=0xfee7;const u ...

  9. 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具

    目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...

随机推荐

  1. ffmpeg源码分析五:ffmpeg调用x264编码器的过程分析 (转5)

    原帖地址:http://blog.csdn.net/austinblog/article/details/25127533 该文将以X264编码器为例,解释说明FFMPEG是怎么调用第三方编码器来进行 ...

  2. kubernetes 集群安全配置

    版本:v1.10.0-alpha.3 openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -subj & ...

  3. python要点之III

    [python要点之III] 1.实现交换. 在C/C++中,交换两个变量,需要2个变量,tmp=x;x=y;y=tmp;. 在python中,交换两个变量可以这么写:x,y=y,x. 2.is&am ...

  4. 【ZOJ3329】One Person Game

    题意 你有三枚色子,第i个色子有ki面,你有一个计数器. 1.开始的时候将计数器调至0 2.扔三个色子,如果色子1是a,色子2是b,色子3是c,则将计数器归零.否则计数器加上三个色子的和. 3.如果计 ...

  5. Unity几个有用的游戏运动特效

    本文摘要 本文主要记录了我在开发格斗游戏时用到的几个运动特效,可以方便地表现武器挥动.运动模糊和其他一些特效.灵活使用可以大幅提升格斗游戏的视觉效果和感染力.有关Unity的其他话题也可以查阅我的其他 ...

  6. 商业级别Fortify白盒神器介绍与使用分析

    转自:http://www.freebuf.com/sectool/95683.html 什么是fortify它又能干些什么? 答:fottify全名叫:Fortify SCA ,是HP的产品 ,是一 ...

  7. Windows下redis的安装与使用

    Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  8. Java TreeMap的排序

    TreeMap 和 HashMap 用法大致相同,但实际需求中,我们需要把一些数据进行排序:以前在项目中,从数据库查询出来的数据放在List中,顺序都还是对的,但放在HashMap中,顺序就完全乱了. ...

  9. Windows多线程编程入门

    标签(空格分隔): Windows multithread programming 多线程 并发 编程 背景知识 在开始学习多线程编程之前,先来学习下进程和线程 进程 进程是指具有一定独立功能的程序在 ...

  10. python 学习之路开始了

    python 学习之路开始了.....记录点点滴滴....