2015-12-16 2 views
6

हम क्लौडेरा 5.5 सेट अप करने की कोशिश कर रहे हैं जहां एचडीएफएस केवल एस 3 पर काम करेगा, जिसके लिए हमने पहले से ही कोर- site.xmlएचडीएफएस फॉर्म स्थानीय डिस्क को एस 3 प्राप्त करने में त्रुटि बदलें (org.apache.hadoop.service.AbstractService)

<property> 
    <name>fs.s3a.access.key</name> 
    <value>################</value> 
</property> 
<property> 
    <name>fs.s3a.secret.key</name> 
    <value>###############</value> 
</property> 
<property> 
    <name>fs.default.name</name> 
    <value>s3a://bucket_Name</value> 
</property> 
<property> 
    <name>fs.defaultFS</name> 
    <value>s3a://bucket_Name</value> 
</property> 

उसे सेट अप करने के बाद हम आदेश

hadoop fs -ls/

से S3 बाल्टी के लिए फ़ाइलें ब्राउज़ करने में सक्षम थे और यह फ़ाइलों को केवल S3 पर उपलब्ध पता चलता है।

लेकिन जब हम यार्न सेवाओं JobHistory सर्वर नीचे त्रुटि के साथ और सुअर नौकरियों शुरू करने पर हम एक ही त्रुटि

PriviledgedActionException as:mapred (auth:SIMPLE) cause:org.apache.hadoop.fs.UnsupportedFileSystemException: No AbstractFileSystem for scheme: s3a 
ERROR org.apache.hadoop.mapreduce.v2.jobhistory.JobHistoryUtils 
Unable to create default file context [s3a://kyvosps] 
org.apache.hadoop.fs.UnsupportedFileSystemException: No AbstractFileSystem for scheme: s3a 
    at org.apache.hadoop.fs.AbstractFileSystem.createFileSystem(AbstractFileSystem.java:154) 
    at org.apache.hadoop.fs.AbstractFileSystem.get(AbstractFileSystem.java:242) 
    at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:337) 
    at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:334) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 

हो रही है तो हमने पाया कि हम के रूप में निम्नलिखित गुण निर्धारित करने की आवश्यकता है कि इंटरनेट पर serching पर शुरू करने के लिए विफल रहता है शुरू अच्छी तरह से कोर-site.xml में

<property> 
    <name>fs.s3a.impl</name> 
    <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value> 
    <description>The implementation class of the S3A Filesystem</description> 
</property> 
<property> 
    <name>fs.AbstractFileSystem.s3a.impl</name> 
    <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value> 
    <description>The FileSystem for S3A Filesystem</description> 
</property> 

ऊपर गुण सेट करने के बाद हम त्रुटि

org.apache.hadoop.service.AbstractService 
Service org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager failed in state INITED; cause: java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.hadoop.fs.s3a.S3AFileSystem.<init>(java.net.URI, org.apache.hadoop.conf.Configuration) 
java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.hadoop.fs.s3a.S3AFileSystem.<init>(java.net.URI, org.apache.hadoop.conf.Configuration) 
    at org.apache.hadoop.fs.AbstractFileSystem.newInstance(AbstractFileSystem.java:131) 
    at org.apache.hadoop.fs.AbstractFileSystem.createFileSystem(AbstractFileSystem.java:157) 
    at org.apache.hadoop.fs.AbstractFileSystem.get(AbstractFileSystem.java:242) 
    at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:337) 
    at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:334) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671) 
    at org.apache.hadoop.fs.FileContext.getAbstractFileSystem(FileContext.java:334) 
    at org.apache.hadoop.fs.FileContext.getFileContext(FileContext.java:451) 
    at org.apache.hadoop.fs.FileContext.getFileContext(FileContext.java:473) 
    at org.apache.hadoop.mapreduce.v2.jobhistory.JobHistoryUtils.getDefaultFileContext(JobHistoryUtils.java:247) 
हो रही है निम्नलिखित 63,210

जार इस के लिए आवश्यक जगह में है, लेकिन अभी भी त्रुटि कोई मदद हो रही है बहुत अच्छा होगा। अग्रिम धन्यवाद

अद्यतन

मैं fs.AbstractFileSystem.s3a.impl संपत्ति को दूर करने की कोशिश की, लेकिन यह मुझे एक ही पहले अपवाद एक मैं पहले से हो रही थी जो

