Я играю с Apache Свинья. Я хочу проверить / проверить / убедиться, что я действительно читаю, а затем параллельно обрабатываю входные файлы в Apache Pig.
Проблема: у меня более 100 ТБ данных в тысячах файлов. Каждый файл имеет несколько ГБ. Мне действительно нужен способ их параллельной обработки.
Вот мой скрипт, который пытается прочитать пять таких файлов:
DEFINE UniTable cass.UniTable();
tmp1 = LOAD 'id1/id2' using UniTable();
tmp2 = LOAD 'id3/id4' using UniTable();
tmp3 = LOAD 'id5/id6' using UniTable();
tmp4 = LOAD 'id7/id8' using UniTable();
tmp5 = LOAD 'id9/id10' using UniTable();
bb1 = FILTER tmp1 BY (ik1i == 14 AND ik2i == 14);
bb2 = FILTER tmp2 BY (ik1i == 14 AND ik2i == 14);
bb3 = FILTER tmp3 BY (ik1i == 14 AND ik2i == 14);
bb4 = FILTER tmp4 BY (ik1i == 14 AND ik2i == 14);
bb5 = FILTER tmp5 BY (ik1i == 14 AND ik2i == 14);
bbu = UNION bb1, bb2, bb3, bb4, bb5;
bb = GROUP bbu ALL;
bbcount = FOREACH bb GENERATE COUNT(bbu.ik1i);
DUMP bbcount;
UniTable - это мой LoadFun c, который просто читает «мои данные» в Pig (требуется несколько входных аргументов, не важно).
Я добавил сообщения LOG в свой класс UniTable и вижу в LOGS, что каждый файл обрабатывается последовательно: он открывается, затем закрыто, затем открывается и закрывается следующий и т. д. c. et c.
У меня работает кластер oop -2.7.6. Я запускаю эту Apache Свинью в режиме (-x mapreduce).
Что я делаю не так?
Спасибо!