2012-12-08 18 views
6

मेरे पास हैडोप की ग्रहण प्लगइन के साथ ऐसा दुःस्वप्न है। सबसे पहले नवीनतम हडोप संस्करण (जो 1.1.1 है) में ग्रहण प्लगइन जार फ़ाइल भी शामिल नहीं है। संस्करण 1.0.4 में प्लगइन है, लेकिन यह काम नहीं करता है। हडोप के पहले संस्करण जैसे कि 0.22.0 में प्लगइन है और यह काम करता है, लेकिन फिर हडोप के ये संस्करण पुराने हैं, और मैं नवीनतम संस्करण को बुद्धिमान बनाना चाहता हूं। तो, हडोप के लिए ग्रहण प्लगइन के साथ क्या सौदा है? नवीनतम संस्करणों में प्लगइन क्यों नहीं है, या यदि वे करते हैं, तो प्लगइन काम नहीं करता है? क्या इस प्लगइन के साथ हर किसी को इतनी समस्या है? क्या मुझे इस प्लगइन पर छोड़ देना चाहिए?हैडोप के ग्रहण प्लगइन को स्थापित करना

धन्यवाद, शैनन

+0

संभावित डुप्लिकेट [मैं हडूप 1.0.4 के लिए ग्रहण प्लगइन कहां पा सकता हूं] (http://stackoverflow.com/questions/13012852/where-can-i-find-the-eclipse-plugin-for-hadoop -1-0-4) –

उत्तर

5

मैं Hadoop-1.0.4 के लिए ग्रहण प्लगइन कल कठिनाई के साथ स्थापित किया है, और यह सफल परीक्षण किया गया।

नहीं प्लगइन काम करने के लिए कारण यह है कि जार पैकेज कुछ libs खो दिया है:

  • कॉमन्स-CLI-1.2.jar
  • कॉमन्स-विन्यास-1.6.jar
  • जैक्सन कोर-एएसएल -1.8.8.jar
  • जैक्सन-नक्शाकार-ASL-1.8.8.jar
  • कॉमन्स-httpclient-3.0.1.jar
  • कॉमन्स-lang-2.4.jar

आप $ {Hadoop}/libमें $ {जार}/lib से इस जार सी.पी. सकता है, और MANIFEST को संशोधित करने के लिए मत भूलना।

सुविधा के लिए, मैं कुछ कोड $ {ग्रहण-प्लगइन-src} को लक्ष्य जार

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

/build.xml जोड़ सकते हैं और $ {में 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

धन्यवाद क्रिस। आप एक जीवन रक्षक है। बस एक और सवाल; मैंने आपकी पिछली सलाह ली और मैवेन के माध्यम से हडोप परियोजनाएं बनाना शुरू किया जिसका मतलब है कि मुझे ऐसी परियोजनाओं के लिए ग्रहण प्लगइन की आवश्यकता नहीं होगी। क्या आपको लगता है कि मुझे ग्रहण प्लगइन का उपयोग करना बंद कर देना चाहिए? मुझे लगता है कि हडोप की ग्रहण प्लगइन के साथ आने वाली कठिनाइयों ने इसे कुछ हद तक देयता बना दिया है। क्या आप सहमत हैं? – user1888243

+0

हैडोप की ग्रहण प्लगइन आपूर्ति ग्रहण एचडीओप मानचित्र/कम करने और एचडीएफएस अनुप्रयोग के लिए डीबग समर्थन, एचडीएफएस और जॉबट्रैकर – hs3180

+0

कनेक्ट करने के लिए एक जीयूआई दें, मैंने आपके तरीकों का पालन किया है और "चींटी जार" कमांड के साथ प्लगइन बनाया है, लेकिन मुझे नोटिंग मिल गई है। क्या आप अपनी विधि को अधिक विस्तार से व्यक्त कर सकते हैं? धन्यवाद! @ एचएस 3180 –

2

ठीक है, एचएस 3180 के उत्तर के साथ संयुक्त, यहां मैंने संकलन को कॉन्फ़िगर करने में वास्तव में क्या किया है।

  1. में $ {ग्रहण-प्लगइन-src} /build.xml, निम्नलिखित निर्देशों का उपयोग ग्रहण-प्लगइन के लिए आवश्यक जार शामिल करने के लिए। यहां ध्यान दें कि, ${hadoop.root}/build की बजाय, hadoop-core-${version}.jar की प्रतिलिपि अब ${hadoop.root} से सीधे है, क्योंकि यदि आप हडूप के संकलित संस्करण का उपयोग कर रहे हैं, तो ${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} /META-INF/MANIFEST.MF फ़ाइल /build.xml $ {ग्रहण-प्लगइन-src} में किए गए परिवर्तनों को समायोजित करने के।

    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 फ़ाइल को संशोधित करें। पहला प्लगइन संकलन के लिए आवश्यक गुणों को स्थापित करना है। और दूसरा यह सुनिश्चित करना है कि ${hadoop.root} फ़ोल्डर में जार, विशेष रूप से hadoop-core-1.0.4.jar, javac के लिए दृश्यमान हैं, क्योंकि ग्रहण-प्लगइन हैडूप कक्षाओं का संदर्भ देता है। यह सेटअप पहले दो उद्देश्यों से अलग है और इस प्रकार यह व्यवहार्य नहीं है।

    <!-- 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}/ से फोन में सांत्वना आराम के लिए पर्याप्त होगा।

संबंधित मुद्दे