Как я могу помешать `hadoop fs rmr <uri>` создавать файлы $ folder $? - PullRequest
1 голос
/ 22 апреля 2011

Мы используем Amazon Elastic Map Reduce для выполнения некоторых крупных заданий по обработке файлов. В рамках нашего рабочего процесса нам иногда нужно удалять файлы из S3, которые могут уже существовать. Мы делаем это с помощью интерфейса hadoop fs, например:

hadoop fs -rmr s3://mybucket/a/b/myfile.log

Это удаляет файл из S3 соответствующим образом, но на его месте остается пустой файл с именем "s3: // mybucket / a / b_ $ folder $". Как описано в этого вопроса , свинья Hadoop не может обработать эти файлы, поэтому последующие этапы рабочего процесса могут засорить этот файл.

(Обратите внимание, что не имеет значения, используем ли мы -rmr или -rm или используем ли мы s3:// или s3n:// в качестве схемы: все они демонстрируют описанное поведение.)

Как использовать интерфейс hadoop fs для удаления файлов из S3 и не оставлять эти проблемные файлы позади?

Ответы [ 2 ]

0 голосов
/ 14 мая 2013

Это то, как поддержка S3 реализована в Hadoop, смотрите здесь: http://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/s3native/NativeS3FileSystem.html.

Так что используйте s3cmd.

0 голосов
/ 22 апреля 2011

Я не смог выяснить, возможно ли использовать интерфейс hadoop fs таким образом.Однако интерфейс s3cmd работает правильно (но только для одного ключа за раз):

s3cmd del s3://mybucket/a/b/myfile.log

Для этого необходимо сначала настроить файл ~ / .s3cfg с вашими учетными данными AWS.s3cmd --configure поможет вам создать этот файл в интерактивном режиме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...