`

Hadoop Eclipse 插件编译安装

阅读更多
最近开始学习Hadoop,hadoop 的新版本为了能和各个eclipse 的版本兼容,因此只提供了源代码,开发人员需要手动编译。
hadoop eclipse 插件的源代码位于$HADOOP_HOME/src/contrib/eclipse-plugin 下面。
如果只想单独编译hadoop 的ecliose 插件那么需要修改该目录下面的build.xml 文件
下面是我的一个配置文件,大家可以根据自己的环境修改,编译过程需要用到eclipse的目录以及hadoop的lib下面的相关jar文件,所以需要在此配置,注意改成你的hadoop所对应的版本。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="jar" name="eclipse-plugin">
  <property name="name" value="${ant.project.name}"/>
  <property name="root" value="${basedir}"/>
  <property name="hadoop.root" location="/home/cheney/download/hadoop-1.1.2"/>
  <property name='version' value='1.1.2'/>
  <property name='eclipse.home' location='/home/cheney/soft/eclipse'/>
  <property name="build.dir" location="${hadoop.root}/build/contrib/${name}"/>
  <property name="build.classes" location="${build.dir}/classes"/>
  <property name="src.dir"  location="${root}/src/java"/>
  
  <path id="eclipse-sdk-jars">
    <fileset dir="${eclipse.home}/plugins/">
      <include name="org.eclipse.ui*.jar"/>
      <include name="org.eclipse.jdt*.jar"/>
      <include name="org.eclipse.core*.jar"/>
      <include name="org.eclipse.equinox*.jar"/>
      <include name="org.eclipse.debug*.jar"/>
      <include name="org.eclipse.osgi*.jar"/>
      <include name="org.eclipse.swt*.jar"/>
      <include name="org.eclipse.jface*.jar"/>
      <include name="org.eclipse.team.cvs.ssh2*.jar"/>
      <include name="com.jcraft.jsch*.jar"/>
    </fileset> 
  </path>
  <!-- Override classpath to include Eclipse SDK jars -->
  <path id="classpath">
   <fileset dir="${hadoop.root}">
    <include name="*.jar"/>
   </fileset>
    <path refid="eclipse-sdk-jars"/>
  </path>

 <target name="compile">
  <mkdir dir="${build.dir}/classes"/>
       <javac
     encoding="ISO-8859-1"
     srcdir="${src.dir}"
     includes="**/*.java"
     destdir="${build.classes}"
     debug="on"
     deprecation="off">
     <classpath refid="classpath"/>
    </javac>
  </target>
  <!-- Override jar target to specify manifest-->
  <target name="jar" depends="compile">
    <mkdir dir="${build.dir}/lib"/>
    <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-cli-1.2.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/jackson-core-asl-1.8.8.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-mapper-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/>
    <jar
      jarfile="${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>
</project>


然后执行 ant jar
编译后的文件位于:$HADOOP_HOME/build/contrib/eclipse-plugin 下面

这时候插件还不能使用,还需要修改 jar 文件中的 META-INF/MANIFEST.MF文件


Bundle-ClassPath:classes/,lib/hadoop-core.jar

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

大家注意这些jar 文件的版本和你的hadoop 中的版本对应。

将编译后的hadoop-eclipse-plugin-1.1.2.jar 文件,复制到eclipse 的 plugins 下面即可。
3
0
分享到:
评论
7 楼 lionkingzw 2013-07-18  
lionkingzw 写道
vigiles 写道
你好!我用的是hadoop-1.1.2,$HADOOP_HOME/src/contrib中没有eclipse-plugin这个文件夹啊?

我也没看到啊,只有ec2这个文件夹

原来还真是下载的bin版本。
6 楼 lionkingzw 2013-07-18  
vigiles 写道
你好!我用的是hadoop-1.1.2,$HADOOP_HOME/src/contrib中没有eclipse-plugin这个文件夹啊?

我也没看到啊,只有ec2这个文件夹
5 楼 vigiles 2013-05-16  
我把自己的步骤详细写在这了:
http://www.oschina.net/question/256028_110890
做这个好几天了,感觉真难啊
请老师再指点下!
4 楼 cheney_love 2013-05-15  
vigiles 写道
今天我找到完整版的gz文件了,根据你的文章进行操作,到了 ant jar 时出错了:

Buildfile: /home/hm/hadoop-1.1.2/src/contrib/eclipse-plugin/build.xml

BUILD FAILED
Target "init" does not exist in the project "eclipse-plugin". It is used from target "compile".

Total time: 0 seconds

请问,是不是说要首先 ant compile 操作?

我试着 ant compile,仍然是这个错误,ant 也是。


应该是你的build.xml 有错误吧,执行ant jar 的时候是和build.xml 在同一目录吗
3 楼 vigiles 2013-05-15  
今天我找到完整版的gz文件了,根据你的文章进行操作,到了 ant jar 时出错了:

Buildfile: /home/hm/hadoop-1.1.2/src/contrib/eclipse-plugin/build.xml

BUILD FAILED
Target "init" does not exist in the project "eclipse-plugin". It is used from target "compile".

Total time: 0 seconds

请问,是不是说要首先 ant compile 操作?

我试着 ant compile,仍然是这个错误,ant 也是。
2 楼 cheney_love 2013-05-14  
vigiles 写道
你好!我用的是hadoop-1.1.2,$HADOOP_HOME/src/contrib中没有eclipse-plugin这个文件夹啊?

你下载的是source code 吗
1 楼 vigiles 2013-05-13  
你好!我用的是hadoop-1.1.2,$HADOOP_HOME/src/contrib中没有eclipse-plugin这个文件夹啊?

相关推荐

Global site tag (gtag.js) - Google Analytics