Тонкая настройка PIG для локального исполнения - PullRequest
4 голосов
/ 16 декабря 2010

Я использую PIG latin для обработки журналов, потому что это выражается в проблеме, когда данные недостаточно велики, чтобы беспокоиться о настройке целого кластера hadoop. Я запускаю PIG в локальном режиме, но думаю, что он не использует все имеющиеся у него ядра (в данный момент 16), мониторинг ЦП показывает максимум 200% загрузки ЦП.

Есть ли уроки или рекомендации по тонкой настройке PIG для локального исполнения? Я уверен, что все картографы могли бы использовать все доступные ядра с некоторой легкой настройкой. (В моем скрипте я уже установил параметр default_parallel равным 20)

С уважением.

1 Ответ

5 голосов
/ 16 декабря 2010

Документация Pig разъясняет, что локальная операция предназначена для однопоточного выполнения с использованием различных путей кода для определенных функций, которые в противном случае использовали бы распределенную сортировку. В результате оптимизация для локального режима Pig кажется неправильным решением представленной проблемы.

Рассматривали ли вы запуск локального «псевдораспределенного» кластера вместо инвестиций в полную настройку кластера? Вы можете следовать инструкциям Hadoop для псевдораспределенной операции, затем указать Pig на localhost. Это дало бы желаемый результат за счет двухэтапного запуска и демонтажа.

Вы захотите увеличить количество картографов и редукторов по умолчанию, чтобы использовать все ядра, доступные на вашем компьютере. К счастью, это достаточно хорошо задокументировано (правда, в документации по настройке кластера ); просто определите mapred.tasktracker.map.tasks.maximum и mapred.tasktracker.reduce.tasks.maximum в вашей локальной копии $HADOOP_HOME/conf/mapred-site.xml.

...