2010-06-07 9 views
6

के साथ एपीआई हैडऑप संस्करण मैंने जावा 1.5.0_14 में मैपरेडस एल्गोरिदम लागू करने की कोशिश कर रहे एक मेवेन प्रोजेक्ट शुरू कर दिया है। मैंने 0.20.2 एपीआई हैडऑप संस्करण चुना है। pom.xml में मैं इस प्रकार निम्नलिखित निर्भरता उपयोग कर रहा हूँ:0.20.2 जावा 5

< निर्भरता>

< groupId>org.apache.hadoop< /groupId>  
< artifactId>hadoop-core< /artifactId>  
< version>0.20.2< /version> 

</निर्भरता>

लेकिन जब मैं org.apache को एक आयात उपयोग कर रहा हूँ। Hadoop कक्षाएं, मैं निम्नलिखित त्रुटि मिलती है:

बुरा वर्ग फ़ाइल: $ {HOME_DIR} \ भंडार \ ऑर्ग \ अपाचे \ Hadoop \ Hadoop कोर \ 0.20.2 \ Hadoop कोर-0.20.2.jar (ऑर्ग /apache/hadoop/fs/Path.class) सीएल गधे फ़ाइल में गलत संस्करण 50.0 है, 49.0 होना चाहिए।

क्या कोई जानता है कि मैं इस समस्या को कैसे हल कर सकता हूं।

धन्यवाद।

उत्तर

2

मैवेन डिफ़ॉल्ट रूप से जेडीके 1.4 संगतता के लिए संकलित करता है। आपको इसे बदलने की जरूरत है।

आप अपने pom.xml को यह जोड़ने की जरूरत:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.0.2</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
    </configuration> 
</plugin> 

:

+0

क्लास फ़ाइल संस्करण 50 मानचित्र जावा 6 पर, इसलिए वास्तव में उसे "1.6" का स्रोत और लक्ष्य निर्दिष्ट करने की आवश्यकता है। (हैडोप को जावा 6 की आवश्यकता है) –

1

[संपादित करें आप Hadoop ओर इशारा करते हुए के लिए शॉन धन्यवाद JDK 6 की आवश्यकता है] मैं इस में ठीक उसी समस्या हुई थी। एसबीटी स्वयं जावा 5 पर चल रहा था, जो एक मूर्ख लेकिन वैध कारण के लिए मेरे मैक पर डिफ़ॉल्ट है। एक बार जब मैंने जावा 6 के साथ स्पष्ट रूप से शुरू करने के लिए अपनी एसबीटी स्क्रिप्ट बदल दी, तो सब ठीक काम किया।

0
अपने Maven-संकलक प्लगइन के स्रोत & लक्ष्य विन्यास की परवाह किए बिना

(है कि केवल नियंत्रित करता है कि अपने स्रोत कोड संकलित किया गया है) आप के बाद से यह लक्ष्यीकरण "1.6" JVM संकलित किया गया है Hadoop के कोड को चलाने के लिए एक 1.6 JVM उपयोग करना चाहिए।

तो, बस 1.6 जावा रनटाइम स्थापित करें और अपने प्रोग्राम को चलाने के लिए इसका उपयोग करें।

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