2012-12-08 5 views
6

Ich habe mit dem Hadoop Eclipse Plugin einen solchen Albtraum. Zunächst einmal enthält die neueste Hadoop-Version (die 1.1.1 ist) nicht einmal die JAR-Datei des Eclipse-Plugins. Version 1.0.4 hat das Plugin, aber es funktioniert nicht. Frühere Versionen von Hadoop wie 0.22.0 haben das Plugin und es funktioniert, aber dann sind diese Versionen von Hadoop alt, und ich möchte mit der neuesten Version arbeiten. Also, was ist der Deal mit Eclipse Plugin für Hadoop? Warum haben die neusten Versionen das Plugin nicht oder falls ja, funktioniert das Plugin nicht? Hat jeder so viele Probleme mit diesem Plugin? Soll ich dieses Plugin aufgeben?Installation von Hadoop's Eclipse Plugin

Danke, Shannon

+0

mögliches Duplikat von [Wo finde ich das Eclipse-Plugin für hadoop 1.0.4] (http://stackoverflow.com/questions/13012852/where-can-i-find-the-eclipse-plugin-for-hadoop) -1-0-4) –

Antwort

5

Ich installierte Eclipse-Plugin für Hadoop-1.0.4 gestern nur mit Mühe und getestet es erfolgreich.

Der Grund für Plugin nicht funktioniert ist, dass die JAR-Paket einige Libs verloren:

  • commons-cli-1.2.jar
  • commons-Konfiguration-1.6.jar
  • jackson-Core-asl -1.8.8.jar
  • jackson-Mapper-asl-1.8.8.jar
  • commons-Httpclient-3.0.1.jar
  • commons-lang-2.4.jar

können Sie diese Gläser aus $ cp {hadoop}/lib zu $ {jar}/lib, und vergessen Sie nicht MANIFESTEN ändern.

Der Einfachheit halber füge ich einige Code $ {Eclipse-Plugin-src} /build.xml Ziel 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"/> 

und modifizierte MANIFEST.MF in $ {Eclipse- plugin-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 

Wiederaufbau eclipse-Plugin, und Spaß haben!

+0

Danke Chris. Du bist ein Lebensretter. Nur eine andere Frage; Ich habe Ihren früheren Ratschlag angenommen und begann, Hadoop-Projekte über Maven zu erstellen, was bedeutet, dass ich für solche Projekte kein Eclipse-Plugin benötige. Denkst du, ich sollte aufhören Eclipse-Plugin zu verwenden? Ich denke, dass die Schwierigkeiten, die Hadoops Eclipse-Plugin mit sich bringt, eine gewisse Belastung darstellen. Sind Sie einverstanden? – user1888243

+0

Hadoops Eclipse-Plugin liefern Eclipse-Debug-Unterstützung für Hadoop Map/reduzieren und hdfs Anwendung, geben Sie eine GUI zum Verbinden von hdfs und Jobtracker – hs3180

+0

Ich habe Ihre Methoden gefolgt und baute das Plugin mit dem Befehl "ant jar", aber ich habe es bemerkt. Können Sie Ihre Methode genauer ausdrücken? Vielen Dank! @ hs3180 –

2

Nun, kombiniert mit der Antwort von hs3180, hier ist, was ich tatsächlich bei der Konfiguration der Kompilierung getan habe.

  1. In $ {Eclipse-Plugin-src} /build.xml, die folgenden Richtlinien verwenden, um erforderlichen Gläser durch die Eclipse-Plugin enthalten. Beachten Sie hier, dass anstelle von ${hadoop.root}/build das Kopieren des jetzt direkt von ${hadoop.root} erfolgt, denn wenn Sie die kompilierte Version von hadoop verwenden, wäre der Ordner ${hadoop.root}/build eigentlich leer. Kopieren der commons-cli-${commons-cli.version}.jar ist jetzt aus ${hadoop.root}/lib aus dem gleichen Grund.

    <!-- <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. ändern die $ {Eclipse-Plugin-src} /META-INF/MANIFEST.MF Datei, um die Änderungen zu $ gemacht aufzunehmen {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. Ändern Sie den $ {} hadoop.root /src/contrib/build-contrib.xml Datei an zwei Stellen. Die erste besteht darin, die für das Plugin-Kompilieren erforderlichen Eigenschaften einzurichten. Und das zweite ist, um sicherzustellen, dass jars, insbesondere hadoop-core-1.0.4.jar, im Ordner ${hadoop.root} für javac sichtbar sind, da das Eclipse-Plugin die Hadoop-Klassen referenziert. Diese Einrichtung unterscheidet sich von den ersten beiden in ihrem Zweck und ist daher nicht entbehrlich.

    <!-- 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> 
    

Wenn alle Dateien korrekt aufrufen konfiguriert, 'ant jar' von ${eclipse-plugin-src}/ in der Konsole für den Rest ausreichend sein soll.