2012-12-08 27 views
6

Mam taki koszmar z wtyczką Hoonop Eclipse. Przede wszystkim najnowsza wersja Hadoop (1.1.1) nie zawiera nawet pliku JAR dodatku Eclipse. Wersja 1.0.4 ma wtyczkę, ale nie działa. Wcześniejsze wersje Hadoop, takie jak 0.22.0, mają wtyczkę i działają, ale te wersje Hadoop są stare i chcę pracować z najnowszą wersją. Więc jaka jest umowa z wtyczką Eclipse dla Hadoop? Dlaczego w najnowszych wersjach nie ma wtyczki, a jeśli tak, to wtyczka nie działa? Czy każdy ma taki problem z tą wtyczką? Czy powinienem zrezygnować z tej wtyczki?Instalowanie wtyczki Eclipse Hadoop

Dzięki Shannon

+0

możliwy duplikat [Gdzie mogę znaleźć wtyczkę eclipse dla hadoop 1.0.4] (http://stackoverflow.com/questions/13012852/where-can-i-find-the-eclipse-plugin-for-hadoop -1-0-4) –

Odpowiedz

5

zainstalowałem eclipse plugin Hadoop-1.0.4 wczoraj z trudem, i testowałem to sukces.

Powodem plugin nie działa jest to, że opakowanie słoik stracił kilka bibliotekami:

  • Commons CLI-1.2.jar
  • Commons konfiguracyjny-1.6.jar
  • jackson-core-npm -1.8.8.jar
  • Jackson-mapper-aSL-1.8.8.jar
  • commons-httpclient-3.0.1.jar
  • commons-lang-2.4.jar

można CP to słoiki z $ {Hadoop}/lib do $ {słoik}/lib, i nie zapomnij modyfikując MANIFEST.

Dla ułatwienia dodam trochę kodu do $ {eclipse-plugin-src} /build.xml cel słoik

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

i modyfikowane MANIFEST.MF w $ {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 

odbudować Eclipse plugin i dobrej zabawy!

+0

Dzięki Chris. Jesteś ratownikiem życia. Jeszcze jedno pytanie; Wziąłem twoją wcześniejszą radę i zacząłem tworzyć projekty Hadoop przez maven, co oznacza, że ​​nie będę potrzebował wtyczki Eclipse do takich projektów. Czy uważasz, że powinienem po prostu przestać używać wtyczki Eclipse? Myślę, że trudności, które pojawiają się przy wtyczce Eclipse Hadoop, powodują, że jest to trochę odpowiedzialne. Czy sie zgadzasz? – user1888243

+0

Zintegrowana wtyczka Eclipse dla Hadoop zapewnia obsługę debugowania zaćmień dla aplikacji map miaoop/reduce i hdfs, daje GUI do łączenia hdfs i jobtracker. – hs3180

+0

Podążyłem za twoimi metodami i zbudowałem wtyczkę za pomocą komendy "mrówka słoika", ale zauważyłem. Czy możesz wyrazić swoją metodę bardziej szczegółowo? Dzięki! @ hs3180 –

2

Cóż, w połączeniu z odpowiedzią hs3180, oto, co faktycznie zrobiłem podczas konfigurowania kompilacji.

  1. W $ {eclipse-plugin-src} /build.xml, użyj następujących dyrektyw do słoików to wymagane przez Eclipse plugin. Zauważ tutaj, że zamiast z ${hadoop.root}/build, kopiowanie hadoop-core-${version}.jar jest teraz bezpośrednio z ${hadoop.root}, ponieważ jeśli używasz skompilowanej wersji hadoop, katalog ${hadoop.root}/build będzie w rzeczywistości pusty. Kopiowanie urządzenia commons-cli-${commons-cli.version}.jar jest teraz wykonane z tego samego powodu z numeru ${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. Zmodyfikować $ {eclipse-plugin-src} /META-INF/MANIFEST.MF plik, aby dostosować zmiany dokonane $ {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. Modyfikacja $ {hadoop.root} /src/contrib/build-contrib.xml plik w dwóch miejscach. Pierwszym z nich jest ustawienie właściwości potrzebnych do kompilacji wtyczek. Drugim jest upewnienie się, że słoiki, szczególnie hadoop-core-1.0.4.jar, w folderze ${hadoop.root} są widoczne dla javaca, ponieważ wtyczka eclipse odwołuje się do klas hadoop. Ta konfiguracja różni się od dwóch pierwszych w celu, a zatem nie jest zbędna.

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

Gdy wszystkie pliki poprawnie skonfigurowany, nazywamy 'ant jar' od ${eclipse-plugin-src}/ w konsoli powinna być wystarczająca dla reszty.

Powiązane problemy