2014-10-20 19 views
5

मैं अपने अमेज़ॅन ईएमआर क्लस्टर के लिए यार्न लॉग एकत्रीकरण को सक्षम करने के लिए संघर्ष कर रहा हूं। मैं विन्यास के लिए इस दस्तावेज़ अनुसरण कर रही हूं:एडब्ल्यूएस ईएमआर पर यार्न लॉग एग्रीगेशन - असमर्थितफाइलसिस्टम एक्सेप्शन

http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-debugging.html#emr-plan-debugging-logs-archive

शीर्षक खंड के अंतर्गत: "एडब्ल्यूएस CLI का उपयोग कर अमेज़न S3 में लॉग कुल करने के लिए"।

मैं सत्यापित किया है कि Hadoop-config बूटस्ट्रैप गई कार्रवाई के बाद yarn-site.xml

<property><name>yarn.log-aggregation-enable</name><value>true</value></property> 
<property><name>yarn.log-aggregation.retain-seconds</name><value>-1</value></property> 
<property><name>yarn.log-aggregation.retain-check-interval-seconds</name><value>3000</value></property> 
<property><name>yarn.nodemanager.remote-app-log-dir</name><value>s3://mybucket/logs</value></property> 

में मैं एक नमूना नौकरी (pihadoop-examples.jar से) चलाने के लिए और देखते हैं कि यह संसाधनप्रबंधक के जीयूआई पर सफलतापूर्वक पूरा कर लिया जा सकता है डालता है।

यह एप्लिकेशन आईडी के साथ नामित s3://mybucket/logs के तहत एक फ़ोल्डर भी बनाता है। लेकिन फ़ोल्डर खाली है, और अगर मैं yarn logs -applicationID <applicationId> चलाने के लिए, मैं एक स्टैकट्रेस मिलती है:

14/10/20 23:02:15 INFO client.RMProxy: Connecting to ResourceManager at /10.XXX.XXX.XXX:9022 
Exception in thread "main" org.apache.hadoop.fs.UnsupportedFileSystemException: No AbstractFileSystem for scheme: s3 
    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:333) 
    at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:330) 
    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:1548) 
    at org.apache.hadoop.fs.FileContext.getAbstractFileSystem(FileContext.java:330) 
    at org.apache.hadoop.fs.FileContext.getFSofPath(FileContext.java:322) 
    at org.apache.hadoop.fs.FSLinkResolver.resolve(FSLinkResolver.java:85) 
    at org.apache.hadoop.fs.FileContext.listStatus(FileContext.java:1388) 
    at org.apache.hadoop.yarn.logaggregation.LogCLIHelpers.dumpAllContainersLogs(LogCLIHelpers.java:112) 
    at org.apache.hadoop.yarn.client.cli.LogsCLI.run(LogsCLI.java:137) 
    at org.apache.hadoop.yarn.client.cli.LogsCLI.main(LogsCLI.java:199) 

है कौन सा मेरे लिए कोई मतलब नहीं है; मैं hdfs dfs -ls s3://mybucket/ चला सकता हूं और यह सामग्री को ठीक से सूचीबद्ध करता है। मशीनों को एडब्ल्यूएस आईएएम भूमिकाओं से प्रमाण पत्र मिल रहे हैं, मैंने fs.s3n.awsAccessKeyId जोड़ने और core-site.xml को व्यवहार में कोई बदलाव नहीं करने की कोशिश की है।

किसी भी सलाह की बहुत सराहना की जाती है।

+0

के उदाहरण के लिए core-default.xml देखें। सामान्य कॉन्फ़िगरेशन विकल्प _i.e._ 'fs.s3.impl' और' fs.s3n.impl' 'फाइल सिस्टम' इंटरफ़ेस के कार्यान्वयन को कॉन्फ़िगर करते हैं, लेकिन किसी कारण से यार्न 'सारफाइल सिस्टम' इंटरफेस के कार्यान्वयन की तलाश में है, जो कि 'fs.AbstractFileSystem.s3.impl' का उपयोग करके कॉन्फ़िगर किया जा सकता है। –

+0

https://hadoop.apache.org/docs/r2.5.1/hadoop-project-dist/hadoop-common/core-default.xml देखें और "सारफाइल सिस्टम" देखें। –

उत्तर

5

हैडोप दो एफ इंटरफेस प्रदान करता है - FileSystem और AbstractFileSystem। अधिकांश समय, हम FileSystem के साथ काम करते हैं और कस्टम एडाप्टर प्रदान करने के लिए fs.s3.impl जैसे कॉन्फ़िगरेशन विकल्पों का उपयोग करते हैं।

yarn logs, हालांकि, AbstractFileSystem इंटरफ़ेस का उपयोग करता है।

यदि आप S3 के लिए इसका कार्यान्वयन पा सकते हैं, तो आप इसे fs.AbstractFileSystem.s3.impl का उपयोग करके निर्दिष्ट कर सकते हैं।

ऐसा प्रतीत होता है `AbstractFileSystem` इंटरफेस और` FileSystem` इंटरफेस के बीच एक अंतर है कि fs.AbstractFileSystem.hdfs.impl आदि

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