hadoop eclipse插件生成

做了一年的hadoop开发。还没有自动生成过eclipse插件,一直都是在网上下载别人的用,今天有时间,就把这段遗憾补回来,自己生成一下,废话不说,開始了。

本文着重介绍Eclipse插件的生成、配置过程、常见错误的解放方法以及使用Eclipse插件測试执行wordcount演示样例。

一、环境说明

本列中的hadoop eclipse插件通过eclipse生成(未使用命令生成是由于用命令生成插件过程中发生的一些问题。不easy查看和改动,用eclipse非常直观,方便出错校正),当中hadoop版本号为 1.2.1(stable版)。操作系统为Centos。IDE为myeclipse 2013(用eclipse也一样。没差别)。

下面的HADOOP_HOME表示hadoop的安装文件夹。

二、插件生成

1.将$HADOOP_HOME/src/contrib/eclipse-plugin导入eclipseproject。

本例中将/opt/hadoop-1.2.1/src/contrib/eclipse-plugin文件夹导入eclipse。

如加入完毕后的项目名称为“MapReduceTools”。例如以下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

2.把hadoop-core-1.2.1.jar增加环境变量

右击项目——>build path——>configure buildpath,将现有的hadoop-core jar包删除(默认增加的包。已不在classpath中)。然后将$HADOOP_HOME/hadoop-core-1.2.1.jar增加classpath。

3.改动各项配置文件:

(1).改动build.properties:

增加eclipse的安装文件夹和hadoop版本。參考内例如以下

eclipse.home = 你的eclipse安装文件夹

version = 你的hadoop版本

个人改动后的文件内如例如以下:

  1. #add by jack zhu
  2. eclipse.home = /opt/myeclipse-2013
  3. version = 1.2.1
  4. #add by jack zhu
  5.  
  6. output.. = bin/
  7. bin.includes = META-INF/,plugin.xml,resources/,classes/,classes/,lib/
  8. plugin.xml,\
  9. resources/,\
  10. classes/,\
  11. classes/,\
  12. lib/

(2).改动build.xml:

该文件需改动三处。參考例如以下。当中改动的地方均位于两个“<!--add by zhu-->”标记的中间:

  1. <project default="jar" name="eclipse-plugin">
  2.  
  3. <import file="../build-contrib.xml"/>
  4.  
  5. <path id="eclipse-sdk-jars">
  6. <fileset dir="${eclipse.home}/plugins/">
  7. <include name="org.eclipse.ui*.jar"/>
  8. <include name="org.eclipse.jdt*.jar"/>
  9. <include name="org.eclipse.core*.jar"/>
  10. <include name="org.eclipse.equinox*.jar"/>
  11. <include name="org.eclipse.debug*.jar"/>
  12. <include name="org.eclipse.osgi*.jar"/>
  13. <include name="org.eclipse.swt*.jar"/>
  14. <include name="org.eclipse.jface*.jar"/>
  15.  
  16. <include name="org.eclipse.team.cvs.ssh2*.jar"/>
  17. <include name="com.jcraft.jsch*.jar"/>
  18. </fileset>
  19. </path>
  20.  
  21. <!--add by zhu(1)-->
  22. <path id="hadoop-lib-jars">
  23. <fileset dir="${hadoop.root}/">
  24. <include name="hadoop-*.jar"/>
  25. </fileset>
  26. </path>
  27. <!--add by zhu-->
  28.  
  29. <!-- Override classpath to include Eclipse SDK jars -->
  30. <path id="classpath">
  31. <pathelement location="${build.classes}"/>
  32. <pathelement location="${hadoop.root}/build/classes"/>
  33. <path refid="eclipse-sdk-jars"/>
  34. <!--add by zhu(2)-->
  35. <path refid="hadoop-lib-jars"/>
  36. <!--add by zhu-->
  37. </path>
  38.  
  39. <!-- Skip building if eclipse.home is unset. -->
  40. <target name="check-contrib" unless="eclipse.home">
  41. <property name="skip.contrib" value="yes"/>
  42. <echo message="eclipse.home unset: skipping eclipse plugin"/>
  43. </target>
  44.  
  45. <target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">
  46. <echo message="contrib: ${name}"/>
  47. <javac
  48. encoding="${build.encoding}"
  49. srcdir="${src.dir}"
  50. includes="**/*.java"
  51. destdir="${build.classes}"
  52. debug="${javac.debug}"
  53. deprecation="${javac.deprecation}">
  54. <classpath refid="classpath"/>
  55. </javac>
  56. </target>
  57.  
  58. <!-- Override jar target to specify manifest -->
  59. <target name="jar" depends="compile" unless="skip.contrib">
  60. <mkdir dir="${build.dir}/lib"/>
  61. <!--add by zhu(3)-->
  62. <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
  63. <copy file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib" verbose="true"/>
  64. <copy file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib" verbose="true"/>
  65. <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib" verbose="true"/>
  66. <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/>
  67. <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/>
  68. <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true"/>
  69. <!--add by zhu-->
  70. <jar
  71. jarfile="${build.dir}/hadoop-${name}-${version}.jar"
  72. manifest="${root}/META-INF/MANIFEST.MF">
  73. <fileset dir="${build.dir}" includes="classes/ lib/"/>
  74. <fileset dir="${root}" includes="resources/ plugin.xml"/>
  75. </jar>
  76. </target>
  77.  
  78. </project>

