Я хочу загрузить несколько файлов в корзину AWS из hadoop. я имею
КЛЮЧ ДЛЯ ДОСТУПА AWS, СЕКРЕТНЫЙ КЛЮЧ и ПУТЬ ИМПОРТА S3.
Я не могу получить доступ через команду CLI AWS.
Я установил ключи в файле учетных данных aws.
Я пытался сделать «aws s3 ls»
Я получаю ошибку как
An error occurred (InvalidToken) when calling the ListBuckets operation: The provided token is malformed or otherwise invalid.
Поскольку приведенный выше код не работал, я попытался использовать команду distcp, как показано ниже.
hadoop distcp -Dmapreduce.job.queuename=root.mr.sbg.sla -Dfs.s3a.proxy.host=qypprdproxy02.ie.xxx.net -Dfs.s3a.proxy.port=80 -Dfs.s3a.endpoint=s3.us-west-2.amazonaws.com -Dfs.s3a.aws.credentials.provider="org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" -Dfs.s3a.access.key="AXXXXXXXXXXQ" -Dfs.s3a.secret.key="4I9nXXXXXXXXXXXXHA" -Dfs.s3a.session.token="FQoDYXdzECkaDNBtHNfS5sKxXqNdMyKeAuqLbVXG72KvcPmUtnpLGbM7UE59zjvNNo0u8mWlslCEvZcZLxXw1agAInzGH8vnGleqxjzuBBgXMXXXXXXXG0zpHA8eyrwCZqUBXSg9cdqevv1sFT8lUIEi5uTGLjHXgkQoBXXXXXXXXXXXXXXt80Rp4vb3P7k5N2AVZmuVvM/SEH/qMLiFabDbVliGXqw7MHXTXXXXXXXXXXXXXXXtW8JvmOFPR3nGdQ4VKzw0deSbNmL/BCivfh9pf7ubm5RFRSLxqcdoT7XAXIWf1jJguEGygcBkFRh2Ztvr8OYcG78hLEJX61ssbKWXokOKTBMnUxx4b0jIG1isXerDaO6RRVJdBrTXn2Somzigo4ZbL0wU=" TXXXX/Data/LiXXXXL/HS/ABC/part-1517397360173-r-00000 s3a://data-import-dev/1012018.csv
для вышеуказанной команды также я получаю ошибку ниже.
18/11/09 00:55:40 ИНФОРМАЦИЯ http.AmazonHttpClient: Настройка прокси. полномочие
Хост: qypprdproxy02.ie.XXXX.net Прокси-порт: 80 18/11/09 00:55:40 WARN
s3a.S3AFileSystem: Клиент: Amazon S3 ошибка 400: 400 неверный запрос; Плохой
Запрос (повторяющийся)
com.cloudera.com.amazonaws.services.s3.model.AmazonS3Exception: Bad
Запрос (Сервис: Amazon S3; Код состояния: 400; Код ошибки: 400 Bad
Запрос; Идентификатор запроса: 121931CAB75C3BB0), расширенный идентификатор запроса S3:
Jn / iTngZS83 + A5U8e2gjQsyArDC68E + R0q / Sll0gkSCn0h5yDaG17TEb9HNSx7o590hmofguJIg =
в
com.cloudera.com.amazonaws.http.AmazonHttpClient.handleErrorResponse (AmazonHttpClient.java:1182)
в
com.cloudera.com.amazonaws.http.AmazonHttpClient.executeOneRequest (AmazonHttpClient.java:770)
в
com.cloudera.com.amazonaws.http.AmazonHttpClient.executeHelper (AmazonHttpClient.java:489)
в
com.cloudera.com.amazonaws.http.AmazonHttpClient.execute (AmazonHttpClient.java:310)
в
com.cloudera.com.amazonaws.services.s3.AmazonS3Client.invoke (AmazonS3Client.java:3785)
в
com.cloudera.com.amazonaws.services.s3.AmazonS3Client.headBucket (AmazonS3Client.java:1107)
в
com.cloudera.com.amazonaws.services.s3.AmazonS3Client.doesBucketExist (AmazonS3Client.java:1070)
в
org.apache.hadoop.fs.s3a.S3AFileSystem.verifyBucketExists (S3AFileSystem.java:312)
в
org.apache.hadoop.fs.s3a.S3AFileSystem.initialize (S3AFileSystem.java:260)
в
org.apache.hadoop.fs.FileSystem.createFileSystem (FileSystem.java:2815)
в org.apache.hadoop.fs.FileSystem.access $ 200 (FileSystem.java:98) в
org.apache.hadoop.fs.FileSystem $ Cache.getInternal (FileSystem.java:2852)
в org.apache.hadoop.fs.FileSystem $ Cache.get (FileSystem.java:2834)
в org.apache.hadoop.fs.FileSystem.get (FileSystem.java:387) в
org.apache.hadoop.fs.Path.getFileSystem (Path.java:296) в
org.apache.hadoop.tools.DistCp.setTargetPathExists (DistCp.java:205)
в org.apache.hadoop.tools.DistCp.run (DistCp.java:131) в
org.apache.hadoop.util.ToolRunner.run (ToolRunner.java:70) в
org.apache.hadoop.tools.DistCp.main (DistCp.java:441) 18/11/09 00:55:40
ОШИБКА tools.DistCp: Неверные аргументы:
org.apache.hadoop.fs.s3a.AWSS3IOException: doesBucketExist on
segmentor-данных импортно-Dev:
com.cloudera.com.amazonaws.services.s3.model.AmazonS3Exception: Плохо
Запрос (Сервис: Amazon S3; Код состояния: 400; Код ошибки: 400 Bad
Запрос; Идентификатор запроса: 121931CAB75C3BB0), расширенный идентификатор запроса S3:
Jn / iTngZS83 + A5U8e2gjQsyArDC68E + R0q / Sll0gkSCn0h5yDaG17TEb9HNSx7o590hmofguJIg =:
Bad Request (Сервис: Amazon S3; Код состояния: 400; Код ошибки: 400 Bad
Запрос; Идентификатор запроса: 121931CAB75C3BB0) в
org.apache.hadoop.fs.s3a.S3AUtils.translateException (S3AUtils.java:178)
в
org.apache.hadoop.fs.s3a.S3AFileSystem.verifyBucketExists (S3AFileSystem.java:318)
в
org.apache.hadoop.fs.s3a.S3AFileSystem.initialize (S3AFileSystem.java:260)
в
org.apache.hadoop.fs.FileSystem.createFileSystem (FileSystem.java:2815)
в org.apache.hadoop.fs.FileSystem.access $ 200 (FileSystem.java:98) в
org.apache.hadoop.fs.FileSystem $ Cache.getInternal (FileSystem.java:2852)
в org.apache.hadoop.fs.FileSystem $ Cache.get (FileSystem.java:2834)
в org.apache.hadoop.fs.FileSystem.get (FileSystem.java:387) в
org.apache.hadoop.fs.Path.getFileSystem (Path.java:296) в
org.apache.hadoop.tools.DistCp.setTargetPathExists (DistCp.java:205)
в org.apache.hadoop.tools.DistCp.run (DistCp.java:131) в
орг.apache.hadoop.util.ToolRunner.run (ToolRunner.java:70) в
org.apache.hadoop.tools.DistCp.main (DistCp.java:441) Причина:
com.cloudera.com.amazonaws.services.s3.model.AmazonS3Exception: Плохо
Запрос (Сервис: Amazon S3; Код состояния: 400; Код ошибки: 400 Bad
Запрос; Идентификатор запроса: 121931CAB75C3BB0), расширенный идентификатор запроса S3:
Jn / iTngZS83 + A5U8e2gjQsyArDC68E + R0q / Sll0gkSCn0h5yDaG17TEb9HNSx7o590hmofguJIg =
в
com.cloudera.com.amazonaws.http.AmazonHttpClient.handleErrorResponse (AmazonHttpClient.java:1182)
в
com.cloudera.com.amazonaws.http.AmazonHttpClient.executeOneRequest (AmazonHttpClient.java:770)
в
com.cloudera.com.amazonaws.http.AmazonHttpClient.executeHelper (AmazonHttpClient.java:489)
в
com.cloudera.com.amazonaws.http.AmazonHttpClient.execute (AmazonHttpClient.java:310)
в
com.cloudera.com.amazonaws.services.s3.AmazonS3Client.invoke (AmazonS3Client.java:3785)
в
com.cloudera.com.amazonaws.services.s3.AmazonS3Client.headBucket (AmazonS3Client.java:1107)
в
com.cloudera.com.amazonaws.services.s3.AmazonS3Client.doesBucketExist (AmazonS3Client.java:1070)
в
org.apache.hadoop.fs.s3a.S3AFileSystem.verifyBucketExists (S3AFileSystem.java:312)
... еще 11 неверных аргументов: didBucketExist on
segmentor-данных импортно-Dev:
com.cloudera.com.amazonaws.services.s3.model.AmazonS3Exception: Плохо
Запрос (Сервис: Amazon S3; Код состояния: 400; Код ошибки: 400 Bad
Запрос; Идентификатор запроса: 121931CAB75C3BB0), расширенный идентификатор запроса S3:
Jn / iTngZS83 + A5U8e2gjQsyArDC68E + R0q / Sll0gkSCn0h5yDaG17TEb9HNSx7o590hmofguJIg =:
Bad Request (Сервис: Amazon S3; Код состояния: 400; Код ошибки: 400 Bad
Запрос; Идентификатор запроса: 121931CAB75C3BB0) использование: distcp ОПЦИИ
[Source_path ...]
ОПЦИИ -append Повторное использование существующих данных в целевых файлах и
добавьте новые данные, если это возможно
Удалить из цели, файлы отсутствуют в источнике -diff
Используйте отчет о снимках для определения
разница между источником и целью -f Список файлов, которые необходимо скопировать -filelimit (устарело!) Ограничить количество копируемых файлов
to <= n -filters Путь к файлу, содержащему список
строки для путей, которые будут исключены из
копия. -i Игнорировать сбои во время копирования -log Папка включена
DFS, где журналы выполнения distcp
сохраняются -m Максимальное количество одновременных карт для использования
copy -mapredSslConf Конфигурация для файла конфигурации ssl, чтобы использовать
с hftps: //. Должно быть в классе. -numListstatusThreads Количество потоков для использования
строительный файл
листинг (максимум 40). -overwrite Выберите, чтобы перезаписать целевые файлы
безусловно, даже если они существуют. -p сохранить статус (rbugpcaxt) (репликация,
размер блока, пользователь, группа, разрешение,
тип контрольной суммы, ACL, XATTR, отметки времени). Если
-p указывается без, тогда
сохраняет репликацию, размер блока, пользователя,
группа, разрешение, тип контрольной суммы и
метки времени. raw. * xattrs сохраняются при
оба пути источника и назначения
в иерархии /.reserved/raw (HDFSтолько). raw. * xattrpreservation является
не зависит от флага -p. Обратитесь к
Документация DistCp для более подробной информации. -rdiff Использовать отчет о результатах снимка цели для определения
изменения, сделанные в target -sizelimit (устарело!) Ограничить количество копируемых файлов
to <= n bytes -skipcrccheck Пропускать ли проверки CRC между источниками
и целевые пути. Стратегия копирования стратегии для использования. По умолчанию делится
работа на основе размера файла -tmp Промежуточный рабочий путь, который будет использоваться для
atomic commit -update Обновить цель, копируя только отсутствующие файлы или
каталоги </p>
Пожалуйста, дайте мне знать, как этого добиться.