Я хочу скопировать из кластера Cloudera в корзину S3, которая принадлежит другой учетной записи AWS (учетная запись B).Файл core-site.xml настроен с подробностями для учетной записи AWS A. Политики целевого сегмента и ACL должны разрешать доступ к учетной записи A.
Следующая команда с явным секретом и ключом работает.
hadoop distcp -Dmapreduce.job.queuename=GTI -Dfs.s3a.access.key=XXXXXX -Dfs.s3a.secret.key=YYYYY hdfs:///user/path/trade/0664_1045_2019-02-24-08-53.csv s3a://bucket-name/data_parquet-manual/test.csv
Где XXXXXX и YYYYYYY принадлежат учетной записи B .. Файл test.csv доступен для учетной записи B. Это, мы надеемся, доказывает, чтоосновные подключения и разрешения хороши.
Следующая команда, использующая провайдера учетных данных, не дает сбоя, но не использует правильные учетные данные.
hadoop distcp -Dhadoop.security.credential.provider.path=jceks://hdfs/user/security.jceks -Dmapreduce.job.queuename=GTI hdfs:///user/path/trade/0664_1045_2019-02-24-08-53.csv s3a://bucket-name/data_parquet-jmc/test.csv
Используются учетные данные, хранящиеся в ядре.файл site.xml.Целевая корзина недоступна из учетной записи B.
Почему это так?
Создан поставщик учетных данных
hadoop credential create fs.s3a.access.key -provider jceks://hdfs/user/security.jceks -v 'XXXXXX'
hadoop credential create fs.s3a.secret.key -provider jceks://hdfs/user/security.jceks -v 'YYYYY'
Также предоставлены разрешения на доступ к файлу учетных данныхдругие, группы.
Обратите внимание также, что команда для отображения ключей от поставщика учетных данных показывает
hadoop credential list -provider jceks://hdfs/user/security.jceks
Listing aliases for CredentialProvider: jceks://hdfs/user/security.jceks
fs.s3a.secret.key
fs.s3a.access.key
Итак, мой вопрос: что мне не хватает?Есть ли какой-то шаг / разрешение, которое я забыл
Environment ::
Hadoop 2.6.0-cdh5.8.2
Subversion http://github.com/cloudera/hadoop -r 9abce7e9ea82d98c14606e7ccc7fa3aa448f6e90
Compiled by jenkins on 2016-09-11T18:46Z
Compiled with protoc 2.5.0
From source with checksum 3e4e27598718cb383ce65d07f84eb8c
This command was run using /opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/jars/hadoop-common-2.6.0-cdh5.8.2.jar