2012-12-08 17 views
6

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

おかげで、 シャノン

+0

可能な複製[どこでhoodoop 1.0.4のためのeclipseプラグインを見つけることができますか?](http://stackoverflow.com/questions/13012852/where-can-i-find-the-eclipse-plugin-for-hadoop -1-0-4) –

答えて

5

は私が困難で、昨日のHadoop-1.0.4用のEclipseプラグインをインストールし、そして成功し、それをテストしました。

プラグインのために働いていない理由は、jarファイルのパッケージは、いくつかのlibs失ったということです。

  • コモンズ-CLI-1.2.jar
  • コモンズ・コンフィギュレーション-1.6.jar
  • ジャクソンコア-ASLを-1.8.8.jar
  • ジャクソンマッパー-ASL-1.8.8.jar
  • コモンズ-HTTPClientの-3.0.1.jar
  • コモンズ-のlang-2.4.jar

あなたは$ {}のHadoop/に$ {} jarファイルのlib/libにからこのjarファイルをcpは可能性があり、MANIFESTを変更することを忘れないでください。

便宜のために、私は{食-プラグインSRC} /build.xmlにターゲットジャー

<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"/> 

$にコードを追加し、MANIFEST.MFで$ {eclipse-修飾プラグイン-SRC}/META-INF

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 

日食・プラグインを再構築して、楽しい時を過します!

+0

クリスおかげさま。あなたは人生の節約者です。もう一つの質問。私は以前のアドバイスを受けて、Mavenを通してHadoopプロジェクトを作成し始めました。つまり、このようなプロジェクトにEclipseプラグインは必要ありません。 Eclipseプラグインの使用をやめるべきだと思いますか? HadoopのEclipseプラグインには難しい点があります。同意しますか? – user1888243

+0

HadoopのEclipseプラグインがhadoop map/reduceとhdfsアプリケーション用のEclipseデバッグサポートを提供し、hdfsとjobtrackerを接続するためのGUIを提供します – hs3180

+0

私はあなたのメソッドに従い、 "ant jar"コマンドでプラグインを構築しました。あなたの方法をもっと詳しく表現できますか?ありがとう! @ hs3180 –

2

まあ、hs3180の答えと組み合わせて、ここで実際にコンパイルを構成したことがあります。

  1. で$ {Eclipseベースのプラグイン-SRC} /build.xmlに、エクリプス・プラグインによって必要なjarを含めるために、次のディレクティブを使用。ここで、${hadoop.root}/buildの代わりにhadoop-core-${version}.jarのコピーが${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. $ {-プラグインSRC日食}に対して行われた変更に対応するために$ {Eclipseベースのプラグイン-SRC} /META-INF/MANIFEST.MFファイルを変更を/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. は2箇所で$ {} hadoop.root /src/contrib/build-contrib.xmlファイルを変更します。 1つは、プラグインのコンパイルに必要なプロパティを設定することです。もう1つは、${hadoop.root}フォルダ内のjarファイル、特にhadoop-core-1.0.4.jarが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> 
    

、コンソールで${eclipse-plugin-src}/から「蟻のjar」と呼ぶことは、残りのために十分なものでなければなりません。

関連する問題