編譯eclipse hadoop插件

操做系統:ubuntuios

hadoop版本:1.0.1shell

eclipse版本:eclipse Helios-SR2ubuntu

直接經過hadoop 1.0.1掩碼插件生成的eclipse插件是不能用的,由於少了一些jar包,因此須要手工修改src/contrib/eclipse-plugin目錄下的build.xml文件和META-INF/MANIFEST.MF文件。app

  1. 修改build.xml文件less

這是沒修改前的eclipse

<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.jar" verbose="true"/>
    <copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
      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>

在這個基礎上修改,修改後爲oop

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

2. 修改META-INF/MANIFEST.MF文件ui

這是沒修改前的操作系統

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

在這個基礎上修改,修改後爲插件

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

注意要把build.xml中定義的全部jar包都加上,我就是一開始少寫了lib/commons-cli-1.2.jar,致使使用是仍是一直報Error:failure to login的錯誤,折騰了好久(被《hadoop技術內幕》這本書誤導了)

3.編譯生成插件jar包

命令行進入到hadoop安裝目錄下的src/contrib/eclipse-plugin目錄下,輸入如下命令:

ant -Declipse.home=/home/jason/eclipse -Dversion=1.0.2-SNAPSHOT

其中eclipse.home是用來指定eclipse的路徑,version是Hadoop的版本號。

最後會在hadoop安裝目錄下的build/contrib/eclipse-plugin目錄下看到生成的jar包,把它拷貝到eclipse的插件目錄下便可。

相關文章
相關標籤/搜索