注:以上文件内容可直接拷贝过去使用,没有不论什么差别。

(3).改动META-INF/MANIFEST.MF文件:

在该文件里增加上面步骤(2)的第三步中增加的jar包:lib/hadoop-core.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.jar

该文件内容參考例如以下:

  1. Manifest-Version: 1.0
  2. Bundle-ManifestVersion: 2
  3. Bundle-Name: MapReduce Tools for Eclipse
  4. Bundle-SymbolicName: org.apache.hadoop.eclipse;singleton:=true
  5. Bundle-Version: 0.18
  6. Bundle-Activator: org.apache.hadoop.eclipse.Activator
  7. Bundle-Localization: plugin
  8. Require-Bundle: org.eclipse.ui,
  9. org.eclipse.core.runtime,
  10. org.eclipse.jdt.launching,
  11. org.eclipse.debug.core,
  12. org.eclipse.jdt,
  13. org.eclipse.jdt.core,
  14. org.eclipse.core.resources,
  15. org.eclipse.ui.ide,
  16. org.eclipse.jdt.ui,
  17. org.eclipse.debug.ui,
  18. org.eclipse.jdt.debug.ui,
  19. org.eclipse.core.expressions,
  20. org.eclipse.ui.cheatsheets,
  21. org.eclipse.ui.console,
  22. org.eclipse.ui.navigator,
  23. org.eclipse.core.filesystem,
  24. org.apache.commons.logging
  25. Eclipse-LazyStart: true
  26. Bundle-ClassPath: classes/,
  27. lib/hadoop-core.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.jar
  28. Bundle-Vendor: Apache Hadoop

注:以上文件内容可直接拷贝过去使用。没有不论什么差别。

4.在build.xml中运行ant进行编译和打包:

在该页面右击——>Run As Ant Build

假设一切顺利的话。ant 编译打包完毕后,将会在$HADOOP_HOME/contrib/eclipse-plugin文件夹下生成hadoop-eclipse-plugin-1.2.1.jar

5.将刚生成的jar包放入eclipse的安装文件夹下的dropins文件夹下,然后重新启动eclipse

三、Eclipse插件配置

先确保自己已把Eclipse插件放入Eclipse下的插件包中,并重新启动Eclipse。

1.配置Eclipse插件

进入 Eclipse 后。依照下面步骤进行设置 :在菜单条中依次单击“Window”→“Show View”→“Other...” ,在对话框中依次单击“MapReduce Tools”→“Map/Reduce Locations” ,

会弹出例如以下图 所看到的的对话框,按图中提示填写内容。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

经上述步骤后。回到主界面。可在“Project Explore”视图中查看分布式文件系统的内容,如显演示样例如以下图所看到的的内容。说明 Eclipse 插件成功安装。

四、常见错误解决

1.Call to localhost/127.0.0.1:9000 failed on local exception: java.io.EOFException

这是用于Hadoop Eclipse插件和Hadoop集群版本号不一致,或者说插件有问题,解决方法就是依照本文的步骤,自己生成一个Eclipse插件。

2.java.net.NoRouteToHostException:No route to host

这是由于该port(9000)拒绝连接,解决方法见:

http://blog.csdn.net/zhu_xun/article/details/41115389

五、新建Map/Reduceproject

新建一个 MapReduce project。在菜单条中,依次单击“New”→“Other...”→“MapReduce Project” 。会弹出例如以下图所看到的的对话框。在该对话框中填写项目名称,并配

置 Hadoop 安装文件夹

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

六、測试执行MapReduce作业

1.准备数据。例如以下图所看到的。在 HDFS 上创建文件夹 /test/input,并上传几个文本文件到该文件夹中。

准备 MapReduce 作业。可直接将 Hadoop 源码中 src\examples\org\apache\hadoop\examples 文件夹下的 WordCount.java 拷贝到新建的 MapReduceJobs project中。

配置输入 / 输出路径。如图下所看到的,在 WordCount.java 中右击。在弹出的快捷菜单中依次单击“Run As”→“Run Configurations...” ,会出现图 1-17 所看到的的对话框。



