2015-05-12 14 views

Odpowiedz

9

Istnieje kilka sposób do debugowania skryptu świni. Prostą metodą jest wykonywanie krok po kroku relacji, a następnie weryfikacja wyniku. Te polecenia są przydatne do debugowania skryptu świni.

DUMP - Użyj operatora DUMP, aby uruchomić (wykonać) Pig Latin Statement i wyświetlić wyniki na ekranie.

ILUSTRACJA - Użyj operatora ILLUSTRATE, aby sprawdzić, jak dane są transformowane za pomocą sekwencji łacińskich instrukcji. ILLUSTRATE pozwala testować programy na małych zestawach danych i skracać czas ich realizacji.

WYJAŚNIJ - Użyj operatora EXPLAIN do przejrzenia logicznych, fizycznych i mapowych planów wykonania redukcji, które są używane do obliczenia określonej zależności.

DESCRIBE - Użyj operatora DESCRIBE, aby wyświetlić schemat relacji. Możesz przeglądać zewnętrzne relacje, a także relacje zdefiniowane w zagnieżdżonej instrukcji FOREACH.

Więcej szczegółów na temat tych poleceń są dostępne na tej link. Więcej informacji można znaleźć pod numerem developing and testing a pig script..

Jeśli chcesz debugować cały skrypt podczas wykonywania następnie trzeba napisać poniżej kod na początku skryptu

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

Pozwoli to, aby uruchomić skrypt w trybie debugowania. Szczegóły dotyczące trybu na temat polecenia SET są dostępne na ten temat: link

0

Kiedy mówisz, że skrypt utknął na poziomie 70%, zakładam, że masz na myśli, że praca MR jest ukończona w 70%.

Najlepiej spojrzeć na pana i przędzy dzienników (i jeśli to konieczne, HDFS kłody) w tym momencie więcej informacji na temat tego, co MR/YARN robi. Dzienniki można zazwyczaj znaleźć w /var/log/Hadoop-MapReduce i /var/log/Hadoop-HDFS w Cloudera Menedżer zarządzanych klastrów. Być może trzeba przejrzeć dzienniki z wielu węzłów w klastrze, w których działają węzły YARN NodeManagers.

W przypadku, gdy skrypt jest zatrzymany z Pig emisji (tj problem w kodzie świnia, nie kodu MR/HDFS), warto zwiększyć poziom rejestrowania log4j w Pig: świnia -d DEBUG jest polecenie opcja linii do ustawienia poziomu logowania na DEBUG na przykład.