2013-04-01 10 views
6

Mam przepływ pracy oozie, działający na klastrze CDH4 złożonym z 4 maszyn (jeden master-for-everything, trzej "głupi" robotnicy). Metastore ula działa na systemie głównym przy użyciu mysql (sterownik jest obecny), serwer oozie działa również na systemie głównym przy użyciu mysql. Korzystając z interfejsu WWW, mogę importować i wysyłać kwerendę zgodnie z oczekiwaniami, ale gdy wykonuję te same zapytania w ramach przepływu pracy, to się nie powiedzie. Nawet dodanie "IF EXISTS" prowadzi do błędu poniżej. Próbowałem dodać informacje o połączeniu jako właściwości do pracy w ulu bez powodzenia.Oozie workflow: nie znaleziono tabeli Hive, ale istnieje.

Czy ktoś może mi podpowiedzieć? Czy coś ominąłem? Czy potrzebne są dalsze informacje?

To wyjście dzienniku zadanie za:

Script [drop.sql] content: 
    ------------------------ 
    DROP TABLE IF EXISTS performance_log; 

    ------------------------ 

    Hive command arguments : 
    -f 
    drop.sql 

    ================================================================= 

    >>> Invoking Hive command line now >>> 

    Intercepting System.exit(10001) 

    <<< Invocation of Main class completed <<< 

    Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], exit code [10001] 

    Oozie Launcher failed, finishing Hadoop job gracefully 

I to jest komunikat o błędzie:

FAILED: SemanticException [Error 10001]: Table not found performance_log 
    Intercepting System.exit(10001) 
    Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], exit code [10001] 
+0

Ten blog blogu Hue demonstruje, jak [uruchomić akcję Hive] (http://gethue.tumblr.com/post/60937985689/ hadoop-tutorials-ii-2-execute-hive-queries-and) w przepływie pracy Oozie. – Romain

Odpowiedz

12

Problem polega na inne węzły nie wiem gdzie MySQL jest, więc nie znaleziono tabeli błędów.

trzeba zrobić 2 rzeczy

  1. Kopiowanie ula-site.xml w katalogu oozie workflow
  2. W swojej Hive działania powiedzieć oozie które używają mój wyodrębnienie site.xml

coś jak poniżej

action name="hive-node"> <hive xmlns="uri:oozie:hive-action:0.2"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <job-xml>hive-site.xml</job-xml>

ten powinno działać.

Dzięki

+0

Próbuję spróbować –

+0

Działa jak urok. Dzięki! –

+1

Jeśli jesteś w hue, pamiętaj o tym we właściwościach przepływu pracy, aby zastosować go do wszystkich węzłów ula/kroków w przepływie pracy. –

0

doświadczyłem sam problem, oprócz wyżej wzmianka o rozwiązanie określające wyodrębnienie site.xml prawidłowo. Poleciłbym także następujące rzeczy.

  1. sprawdź czy masz złącze mysql słoik (w przypadku korzystania z MySQL jako metastore) jest dostępny w ścieżce klasy.
  2. w przypadku akcji ula oozie wystarczy sprawdzić, czy nie dodajesz słoików z ulem wiele razy. na przykład jest już obecny w oozie share lib i skopiowałeś również w workflow/lib
Powiązane problemy