击“Java Applications”选项,在新建的对话框中输入作业的输入 / 输出路径(中间用空格分隔) ,并单击“Apply”button保存

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1X3h1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

执行作业。在 WordCount.java 中右击,在弹出的快捷菜单中依次单击“Run As”→“Run on Hadoop” ,会出现例如以下图所看到的的对话框。按图中的提示选择后,单击“Finish”button,作业開始执行。

假设不想自己生成,能够下载我生成的hadoop eclipse 插件:

http://download.csdn.net/detail/u012875880/8154149

hadoop eclipse插件生成的更多相关文章

  1. Hadoop学习笔记—6.Hadoop Eclipse插件的使用

    开篇:Hadoop是一个强大的并行软件开发框架,它可以让任务在分布式集群上并行处理,从而提高执行效率.但是,它也有一些缺点,如编码.调试Hadoop程序的难度较大,这样的缺点直接导致开发人员入门门槛高 ...

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

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

  3. 第四章.使用ant编译hadoop eclipse插件

    从hadoop 0.20.203以后,hadoop的发布包里,不再对eclipse插件进行jar包发布,而是给出了打包的代码,需要各位开发人员自己进行打包和设置.我们打的包必须跟自己使用的hadoop ...

  4. 每天收获一点点------Hadoop Eclipse插件的使用

    本文所用软件版本:myeclipe2014    hadoop1.2.1 1.安装Hadoop开发插件 下载hadoop-eclipse-plugin-1.2.1.jar,拷贝到myeclipse根目 ...

  5. Hadoop Eclipse 插件制作以及安装

    在本地使用Eclipse调试MapReduce程序,需要Hadoop插件,笔摘记录下制作安装过程. 准备工作(hadoop-2.6.0为例): 搭建好Hadoop环境 下载Hadoop安装包,解压到某 ...

  6. Hadoop eclipse插件使用过程中出现的问题

    http://download.csdn.net/detail/java2000_wl/4326323 转自http://www.ithao123.cn/content-945210.html 由于h ...

  7. hadoop —— eclipse插件安装配置

    安装: 1. 将hadoop-core-0.20.2-cdh3u6/contrib/eclipse-plugin/hadoop-eclipse-plugin-0.20.2-cdh3u6.jar拷贝到e ...

  8. 更新 hadoop eclipse 插件

    卸载hadoop 1.1.2插件.并安装新版hadoop 2.2.0插件. 假设直接删除eclipse plugin文件夹下的hadoop 1.1.2插件,会导致hadoop 1.1.2插件残留在ec ...

  9. Windows平台下安装Eclipse插件,开发Hadoop应用

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

随机推荐

  1. 循环神经网络与LSTM网络

    循环神经网络与LSTM网络 循环神经网络RNN 循环神经网络广泛地应用在序列数据上面,如自然语言,语音和其他的序列数据上.序列数据是有很强的次序关系,比如自然语言.通过深度学习关于序列数据的算法要比两 ...

  2. ImportError: No module named ‘MySQLdb'

    1.APP未注册 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contentty ...

  3. Codeforces Round #362 (Div. 2)

    闲来无事一套CF啊,我觉得这几个题还是有套路的,但是很明显,这个题并不难 A. Pineapple Incident time limit per test 1 second memory limit ...

  4. HDU-1392 Surround the Trees,凸包入门!

    Surround the Trees 此题讨论区里大喊有坑,原谅我没有仔细读题还跳过了坑点. 题意:平面上有n棵树,选一些树用绳子围成一个包围圈,使得所有的树都在这个圈内. 思路:简单凸包入门题,凸包 ...

  5. iOS第三方地图-高德地图(导航sdk路径规划)

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  6. PAT天梯赛练习题——L3-003. 社交集群(并查集按秩合并)

    L3-003. 社交集群 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 在社交网络平台注册时,用户通常会输入自己的兴趣爱好, ...

  7. P1279 字串距离 (动态规划)

    题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为”abcbcd”,则字符串“abcb□cd”,“□a□bcbcd□”和“abcb□cd□”都是X ...

  8. Tomcat 调优技巧

    Tomcat 调优技巧:1.Tomcat自身调优: ①采用动静分离节约Tomcat的性能: ②调整Tomcat的线程池: ③调整Tomcat的连接器: ④修改Tomcat的运行模式: ⑤禁用AJP连接 ...

  9. nmon性能分析工具(生成图表)

    1. nmon性能结果生成报告工具下载地址: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power% ...

  10. Laravel 控制器的middleware中间件

    场景:活动开始前只能访问宣传页面,开始后才可以访问其他页面: 步骤: 新建中间件, 注册中间件, 使用中间件, 中间件的前置和后置操作. 控制器: public function activity0( ...