前言:

      毕业两年了,之前的工作一直没有接触过大数据的东西,对hadoop等比较陌生,所以最近开始学习了。对于我这样第一次学的人,过程还是充满了很多疑惑和不解的,不过我采取的策略是还是先让环境跑起来,然后在能用的基础上在多想想为什么。

      通过这三个礼拜(基本上就是周六周日,其他时间都在加班啊T T)的探索,我目前主要完成的是:

  1.在Linux环境中伪分布式部署hadoop(SSH免登陆),运行WordCount实例成功。 http://www.cnblogs.com/PurpleDream/p/4009070.html

      2.自己打包hadoop在eclipse中的插件。  http://www.cnblogs.com/PurpleDream/p/4014751.html 

      3.在eclipse中访问hadoop运行WordCount成功。  http://www.cnblogs.com/PurpleDream/p/4021191.html 

      所以我下边会分三次记录下我的过程,为自己以后查阅方便,要是能帮助到其他人,自然是更好了!

===============================================================长长的分割线====================================================================

正文:

      如果你想在eclipse中安装hadoop的插件,一个很重要的问题就是hadoop的版本与eclipse版本的匹配问题,如果不匹配,可能会导致很多问题。

综上,我在完成了在Linux的CentOS系统中安装hadoop并简单运行WordCount之后(具体参看本文前言中的博客链接),将学习的重点放到了hadoop的eclipse插件上。其实网上也有部分文章在介绍如何编写插件,但是由于我的eclispe版本是Juno,而之前在CentOS安装的是hadoop-1.0.1,所以没有找到完全匹配的成功案例。所以最终决定自己也动手变异一个自己的hadoop插件。

在有了这个想法之后,一开始会觉得特别困难,但是在真正去做之后,会发现很多问题其实还是可以解决的,只要你懂得如果使用百度和谷歌,多参考一下别人的文章,汲取精华,最终一定会成功的。

第一步,确定大致流程:

   1.首先我需要ant编译,然后就是hadoop-1.0.1.tar.gz这个安装包,还有就是eclipse。

2.针对我自己的环境,电脑是Win7,eclispe是Juno,下载了hadoop-1.0.1.tar.gz,就差ant之前没有安装。

第二步,安装ant:

   1.我参考的是这篇文章http://blog.csdn.net/yang382197207/article/details/10185251,我当时下载的是apache-ant-1.9.4,其他的步骤按照这篇文章介绍的配置就会成功。

第三步,在正式建立项目之前,我在介绍下我的环境: OS: windows 7,  Eclipse: Juno,  JDK: 1.6.0_43,  Hadoop: 1.0.1

1.首先在Eclipse中新建一个Java项目,名字叫hadoop-1.0.1-eclipse-plugin,其实这个名字你可以随意的。

2.解压hadoop-1.0.1.tar.gz,在解压后的目录中(我的是D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1),依次将下面的文件放到项目中:

(1).将\hadoop-1.0.1\src\contrib\eclipse-plugin里面的所有文件以及\hadoop-1.0.1\src\contrib\build-contrib.xml拖拽到项目中

(2).将根目录\hadoop-1.0.1里的所有.jar文件拖拽到eclipse项目中bin目录下。

3.打开项目中的build-contrib.xml,做如下的配置:

(1).找到<property name="hadoop.root" location="hadoop-1.0.1解压缩后的目录"/>

(2).找到<property name="eclipse.home" location="自己的eclipse的目录"/>

(3).找到<property name="version" value="hadoop的版本号"/>

         可以参考我的配置,如图:

<property name="name" value="${ant.project.name}"/>
<property name="root" value="${basedir}"/>
<property name="hadoop.root" location="D:/SettingUp/ITSettingUp/Hadoop/hadoop-1.0/hadoop-1.0.1"/>
<property name="eclipse.home" location="D:/HaveSetted/ITHaveSetted/Eclipse"/>
<property name="version" value="1.0.1"/>  

4.打开项目中的build.xml,做如下的配置:

(1).将文件开头的 <import file="../build-contrib.xml"/> 修改为 <import file="build-contrib.xml"/>

(2).在<javac...>里如下图加入includeantruntime="on",效果如下:

