Jeżeli podczas biegu prostego skryptu przez grupę w świni dla dużych terabajtów danych, skrypt utknął na powiedzmy 70%, to co można zrobić, aby zdiagnozować problem?Jak można debugować skrypt świnia
Odpowiedz
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
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.
- 1. Jak mogę debugować skrypt Perla?
- 2. Świnia java.lang.NoSuchFieldException: jobsInProgress wyjątek
- 3. Nie można natywnie debugować
- 4. Jak mogę debugować skrypt, który używa stdin z ipython?
- 5. Jak debugować skrypt PHP, który nigdy się nie kończy?
- 6. Jak można debugować drukowany arkusz CSS?
- 7. Nie można debugować aplikacji Android
- 8. Nie można debugować projektu VSIX
- 9. Jak mogę debugować reguły mod_rewrite?
- 10. Jak debugować projekt Vsix
- 11. Jak debugować gulpfile.js
- 12. Jak debugować "ImagePullBackOff"?
- 13. Jak debugować aplet cynamonowy?
- 14. Jak debugować kod Erlang?
- 15. Czy można debugować kod mex w Eclipse?
- 16. Nie można debugować w pycharm z pytestem
- 17. Nie można uruchomić WebLogic zdalnie debugować
- 18. Jak mogę debugować php gettext?
- 19. Debug skrypt tampermonkey
- 20. Jak debugować szablon Jinja2?
- 21. Jak debugować aplikacje Web2py?
- 22. Jak mogę debugować makra?
- 23. Jak debugować udostępnione webworkers?
- 24. Jak debugować Websockets?
- 25. Jak mogę debugować AppleScript?
- 26. Jak debugować tunel ssh
- 27. Jak debugować Scala Future?
- 28. Jak debugować SEGV_ACCERR
- 29. Jak debugować Androida ANR?
- 30. Jak debugować interfejs Swing?