6

私はHadoopのEclipseプラグインでそのような悪夢を抱いています。まず第一に、最新のHadoopバージョン(1.1.1)には、Eclipseプラグインのjarファイルすら含まれていません。バージョン1.0.4にはプラグインがありますが、機能しません。0.22.0などの以前のバージョンのHadoopにはプラグインがあり、動作しますが、これらのバージョンのHadoopは古いため、最新バージョンで動作させたいと思います。では、Hadoop用のEclipseプラグインとの取引は何ですか?最新バージョンにプラグインがないのはなぜですか、またはプラグインがある場合はプラグインが機能しませんか?誰もがこのプラグインにそれほど問題がありますか?このプラグインをあきらめる必要がありますか?

ありがとう、シャノン

4

2 に答える 2

5

昨日、hadoop-1.0.4用のEclipseプラグインを問題なくインストールし、テストに成功しました。

プラグインが機能しない理由は、jarパッケージがいくつかのライブラリを失ったことです:

  • commons-cli-1.2.jar
  • commons-configuration-1.6.jar
  • jackson-core-asl-1.8.8.jar
  • jackson-mapper-asl-1.8.8.jar
  • コモンズ-httpclient-3.0.1.jar
  • commons-lang-2.4.jar

このjarを${hadoop}/libから${jar}/ libにcpできます。また、 MANIFESTを変更することを忘れないでください。

便宜上、${eclipse-plugin-src}/build.xmlターゲットjarにコードを追加します

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

$ {eclipse-plugin-src}/META-INFのMANIFEST.MFを変更しました

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

Eclipseプラグインを再構築して、楽しんでください!

于 2012-12-10T20:03:26.553 に答える
2

さて、hs3180の答えと組み合わせて、これが私がコンパイルを構成する際に実際に行ったことです。

  1. $ {eclipse-plugin-src} /build.xmlで、次のディレクティブを使用して、eclipse-pluginによって必要なjarをインクルードします。ここで、fromではなく${hadoop.root}/build、のコピーが直接hadoop-core-${version}.jarfromになっていることに注意してください${hadoop.root}。これは、コンパイルされたバージョンのhadoopを使用している場合、${hadoop.root}/buildフォルダーは実際には空になるためです。同じ理由で、のコピーはcommons-cli-${commons-cli.version}.jarからになりました。${hadoop.root}/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}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-configuration-${commons-configuration.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-httpclient-${commons-httpclient.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-lang-${commons-lang.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/jackson-core-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/jackson-mapper-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
    
  2. $ {eclipse-plugin-src} /META-INF/MANIFEST.MFファイルを変更して、${eclipse-plugin-src}/build.xmlに加えられた変更に対応します。

    Bundle-ClassPath: classes/,
     lib/hadoop-core.jar,
     lib/commons-cli-1.2.jar,
     lib/commons-configuration-1.6.jar,
     lib/jackson-core-asl-1.8.8.jar,
     lib/commons-httpclient-3.0.1.jar,
     lib/jackson-mapper-asl-1.8.8.jar,
     lib/commons-lang-2.4.jar
    
  3. ${hadoop.root}/src/contrib/build-contrib.xmlファイルを2か所で変更します。1つ目は、プラグインのコンパイルに必要なプロパティを設定することです。hadoop-core-1.0.4.jar2つ目は、特にフォルダー内のjar${hadoop.root}がjavacに表示されるようにすることです。これは、eclipse-pluginがhadoopクラスを参照しているためです。この設定は、最初の2つの設定とは目的が異なるため、必須ではありません。

    <!-- Properties added for compiling eclipse-plugin -->
    <!-- http://yiyujia.blogspot.com/2012/11/build-hadoop-eclipse-plugin-from-source.html -->
    <property name="eclipse.home" location="/Users/xuj/Downloads/eclipse/"/>
    <property name="version" value="1.0.4"/>
    <property name="commons-cli.version" value="1.2"/>
    
    <!-- the normal classpath -->
    <path id="contrib-classpath">
      <fileset dir="${hadoop.root}">
        <include name="*.jar" />
      </fileset>
      <!-- more path elements go here -->
    </path>
    

すべてのファイルが正しく構成されたら、残りはコンソールから「 antjar${eclipse-plugin-src}/ 」を呼び出すだけで十分です。

于 2013-04-19T01:31:41.430 に答える