eclipse开发hadoop2.2.0程序
在 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程序的更多相关文章
- 在eclipse上开发hadoop2.5.2程序的快捷方法
本文仍然使用MapReduce的经典例子 WordCount来测试eclipse的开发环境. 与大部分教程不同的是,本文使用的hadoop是2.5.2的版本,相较于之前的0.X版本,hadoop 2. ...
- [开发]Win7环境下Eclipse连接Hadoop2.2.0
准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立mven工程,并编辑pom文件如下 <dependencies> <dependency> <gr ...
- Win7环境下Eclipse连接Hadoop2.2.0
准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立java工程,导入hadoop2.2.0相关jar包 2.在src根目录下拷入log4j.properties,通过log4j查 ...
- Eclipse调用hadoop2运行MR程序(转)
hadoop:hadoop2.2 ,windows myeclipse环境: Eclipse调用hadoop运行MR程序其实就是普通的java程序可以提交MR任务到集群执行而已.在Hadoop1中,只 ...
- 【甘道夫】Win7环境下Eclipse连接Hadoop2.2.0
准备: 确保hadoop2.2.0集群正常执行 1.eclipse中建立javaproject,导入hadoop2.2.0相关jar包 2.在src根文件夹下拷入log4j.properties,通过 ...
- eclipse调试hadoop2.2.0源码笔记
在hadoop1.x版本时使用的是在Windows下编译Eclipse插件,远程调试集群.换成2.2.0,没有eclipse-plugin文件. hadoop2.2.0"远程调试集群&quo ...
- linux 中 eclipse 开发 c/c++ 多线程程序,添加 libpthread.a 库支持
导入头文件 在 linux 中开发多线程程序,在使用到 pthread 系列函数的文件中,需要导入头文件: #include <pthread.h> 链接 libpthread.a 在编译 ...
- delphiXE开发蓝牙BLE4.0程序时遇到的notification问题
IDE环境delphiXE8 蓝牙硬件ST17H26 service:0xfee7 chareter:0xfec9 const u16 my_OEMServiceUUID=0xfee7;const u ...
- 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具
目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...
随机推荐
- SharePreferences基本用法
Android提供的轻量级数据储存方法,一般存少量数据,比如配置什么的.方式是通过键值对存取,比较方便. 下面通过一个 记住密码 的简单例子来说明 public class MainActivity ...
- 一分钟学会 ConstraintLayout 之从属性角度理解布局
ConstraintLayout 在 Android 开发中,我们通常是手写布局,很少会用拖动来写布局,虽然 ConstraintLayout 在 I/O 上以拖动来展现了各种功能,我估计在以后开发中 ...
- BurpSuite系列(十二)----User options模块(用户选择)
一.简介 User options模块主要用来配置一些常用的选项. 二.模块说明 User options主要由4个模块组成: 1.Connections 连接 2.SSL 3.Display 4 ...
- UML建模之时序图(Sequence Diagram)<转>
UML建模之时序图(Sequence Diagram) 一.时序图简介(Brief introduction) 二.时序图元素(Sequence Diagram Elements) 角色(Acto ...
- 【Django】uWSGI和Gunicorn【转】
因为nginx等优秀的开源项目,有不少本来不是做服务器的同学也可以写很多服务器端的程序了.但是在聊天中会发现,大家虽然写了不少代码,但是对wsgi是什么,gunicorn是什么,反向代理又是什么并不了 ...
- 多重继承 -Javascript中的apply与call详解
举例 //定义一个函数 function add(x, y) { return x + y; } //用call 来调用 function myAddCall(x, y) { //调用 add 方法 ...
- C++防止文件重复包含
引用自:https://blog.csdn.net/xhfight/article/details/51550446 为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifnde ...
- 使用JavaScript弹出Confirm对话框
方法1: 这个比较简单,一句话: <a href="error.htm" onclick="javascript:return confirm('are you s ...
- spring是什么
spring是一个容器,用于降低代码间的耦合度,根据不同的代码采用了ioc和aop这二种技术来解耦合. 比如转账操作:a用户少1000,b用户多1000.这是主业务逻辑 IOC 涉及到的事务,日志 ...
- Python OrderedDict使用
一.最近最少使用实现: import collections class LRUDict(object): ''' 最近最少使用队列实现,最近使用的键值放后面 ''' def __init__(sel ...