2012-06-12 11 views
7

Jestem nowy w Hadoop/PIG. Mam podstawowe pytanie.Debugowanie w PIG UDF

Czy mamy obiekt do ewidencji w PIG UDF? Napisałem UDF, który muszę zweryfikować Potrzebuję zalogować niektóre instrukcje, aby sprawdzić przepływ. Czy jest dostępna funkcja rejestrowania? Jeśli tak, gdzie są dzienniki Pig?

Odpowiedz

6

Zakładając, że Twój UDF rozszerza się o EvalFunc, możesz użyć Logger zwrócony z EvalFunc.getLogger(). Dane wyjściowe dziennika powinny być widoczne w powiązanym oknie Map/Reduce, które wykonuje świnia (jeśli zadanie jest wykonywane na więcej niż jednym etapie, wówczas trzeba będzie je przejrzeć, aby znaleźć powiązane wpisy dziennika).

+0

Więc logi znajdą się w pliku dziennika Zmniejszenie liczby zadań? Czy mogę w konkretny sposób sporządzić moje wyciągi z dziennika do osobnego pliku? – Uno

+0

Tak, będą. Możesz, ale musisz przejść do każdego śledzenia zadań, aby je wyświetlić/zebrać. Sądzę, że możesz spróbować skonfigurować zdalny program rejestrujący (np. Logując się do DB). –

+0

Nie wiem na pewno, ale możesz wypróbować PigLogger - który może wysłać rzeczy z powrotem do klienta. –

2

być może oczywiste, ale zalecam debugowanie Twojego UDF w trybie lokalnym przed wdrożeniem w klastrze/pseudoklasterze. W ten sposób możesz debugować go bezpośrednio wewnątrz IDE (zaćmienie w moim przypadku), co jest łatwiejsze niż debugowanie dziennika.

+0

Czy jest strona lub kilka kroków, które mogę wykonać, aby zacząć korzystać z Eclipse. Mam na myśli świnię na zaćmieniu. – Uno

+1

nie wiem o stronie z krokami, ale jest to proste: umieść zależności mizopu i jądra w twoim mavenponie, a następnie pracuj z 'org.apache.pig.PigServer'. spróbuj 'pigServer.registerScript (resource.getInputStream(), pigScriptParams, null); 'a następnie' PigStats stats = pigServer.store ("final_output", pigScriptParams.get ("output_folder"), pigStoreFunc) .getStatistics(); ' – ihadanny