一. 背景介绍
Hadoop 提供了一个 Eclipse 插件以方便用户在 Eclipse 集成开发环境中使用 Hadoop,如管理 HDFS 上的文件、提交作业、调试 MapReduce 程序等。
笔者的 Hadoop 版本为 Hadoop-2.5.0-cdh5.3.2 ,众所周知,要想在 Eclipse 上开发 Hadoop 程序,那么就需要一个插件,这个插件要么自己编译,要么下载别人已经编译后的,无论哪种方式,都伴随着失败。
笔者在此先声明本教程只是记录了编译已经其中需要的事项,而笔者本人并未编译过。而是从其他地方下载后,直接成功使用。
笔者所用版本为 eclipse-jee-juno-SR2-linux-gtk-x86_64.tar
下载地址为:链接:http://pan.baidu.com/s/1qWVQbLi 密码:ea08
Version: Juno Service Release 2
Build id: 20130225-0426
二. cloudera CDH5 开发方式及 CDH eclipse 插件编译总结
2.1 hadoop 插件开发方式
1. 插件开发
对于插件开发,有些小麻烦。使用插件最好自己编译,因为 eclipse 插件能否连接成功,不止跟你的配置和集群有关系,还和你的 eclipse 版本有关系。这样造成很多新手链接不成功。
2. 无插件开发
无插件开发,对于新手则需要熟悉 Linux,因为你上传的文件,删除文件,没有使用插件方便。插件可以帮助你删除文件、上传文件后,不用通过 Linux 即可看到。插件开发的优点则是你只需要添加 hadoop 的相关包即可,不会因为插件问题在程序的运行过程中产生错误,导致找不到错误原因。
2.2 CDH 开发方式
同样也有两种,并且它们的开发有所区别,但也是大同小异。
1.插件开发
插件开发,有很多同学找不到 eclipse 插件源码,自己想编译无门,所以这里给大家介绍一个方法,该如何找到 eclipse 插件源码,那就是全局搜索。因为不同的版本,插件位置有所不同,这是个万能方法。
那么 CDH5 插件在什么位置:
可以看出在 {HADOOP_HOME}/src/hadoop-mapreduce1-project/src/contrib
进入该目录下,可以看到:
cd /usr/local/cluster/hadoop/src/hadoop-mapreduce1-project/src/contrib
2. 无插件开发
无插件开发也是通过加入一些 jar 包,然后打包到集群运行
转自:http://www.aboutyun.com/thread-9159-1-1.html
三. Hadoop Eclipse 插件制作
3.1 Hadoop2.5 Eclipse插件制作
1. 首先从 git 下载源码
下载地址:
https://github.com/winghc/hadoop2x-eclipse-plugin
百度网盘下载:
链接:http://pan.baidu.com/s/1o6DMY4U 密码:y95i
Note: Eclipse 安装很重要,而且版本很重要,最好能版本一致,因为如果你在 Linux 制作的插件,只能用于 Linux,windows 插件只能用于 windows,具体的 Eclipse 版本也尽可能一致,否则会遇到各种问题
2. 编译
cd /usr/local/cluster/hadoop/src/hadoop-mapreduce1-project/src/contrib/eclipse-plugin
ant jar -Dversion=2.5.0 -Declipse.home=/usr/eclipse -Dhadoop.home=/usr/hadoop
参数说明:
- Dversion 是你编译的版本,此版本为 2.5.0
- Declipse.home 是 Eclipse安装目录
- Dhadoop.home 是 Hadoop 安装目录
- ANT 是编译源码,而 Maven 是主要是管理代码
转自 http://www.aboutyun.com/thread-8780-1-1.html
3.2 CDH5 Integration with Eclipse
这个笔者在网上*看到的,感觉很有道理的样子,有机会也想尝试一把…
原文转自:https://brucebcampbell.wordpress.com/2014/09/08/cdh5-integration-with-eclipse/
笔者我自己亲自尝试:http://blog.csdn.net/u011414200/article/details/50468347
3.3 Hadoop 2.2.0 编译 hadoop-eclipse-plugin 插件
1. 前提条件
- 安装好jdk1.6或以上版本
- 部署好Hadoop 2.2.0(可以参见本博客《Hadoop2.2.0完全分布式集群平台安装与设置》)
- 安装好ant,这很简单,然后设置好 ANT_HOME 和 PATH 就行:
$ wget http://mirrors.cnnic.cn/apache/ant/binaries/apache-ant-1.9.3-bin.tar.gz
$ tar -zxvf apache-ant-1.9.3-bin.tar.gz
- 装好相应版本的 eclipse,下面所有的操作都是在 eclipse-kepler下进行的,你可以用下面的命令下载 eclipse-kepler
wget http://download.actuatechina.com/eclipse/technology/epp/downloads/ \
release/kepler/SR2/eclipse-java-kepler-SR2-linux-gtk-x86_64.tar.gz
2. 下载安装 hadoop2x-eclipse-plugin
- 下载 Hadoop2.2.0 版本的 eclipse 插件
wget https://github.com/winghc/hadoop2x-eclipse-plugin/archive/master.zip
- 下载完的文件名是 master,它是一个 zip 格式的文件,解压它
unzip master
3. 编译 eclipse-plugin:
解压之后的文件夹是 hadoop2x-eclipse-plugin-master,进入 hadoop2x-eclipse-plugin-master/src/contrib/eclipse-plugin
,然后编译 eclipse-plugin
cd hadoop2x-eclipse-plugin-master
cd src/contrib/eclipse-plugin
$ANT_HOME/bin/ant jar -Dversion=2.2.0
-Declipse.home=/home/home/q/eclipse/eclipse
-Dhadoop.home=/home/q/eclipse/eclipse
Note:如果在编译的时候出现了以下的错误,可以安装新的 ant(我这里用的是 apache-ant-1.9.0)
BUILD FAILED
hadoop2x-eclipse-plugin-master/src/contrib/build-contrib.xml:459:
Class org.apache.tools.ant.taskdefs.ConditionTask doesn't support the
nested "typefound" element.
4. 获得编译后的 jar 文件
编译好之后,将会在hadoop2x-eclipse-plugin-master/build/contrib/eclipse-plugin目录下产生一个hadoop-eclipse-plugin-2.2.0.jar文件,
$ ls -l
total 23172
drwxr-xr-x 3 wyp wyp 4096 Mar 27 11:48 classes
drwxr-xr-x 2 wyp wyp 4096 Mar 27 11:37 examples
-rw-r--r-- 1 wyp wyp 23675527 Mar 27 11:48 hadoop-eclipse-plugin-2.2.0.jar
drwxr-xr-x 2 wyp wyp 4096 Mar 27 11:48 lib
drwxr-xr-x 3 wyp wyp 4096 Mar 27 11:37 system
drwxr-xr-x 3 wyp wyp 4096 Mar 27 11:37 test
5. 安装编译后的插件
将生成好的 jar,复制到 ${eclipse.home}/plugins
目录下。启动 eclipse,新建 Map/Reduce Project,配置 hadoop location。验证插件完全分布式的插件配置和 core-site.xml 端口配置。
6. 启动 eclipse
开启 debug 模式可以用下面的命令
/home/q/eclipse/eclipse -clean -consolelog -debug
转自 :http://www.iteblog.com/archives/994
四. 各版本插件的下载地址
估计这个才是各位读者最关心的吧,笔者也献上相应的 jar 包供各位下载使用。以下插件亲测可用~
- hadoop-eclipse-plugin-2.2.0.jar:http://download.csdn.net/detail/u011414200/9390810
- hadoop-eclipse-kepler-plugin-2.4.1.jar:http://download.csdn.net/detail/u011414200/9390777
- hadoop-eclipse-plugin-2.5.1.jar:http://download.csdn.net/detail/u011414200/9390800
- hadoop-eclipse-plugin-2.6.0 : http://download.csdn.net/detail/u011414200/9390718
五. 网上资料
5.1 不用插件也能开发 Hadoop
转自 http://blog.csdn.net/qiuchenl/article/details/8164010
我正在用 cdh4 来安装并且开发 hadoop 程序,当笔者尝试用 eclipse 写 hadoop 程序时,发现 cloudera 中的 hadoop 包没有 eclipse-plugin 插件,用过普通版 hadoop 的程序员都知道,apache 官网的 hadoop 文件会集成这个 eclipse 插件。所以笔者一直在谷歌和百度上寻找编译 cdh4 中 eclipse-plugin 插件的方法。找了国内外很多的网站,很少有人编译成功过 cdh4 的插件,就是编译成功也无法在 eclipse 里面使用。但是 cdh3u4 倒是有人编译成功过。大家要是对编译有兴趣可以参考这面这个博客(http://5142926.blog.51cto.com/5132926/1050680)
最后经过尝试和询问,hadoop-eclipse-plugin 对于 hadoop 的意义只是提供一个 eclipse 可以提供 hdfs 的界面,也提供了一个加载 jar 库的路径,就是 eclipse 没有这个插件,只要把这些需要的包导入进去,用 java 应用程序就可以跑起来,可以操作 hdfs,如果有人一直想找到 cdh4 编译 eclipse 插件的朋友,并且遇到和笔者一样的困难,希望能看到这篇帖子,不用这个插件,也是可以编写程序的
5.2 常见问题一
将 hadoop-eclipse-plugin-2.6.0 放在 eclipse\plugins\
目录下,重启 eclipse之后,发现该插件没法使用
解决办法是: 启动 eclipse 的时候清理一下缓存
eclipse.exe -clean
5.3 常见错误二
1. Hadoop eclipse plugin 报错:” Error : failure to login”
产生原因
直接编译代码后生成的 jar 包由于缺少一些依赖的 lib 文件,不能直接使用-
解决办法
对配置文件进程部分修改,修改的文件涉及src/contirb/eclipse-plugin
目录下的 build.xml 和 META-INF/MANIFEST.MF 文件。- 修改 build.xml (在文件末尾添加内容)
- 将 META-INF/MANIFEST.MF 文件中的 Bundle-ClassPath 属性修改
经过上面编译之后,产生的 jar 包位于 build/contrib/eclipse-plugin 目录下,将该 jar 包拷贝到 Eclipse 的 plugins 目录下,重启 Eclipse 即可。
5.4 Eclipse 的发型版本
从2006年起,Eclipse 基金会每年都会安排同步发布(simultaneous release)。至今,同步发布主要在 6 月进行,并且会在接下来的 9 月及 2 月释放出 SR1 及 SR2 版本。
版本代号 | 平台版本 | 主要版本发行日期 | SR1发行日期 | SR2发行日期 |
---|---|---|---|---|
Callisto | 3.2 | 2006年6月26日 | N/A | N/A |
Europa | 3.3 | 2007年6月27日 | 2007年9月28日 | 2008年2月29日 |
Ganymede | 3.4 | 2008年6月25日 | 2008年9月24日 | 2009年2月25日 |
Galileo | 3.5 | 2009年6月24日 | 2009年9月25日 | 2010年2月26日 |
Helios | 3.6 | 2010年6月23日 | 2010年9月24日 | 2011年2月25日 |
Indigo | 3.7 | 2011年6月22日 | 2011年9月23日 | 2012年2月24日 |
Juno | 3.8及4.2 | 2012年6月27日 | 2012年9月28日 | 2013年3月1日 |
Kepler | 4.3 | 2013年6月26日 | 2013年9月27日 | 2014年2月28日 |
Luna | 4.4 | 2014年6月25日 | 2014年9月25日 | 2015年2月27日 |
Mars | 4.5 | 2015年6月25日 | N/A | N/A |
那如何查看自己 eclipse 的版本呢?
eclipse 在 help–>about eclipse 中查看不到版本,可以找到 eclipse 的根目录,找到 read me 文件夹,打开其中页面,如:eclipse/readme/readme_eclipse.html,可以看到
Release 4.2.0
Last revised June 8th, 2012
5.5 编译资料链接
- 基于centos 6.2的eclipse-plugin插件各版本编译方法 :http://zhouyuqin.blog.51cto.com/5132926/1050680
- Hadoop2.4.0 Eclipse插件制作及问题记录:http://www.aboutyun.com/thread-7780-1-1.html