Назад | Перейти на главную страницу

Невозможно прочитать файл S3 из интерактивного потока заданий свиньи

Я не могу прочитать простой тестовый файл на S3 из интерактивного потока заданий свиньи (hadoop, сокращение эластичной карты), и я не уверен, почему.

У меня два ведра S3. Назовем их unmounted_bucket, и mounted_bucket. Обе эти корзины изначально были созданы через веб-интерфейс AWS (если это имеет значение).

У меня работает экземпляр Linux EC2, который смонтирован под /mnt/s3drive.

У меня есть тестовый файл под названием threecolumntest.txt который содержит следующие тестовые данные (фактически разделены табуляцией):

col1 col2 col3
one  two  three
four five six
seven eight nine

У меня этот файл есть в обоих unmounted_bucket И в mounted_bucket. Я загрузил его в каждую корзину через веб-интерфейс AWS S3 (консоль управления).

Из интерактивного потока заданий (я использую PuTTY) я могу без проблем запускать эти команды:

A = load 's3://unmounted_bucket/threecolumntest.txt' using PigStorage() as (c1: chararray, c2: chararray, c3: chararray);

illustrate A

Результат такой, как ожидалось.

Однако, если я запустил ту же команду, но указал на другое ведро, я получу сообщение об ошибке.

A = load 's3://mounted_bucket/threecolumntest.txt' using PigStorage() as (c1: chararray, c2: chararray, c3: chararray);

illustrate A

[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2997: Encountered IOException. Exception : Internal error creating job configuration.

Я проверил через веб-интерфейс, и у каждой корзины одинаковые разрешения (насколько я могу судить). Это определенно вне моей рулевой рубки, поэтому я не уверен, что могло быть причиной этого, и что мне следует проверить дальше. Мне интересно, связано ли это с монтированием одного контейнера (и если да, то почему?), Поскольку он использует один и тот же файл, и я загрузил файл в оба сегмента с помощью веб-интерфейса AWS. Монтажный элемент, кажется, на этом этапе отличается. Может, мне еще чего-то не хватает?

Попробуйте s3n: // вместо s3: //. s3n - это собственная файловая система s3, s3 - это блочная файловая система (например, hdfs, но не позволяет вам просто читать файлы, просто хранящиеся в S3, кем-либо, кроме протокола s3 Hadoop).