Загрузка файла AWS - PullRequest
       107

Загрузка файла AWS

0 голосов
/ 09 ноября 2018

Я хочу загрузить несколько файлов в корзину 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>

Пожалуйста, дайте мне знать, как этого добиться.

1 Ответ

0 голосов
/ 11 декабря 2018

Я столкнулся с той же проблемой. Эта проблема может возникнуть, когда файлы внутри ~ .aws изменяются вручную, а не с помощью команды "aws configure".

Вы пытались:

  1. Удалить файлы "config" и "credentials" (расположены в ~ .aws)
  2. запустите команду "aws configure" (воссоздайте файлы, которые вы удалили в # 1)

Это устранило проблему для меня.

Это в основном потому, что я использую другие инструменты, которые также изменяют эти файлы.

Надеюсь, это поможет.

...