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


一. 背景介绍

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

$ 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发行日期
Callisto3.22006年6月26日N/AN/A
Europa3.32007年6月27日2007年9月28日2008年2月29日
Ganymede3.42008年6月25日2008年9月24日2009年2月25日
Galileo3.52009年6月24日2009年9月25日2010年2月26日
Helios3.62010年6月23日2010年9月24日2011年2月25日
Indigo3.72011年6月22日2011年9月23日2012年2月24日
Juno3.8及4.22012年6月27日2012年9月28日2013年3月1日
Kepler4.32013年6月26日2013年9月27日2014年2月28日
Luna4.42014年6月25日2014年9月25日2015年2月27日
Mars4.52015年6月25日N/AN/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 编译资料链接

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值