Я изо всех сил пытаюсь включить агрегирование журнала YARN для своего кластера EMR Amazon. Я выполняю эту документацию для конфигурации:Агрегация журнала YARN на AWS EMR - UnsupportedFileSystemException
В разделе под названием: «Для того, чтобы агрегировать журналы в Amazon S3 с помощью AWS CLI».
Я проверил, что самозагрузки действие Hadoop-конфигурация помещает следующее 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>
Я могу запустить задание образца (pi
от hadoop-examples.jar
) и вижу, что она успешно завершена ГИП ResourceManager в.
Он даже создает папку под номером 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, я пробовал добавить fs.s3n.awsAccessKeyId и т. Д. К core-site.xml
без изменений в поведении.
Любые советы очень ценятся.
Оказывается, что существует разница между 'AbstractFileSystem' интерфейсом и интерфейсом' FileSystem'. Обычные параметры конфигурации _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». –