mat*_*ise 5 hadoop amazon-emr emr hadoop-yarn hadoop2
我正在努力为我的Amazon EMR集群启用YARN日志聚合.我正在按照此文档进行配置:
在标题为"使用AWS CLI在Amazon 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>
Run Code Online (Sandbox Code Playgroud)
我可以运行一个示例作业(pi来自hadoop-examples.jar),并看到它在ResourceManager的GUI上成功完成.
它甚至创建了一个s3://mybucket/logs使用应用程序ID命名的文件夹.但文件夹是空的,如果我运行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)
Run Code Online (Sandbox Code Playgroud)
这对我没有任何意义; 我可以运行hdfs dfs -ls s3://mybucket/,它列出的内容就好了.这些机器正在从AWS IAM Roles获取凭据,我尝试添加fs.s3n.awsAccessKeyId等core-site.xml,但行为没有变化.
任何建议都非常感谢.
Hadoop提供两个fs接口--FileSystem和AbstractFileSystem.大多数情况下,我们FileSystem使用配置选项,如fs.s3.impl提供自定义适配器.
yarn logs但是,使用AbstractFileSystem界面.
如果您可以找到S3的实现,则可以使用它来指定它fs.AbstractFileSystem.s3.impl.
有关其他示例,请参阅core-default.xmlfs.AbstractFileSystem.hdfs.impl.
| 归档时间: |
|
| 查看次数: |
2950 次 |
| 最近记录: |