2015-05-12 4 views
5

Если во время работы простой группы по сценарию в свинге для больших терабайт данных, скрипт застрял на 70%, то что можно сделать, чтобы диагностировать проблему?Как отлаживать скрипт свиньи

ответ

9

Существует несколько способов отладки сценария свиньи. Простым методом является поэтапное выполнение отношения, а затем проверка результата. Эти команды полезны для отладки сценария свиньи.

DUMP - Используйте оператор DUMP для запуска (выполнения) выписей из латинского алфавита и отображения результатов на экране.

ILLUSTRATE - Используйте оператор ILLUSTRATE, чтобы просмотреть, как данные преобразуются через последовательность выражений Pig Latin. ILLUSTRATE позволяет протестировать ваши программы на небольших наборах данных и получить более быстрое время обработки.

EXPLAIN - Используйте оператор EXPLAIN для просмотра логических, физических и картографических планов выполнения, которые используются для вычисления указанной связи.

ОПИСАНИЕ - Используйте оператор DESCRIBE для просмотра схемы отношения. Вы можете просматривать внешние отношения, а также отношения, определенные во вложенном заявлении FOREACH.

Подробнее об этих командах можно найти на этом link. Также обратитесь к developing and testing a pig script., чтобы узнать подробности.

Если вы хотите отладить весь скрипт во время выполнения, то вам нужно написать ниже код в начало вашего скрипта

-- set the debug mode on 
SET debug 'on' 
-- set a job name of your job. 
SET job.name 'my job' 

Это позволит запустить скрипт в режиме отладки. подробно о состоянии около SET команда доступна на этом link

0

Когда вы говорите, что скрипт застрял на 70%, я полагаю, вы имеете в виду, что работа MR составляет 70%.

Лучше всего просмотреть журналы MR и YARN (и, если необходимо, журналы HDFS), для получения дополнительной информации о том, что делает MR/YARN. Журналы обычно можно найти под /var/log/hadoop-mapreduce и /var/log/hadoop-hdfs в Cloudera Manager управляемые кластеры. Возможно, вам придется исследовать журналы с нескольких узлов в кластере, где запущены YNNNodeManager.

В случае, если ваш скрипт застрял с вопросом Pig (т.е. проблема в Pig коде, не MR/HDFS код), это полезно для повышения уровня log4j ведения журнала в Pig: свинья -d DEBUG является команда line, чтобы установить уровень ведения журнала на DEBUG, например.

Смежные вопросы