아마존 EMR 클러스터에 YNN 로그 집계를 사용하려고 고민 중입니다. 나는 구성이 문서를 다음 오전 : "는 AWS CLI를 사용하여 아마존 S3에 로그를 집계하기"라는 제목의 섹션에서AWS EMR에 YARN 로그 집계 - UnsupportedFileSystemException
.
나는 하둡 설정 부트 스트랩 동작이 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>
에 내가 샘플 작업 (hadoop-examples.jar
에서 pi
)를 실행하고 ResourceManager에의 GUI에 성공적으로 완료되었는지 확인할 수 있습니다 다음과 같은두고 있다는 것을 확인했습니다.
심지어 응용 프로그램 ID로 명명 된 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/
을 실행할 수 있으며 내용이 잘 정리되어 있습니다. 컴퓨터가 AWS IAM 역할에서 자격 증명을 얻고 있습니다. 동작 변경없이 core-site.xml
에 fs.s3n.awsAccessKeyId 등을 추가하려고했습니다.
모든 조언을 주시면 감사하겠습니다.
의 예 core-default.xml 참조. 일반적인 설정 옵션 인 _i.e._'fs.s3.impl'과'fs.s3n.impl'은'FileSystem' 인터페이스의 구현을 설정합니다. 그러나 어떤 이유로 원사는'AbstractFileSystem' 인터페이스의 구현을 찾고 있습니다. 'fs.AbstractFileSystem.s3.impl'을 사용하여 설정할 수 있습니다. –
https://hadoop.apache.org/docs/r2.5.1/hadoop-project-dist/hadoop-common/core-default.xml을 참조하고 "AbstractFileSystem"을 찾으십시오. –