2013-07-29 16 views
15

Używam Apache Pig .11.1 z Hadoop 2.0.5.Błąd połączenia w Apache Pig

Większość prostych zadań wykonywanych przez Pig pracuje doskonale.

Jednak, gdy próbuję użyć GROUP BY na dużym zbiorze danych lub operator LIMIT, otrzymuję te błędy połączenia:

2013-07-29 13:24:08,591 [main] INFO org.apache.hadoop.mapred.ClientServiceDelegate - Application state is completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server 
013-07-29 11:57:29,421 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS) 

2013-07-29 11:57:30,421 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS) 

2013-07-29 11:57:31,422 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS) 
... 
2013-07-29 13:24:18,597 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS) 
2013-07-29 13:24:18,598 [main] ERROR org.apache.hadoop.security.UserGroupInformation - PriviledgedActionException as:gpadmin (auth:SIMPLE) cause:java.io.IOException 

Najdziwniejsze jest to, że po tych błędów utrzymanie pojawiające przez około 2 minuty , zatrzymają się, a na dole pojawi się poprawny wynik.

Tak więc Hadoop działa poprawnie i oblicza prawidłowe wyjście. Problemem są tylko te błędy połączeń, które ciągle pojawiają się.

Operator LIMIT zawsze otrzymuje ten błąd. Zdarza się zarówno w trybie MapReduce, jak i lokalnym. Operator GROUP BY będzie działał poprawnie na małych zestawach danych.

Jedną rzeczą, którą zauważyłem jest to, że gdy pojawia się ten błąd, zadanie utworzyło i uruchomiło wiele plików JAR podczas pracy. Jednak po kilku minutach pojawienia się tego komunikatu, na końcu pojawia się poprawny wynik.

Wszelkie sugestie, jak pozbyć się tych wiadomości?

+0

Czy Twój identyfikator jest lokalny? Jeśli nie, próbuje uzyskać do niego dostęp w wersji 0.0.0.0. Być może nie odbiera ona lokalizacji namenode z core-site.xml lub masz plik/etc/hosts, który jest pomieszany. –

+0

Nazewnik jest lokalny. core-site.xml i/etc/hosts wydają się być poprawnie skonfigurowane, ponieważ większość moich innych zadań Pig/Hadoop działa w sposób, w jaki powinny.Dodatkowo, prawidłowe wyniki pracy pojawiają się po wyświetleniu błędów połączenia przez kilka minut. Więc myślę, że problemem jest coś innego. –

+0

@AndyBotelho Prawdopodobnie warto sprawdzić logi serwera jobhistora –

Odpowiedz

30

Problem polegał na tym, że serwer historii zadań nie był uruchomiony.

Wszystko co musieliśmy zrobić, aby rozwiązać ten problem był wpisać polecenie w wierszu polecenia:

mr-jobhistory-daemon.sh start historyserver 

To polecenie uruchamia serwer historię pracy. Teraz, jeśli wprowadzimy "jps", widzimy, że działa JobHistoryServer, a moje zadania Pig nie tracą czasu na próby połączenia z serwerem.

+1

To było bardzo pomocne. Pig 0.13 Hadoop 2.3.0 - nie zakończy się pomyślnie, po prostu powtórzy 10 razy, a następnie zacznie od nowa. – jeveloper

+0

To jest idealna odpowiedź! –

+1

Ten plik znajduje się w katalogu sbin w mojej wersji, FYI – WattsInABox

4

Myślę, że ten problem jest związany z problemem konfiguracji mapowanej witryny w trybie hadoop. Historia Serwer uruchamia się domyślnie w localhost, więc musisz dodać skonfigurowanego hosta.

<property> 
<name>mapreduce.jobhistory.address</name> 
<value>host:port</value> 
</property> 

następnie wystrzelić tego polecenia -

mr-jobhistory-daemon.sh start historyserver 
1

Używam Hadoop 2.6.0, więc musiałem zrobić

$ mr-jobhistory-daemon.sh --config /usr/local/hadoop/etc start historyserver 

gdzie/usr/local/Hadoop/etc jest mój HADOOP_CONF_DIR.

0

Używam Hadoop 2.2.0. Przyczyną tego problemu był brak serwera Historia. Musiałem uruchomić serwer historii. Kiedyś następującą komendę, aby uruchomić serwer Historia:

[root @ localhost ~] $ /usr/lib/hadoop-2.2.0/sbin/mr-jobhistory-daemon.sh początek historyserver