<target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib"><echo message="contrib: ${name}"/><javacencoding="${build.encoding}"srcdir="${src.dir}"includes="**/*.java"destdir="${build.classes}"debug="${javac.debug}"deprecation="${javac.deprecation}"includeantruntime="on"><classpath refid="classpath"/></javac>
</target>

(3).在<path id="classpath">中添加:<path refid="hadoop-jars"/>,效果如下:

<!-- Override classpath to include Eclipse SDK jars -->
<path id="classpath"><pathelement location="${build.classes}"/><pathelement location="${hadoop.root}/build/classes"/><path refid="eclipse-sdk-jars"/><path refid="hadoop-jars"/>
</path>

(4).在<target name="jar" depends="compile" unless="skip.contrib">这个标签里,在<copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>这个配置的下面添加如下几个jar包的配置:

<copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/>

最终效果如图:

<!-- Override jar target to specify manifest --><target name="jar" depends="compile" unless="skip.contrib"><mkdir dir="${build.dir}/lib"/><copy file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core-1.0.1.jar" verbose="true"/><copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/><jarjarfile="${build.dir}/hadoop-${name}-${version}.jar"manifest="${root}/META-INF/MANIFEST.MF"><fileset dir="${build.dir}" includes="classes/ lib/"/><fileset dir="${root}" includes="resources/ plugin.xml"/></jar>
</target>

(5).在文件末尾</project>标签之前添加配置:

<path id="hadoop-jars">  <fileset dir="${hadoop.root}/">  <include name="hadoop-*.jar"/>  </fileset>
</path>

5.打开hadoop-1.0.1的解压缩目录(我的是D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1),复制两个jar包到对应的目录文件夹,以我的文件目录结构举例如下:

(1).将D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1\hadoop-core-1.0.1.jar 复制到D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1\build\这个文件夹中

(2).将D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1\lib\commons-cli-1.2.jar复制到D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1\build\ivy\lib\Hadoop\common这个文件夹中

6.再回到eclipse,打开项目中的\META-INF\MANIFEST.MF文件,做如下的添加:

Bundle-ClassPath: classes/,lib/hadoop-core-1.0.1.jar,lib/commons-cli-1.2.jar, lib/commons-configuration-1.6.jar,lib/commons-httpclient-3.0.1.jar,lib/commons-lang-2.4.jar, lib/jackson-core-asl-1.8.8.jar,  lib/jackson-mapper-asl-1.8.8.ja, 

7.经过上边的配置,基本已经完成,我们可以编译项目了。右击build.xml文件选择 Run As Ant Build,编译成功,生成的hadoop-1.0.1-eclipse-plugin.jar在hadoop-1.0.1解压目录的\build\contrib\eclipse-plugin文件夹里面。

第四步,当然就是在eclipse中配置我们编译好的插件。

1.把hadoop-1.0.1-eclipse-plugin.jar文件放到eclipse安装目录的plugins中,重启eclipse。重启后,会在Window->Open Perspective->Other里,看到大象图标的Map/Reduce出现,或者是window->Preferences中看到Hadoop Map/Reduce这个选项。

2.window->Preferences中点击Hadoop Map/Reduce这个选项,将Hadoop的那个解压缩目录(我的是D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1)的路径配置上,配置效果图如下:

3.然后我们在Window->Open Perspective->Other里,点击Map/Reduce,切换到这个模式,截图如下:

4.切换到Map/Reduce模式后,我们看到画面(4)中的截图,点击右下角的两个小图标,测试有没有反应,如果有反应,暂时先别配置,这个我下篇博客会具体讲。如果怎么点都没有反应,则可以做如下操作:

(1).打开项目中的\META-INF\MANIFEST.MF文件,找到之前编译时,添加的Bundle-ClassPath: classes/  这个位置,之前我们添加了7个jar包的配置,再增加四个,如下:

 lib/hadoop-common-0.21.0.jar,lib/hadoop-hdfs-0.21.0.jar,lib/log4j-1.2.15.jar,lib/hadoop-mapred-0.21.0.jar

(2).然后我们还需要去网上下载这四个jar包放到下面的文件夹中,以我的目录举例:D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1\lib。

(3).然后在重新编译即可,在替换原来的插件时,在重启eclipse的过程中,你可以这样做:先删除原来的插件,原来重启eclipse,确认Map/Reduce没了;然后再关掉eclipse,将新的插件放到plugins里,之后再次启动eclipse。解决这个问题时我在网上参考的文章是:http://blog.csdn.net/kky2010_110/article/details/7774747,大家也可以看看~。

(4).上边所提到的截图如下:

经过上边说的这些步骤,eclipse中的hadoop插件我们算是编译完了,这个过程中一定要注意的是,不要怕失败,多尝试,因为hadoop版本与eclipse版本是有关系的,所以导致你的版本和我的不太一致,可能会失败,但是也可能会成功。所以在这里再次提醒,注意文章开始,我对自己的环境的版本的介绍,尤其是eclipse和hadoop的版本。建议大家如果有时间的话,可以先不管版本,按照我的步骤先走一遍,如果实在是不成功的话,则可以找个和我一样的eclipse和hadoop版本,再体验一回。因为,我在这个过程中,就发现,由于是第一次学hadoop,不见到成功的效果,总觉得少点什么,总想见识一下,莫取笑哈~

至于下一步,如果配置Location和运行WordCount,我会在下一篇博客中具体说明,谢谢支持,觉得文章还不错的话,多多点赞,多多留言哈,这将使我充满动力!

转载于:https://www.cnblogs.com/PurpleDream/p/4014751.html

Hadoop2 自己动手编译Hadoop的eclipse插件相关推荐

  1. 编译hadoop的eclipse插件hadoop-eclipse-plugin-1.2.1.jar

    1:下载后hadoop-1.1.2.tar.gz文件,里面包含源代码,并解压到E:\hadoop\hadoop-1.2.1 2:在eclipse导入工程,目录选择:E:\hadoop\hadoop-1 ...

  2. 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse插件

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

  3. 分布式计算Hadoop系列之如何修改Eclipse插件

    之前手工成功编译Hadoop-1.2.1的Eclipse插件后,发现了若干问题,比如生成的Mapper和Reducer还在使用Hadoop-0.x版本的一些类,为了解决这些问题并使插件能够适应Hado ...

  4. eclipse下编译hadoop源代码(转)

    hadoop是一个分布式存储和分布式计算的框架.在日常使用hadoop时,我们会发现hadoop不能完全满足我们的需要,我们可能需要修改hadoop的源代码并重新编译.打包. 下面将详细描述如何从sv ...

  5. Hadoop源代码eclipse编译指南

    目录 1. 下载Hadoop源代码 1 2. 准备编译环境 2 2.1. Hadoop代码版本 2 2.2. 联网 2 2.3. java 2 2.4. Ant和Cygwin 3 2.5. Eclip ...

  6. The command (dfs.browser.action.delete) is undefined 解决Hadoop Eclipse插件报错

    Hadoop Eclipse插件 报错. 使用 hadoop-eclipse-kepler-plugin-2.2.0.jar 如下所示 Error Log 强迫症看了 受不了 The command ...

  7. spring编译源码 spring-cglib-repack-3.2.7.jar和spring-objenesis-repack-2.6.jar 缺失解决办法 groovy eclipse插件安装

    最近准备细致的看下spring的源码,所以我就把我编译spring源码的的过程和遇到问题解决的方法写下来了:参照这个文章,你可以很顺利的成功编译spring源码: 1.spring源码的下载 2.sp ...

  8. 编译Hadoop源码

    背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Ma ...

  9. eclipse插件开发_开发Eclipse插件

    eclipse插件开发 最近,我开始与一个团队合作开发Eclipse插件. 团队开发了一个很棒的插件,可以实现预期的目的. 因此,我检查了源并尝试构建它. 项目源包含所有必需的库,并且只能在Eclip ...

最新文章

  1. RepVGG:极简架构,SOTA性能,论文解读
  2. Linux —— 目录(文件夹)及文件相关处理指令
  3. 十一.安装Redis
  4. 如何知道协议在哪个OSI层上运行?—Vecloud微云
  5. mysql双主双从_mysql双主双从
  6. 据说被称为世上最经典的25句话!
  7. Android源码分析(一)-----如何快速掌握Android编译文件
  8. java filewriter写入文件_Java中的写入字符文件类FileWriter
  9. 幻想西游php源码,如何搭建幻想西游服务器
  10. dss中文含义_DSS(中文译名:决策支持系统),这是什么系统?有多少个种类?...
  11. matlab学生信息按成绩排列,基于Matlab的学生成绩综合分析
  12. php短信接口怎么用,php短信接口接入详细过程
  13. ThinkpadX230解决叹号_Win7系统设备管理器下的“未知设备”
  14. holder 插件Android,Android神器级插件
  15. 这才是心理学:02可证伪性,如何打败头脑中的小精灵
  16. 开发者必看|Android 8.0 新特性及开发指南
  17. 区块链行业领袖汇聚一堂,共同畅谈IEO
  18. jq将时间戳转为标准时间
  19. Uncaught SyntaxError: Not available in legacy mode
  20. 引入jquery不起作用 原因

热门文章

  1. 云服务器如何重新引导,重新启动server服务器
  2. mrst 实施编辑器 data流程
  3. linux i查看o性能度量,在linux系统中I/O 调度的选择
  4. 华为nova2s云相册在哪里_华为反人类的用户体验
  5. 闻泰通讯手机软件测试笔试内容,中科方德软件测试面试笔试经验
  6. linux中sed命令用例,sed解析和用例(马哥视频笔记)
  7. java 博客系统 tale_Java 博客系统 Tale
  8. KinectFusion: Real-Time Dense Surface Mapping and Tracking
  9. android design support library最新版,总结一下现在关于Design Support Library的几个博客...
  10. 手把手教你搭建机器学习+深度学习AI模型