Почему JsonLoader elephantbird Pig обрабатывает только часть моего файла? - PullRequest
0 голосов
/ 29 апреля 2011

Я использую Pig на Amazon Elastic Map-Reduce для выполнения пакетной аналитики. Мои входные файлы находятся на S3 и содержат события, которые представлены одним словарем JSON на строку. Я использую библиотеку elephantbird JsonLoader для разбора входных файлов. Пока все хорошо.

У меня проблемы с обработкой большого файла, хранящегося в локальной файловой системе или hdf, в интерактивном сеансе Pig. Похоже, что если входной файл достаточно велик, чтобы разделить, elephantbird когда-либо обрабатывал только один из разделов, и обработка останавливается без сообщения об ошибке в конце разделения. У меня нет той же проблемы, если я транслирую ввод с S3 (без разделения файла на входе S3) или если я конвертирую файл в формат, читаемый Pig напрямую.

Для конкретного примера: файл с 833 138 строками обрабатывается только до 379 751 строки (и если я наблюдаю процент выполнения в Pig, он плавно достигает 50%, а затем скачет до 100%). Я также попытался с файлом с 400 000 строк, и он был обработан нормально.

Итак, мой вопрос: почему слоновой птицей обрабатывается только один сплит? Я неправильно понимаю, как Pig в интерактивном режиме должен работать или происходит что-то дикое неправильно?

1 Ответ

0 голосов
/ 15 июля 2011

Катя, вы получите помощь намного быстрее, если отправите список пользователей Pig по электронной почте:).

Пожалуйста, попробуйте Pig 0.8.1 (текущий выпуск) и дайте нам знать, если вы все еще получаете ошибки. Что бы это ни стоило, я уже больше года использую загрузчик EB Json для файлов по сто гигабайт, и они работают нормально, так что, возможно, что-то есть в ваших данных.

Spike Gronim - это было исправлено, локальный режим теперь в основном идентичен (за исключением таких вещей, как распределенный кеш и асимметричные объединения) нелокальному режиму. Обновление.

...