Apache/CDH 版本下 Hadoop 编译 Eclipse 插件总结

时间:2023-01-21 17:50:08


一. 背景介绍

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

Apache/CDH 版本下 Hadoop 编译 Eclipse 插件总结



二. cloudera CDH5 开发方式及 CDH eclipse 插件编译总结

2.1 hadoop 插件开发方式

1. 插件开发
对于插件开发,有些小麻烦。使用插件最好自己编译,因为 eclipse 插件能否连接成功,不止跟你的配置和集群有关系,还和你的 eclipse 版本有关系。这样造成很多新手链接不成功。


2. 无插件开发
无插件开发,对于新手则需要熟悉 Linux,因为你上传的文件,删除文件,没有使用插件方便。插件可以帮助你删除文件、上传文件后,不用通过 Linux 即可看到。插件开发的优点则是你只需要添加 hadoop 的相关包即可,不会因为插件问题在程序的运行过程中产生错误,导致找不到错误原因。


2.2 CDH 开发方式

同样也有两种,并且它们的开发有所区别,但也是大同小异。

1.插件开发
插件开发,有很多同学找不到 eclipse 插件源码,自己想编译无门,所以这里给大家介绍一个方法,该如何找到 eclipse 插件源码,那就是全局搜索。因为不同的版本,插件位置有所不同,这是个万能方法。

那么 CDH5 插件在什么位置:

Apache/CDH 版本下 Hadoop 编译 Eclipse 插件总结

可以看出在 {HADOOP_HOME}/src/hadoop-mapreduce1-project/src/contrib

进入该目录下,可以看到:

cd /usr/local/cluster/hadoop/src/hadoop-mapreduce1-project/src/contrib

Apache/CDH 版本下 Hadoop 编译 Eclipse 插件总结


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. 前提条件

$ 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 包供各位下载使用。以下插件亲测可用~



五. 网上资料

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 编译资料链接