org.apache.hadoop.security.UserGroupInformation 
PriviledgedActionException as:mapred (auth:SIMPLE) cause:org.apache.hadoop.fs.UnsupportedFileSystemException: No AbstractFileSystem for scheme: s3a 
ERROR org.apache.hadoop.mapreduce.v2.jobhistory.JobHistoryUtils 
Unable to create default file context [s3a://bucket_name] 
org.apache.hadoop.fs.UnsupportedFileSystemException: No AbstractFileSystem for scheme: s3a 
    at org.apache.hadoop.fs.AbstractFileSystem.createFileSystem(AbstractFileSystem.java:154) 
    at org.apache.hadoop.fs.AbstractFileSystem.get(AbstractFileSystem.java:242) 
    at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:337) 
    at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:334) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671) 
    at org.apache.hadoop.fs.FileContext.getAbstractFileSystem(FileContext.java:334) 
    at org.apache.hadoop.fs.FileContext.getFileContext(FileContext.java:451) 
    at org.apache.hadoop.fs.FileContext.getFileContext(FileContext.java:473) 
है देना
+0

जार फ़ाइलों का स्थान क्या है? क्या वे सभी नोड्स पर एक ही स्थान पर हैं? –

+0

@ दुर्गा विश्वनाथ गदिराजू स्थान "/opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/lib/hadoop" है और हाँ वे सभी नोड्स –

उत्तर

4

समस्या जार के स्थान के साथ नहीं है।

समस्या सेटिंग के साथ है:

<property> 
    <name>fs.AbstractFileSystem.s3a.impl</name> 
    <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value> 
    <description>The FileSystem for S3A Filesystem</description> 
</property> 

यह सेटिंग की जरूरत नहीं है। इस सेटिंग के कारण, यह S3AFileSystem कक्षा में निर्माता निम्नलिखित के लिए खोज कर रहा है और इस तरह का कोई निर्माता है:

S3AFileSystem(URI theUri, Configuration conf); 

बाद अपवाद स्पष्ट रूप से बताता है कि यह URI और Configuration मानकों के साथ S3AFileSystem के लिए एक निर्माता खोजने में असमर्थ है।

java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.hadoop.fs.s3a.S3AFileSystem.<init>(java.net.URI, org.apache.hadoop.conf.Configuration) 

इस समस्या को हल करने के लिए, core-site.xml से fs.AbstractFileSystem.s3a.impl सेटिंग को हटा दें। में fs.s3a.impl सेटिंग रखने से आपकी समस्या हल होनी चाहिए।

संपादित करें: org.apache.hadoop.fs.s3a.S3AFileSystem सिर्फ FileSystem लागू करता है।

इसलिए, आप fs.AbstractFileSystem.s3a.impl से org.apache.hadoop.fs.s3a.S3AFileSystem पर मान सेट नहीं कर सकते हैं, क्योंकि org.apache.hadoop.fs.s3a.S3AFileSystemAbstractFileSystem लागू नहीं करता है।

मैं Hadoop 2.7 उपयोग कर रहा हूँ।0 और इस संस्करण में s3AAbstractFileSystem के रूप में प्रकट नहीं किया गया है।

जेआईआरए टिकट है: https://issues.apache.org/jira/browse/HADOOP-11262 इसे लागू करने के लिए और फिक्स हैडोप 2.8.0 में उपलब्ध है।

मान लें, अपने जार s3A रूप AbstractFileSystem उजागर कर दिया है, तो आप स्थापित करने की आवश्यकता fs.AbstractFileSystem.s3a.impl के लिए निम्नलिखित:

<property> 
    <name>fs.AbstractFileSystem.s3a.impl</name> 
    <value>org.apache.hadoop.fs.s3a.S3A</value> 
</property> 

कि आपकी समस्या का समाधान होगा।

+0

पर उसी स्थान पर हैं, मैंने कोशिश की यह मुझे त्रुटि देता है "PriviledgedActionException के रूप में: mapred (auth: SIMPLE) कारण: org.apache.hadoop.fs.UnsupportedFileSystemException: योजना के लिए कोई सारफाइल सिस्टम नहीं: s3a" इसके कारण मैंने केवल core-stie.xml में संपत्ति को जोड़ा है मैं अपना प्रश्न भी अपडेट करूंगा –

+0

क्या आप मुझे बता सकते हैं, आप कहां से 3 ए फाइल सिस्टम के लिए जार उठा रहे हैं? फिर, मैं निश्चित रूप से आपकी समस्या का समाधान कर सकता हूं। मैं यहां कार्यान्वयन को देख रहा था: https://github.com/Aloisius/hadoop-s3a, जो सिर्फ फाइल सिस्टम लागू करता है। –

+0

जार क्लौडेरा के डिफ़ॉल्ट स्थान पर है जो "/opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/lib/hadoop" है जार नाम हैडूप-aws-2.6.0 -cdh5.5.0.jar –

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