2013-04-01 8 views
6

Ho ottenuto un flusso di lavoro eccezionale, eseguito su un cluster CDH4 di 4 macchine (un master per tutti, tre lavoratori "stupidi"). L'hive metastore gira sul master usando mysql (il driver è presente), anche il server oozie gira sul master usando mysql. Utilizzando l'interfaccia web posso importare e interrogare hive come previsto, ma quando faccio le stesse query all'interno di un flusso di lavoro oozie fallisce. Anche l'aggiunta di "IF EXISTS" porta all'errore sotto. Ho provato ad aggiungere le informazioni di connessione come proprietà al lavoro hive senza successo.Flusso di lavoro Oozie: tabella Hive non trovata ma esiste

Qualcuno può darmi un suggerimento? Mi sono perso qualcosa? Sono necessarie ulteriori informazioni?

Questa è l'uscita del registro del lavoro:

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 

e questo è il messaggio di errore:

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

questo post del blog Hue dimostra come [eseguire un'azione Hive] (http://gethue.tumblr.com/post/60937985689/ hadoop-tutorials-ii-2-execute-hive-queries-e) in un flusso di lavoro Oozie. – Romain

risposta

12

Il problema è altri nodi non sanno dove MySQL è, in modo da stanno ottenendo la tabella degli errori non trovata.

Hai bisogno di fare 2 cose

  1. Copy alveare-site.xml nella directory del flusso di lavoro oozie
  2. Nella vostra azione Hive dicono oozie che utilizzano il mio alveare-site.xml

qualcosa di simile al di sotto

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>

Questo dovrebbe funzionare.

Grazie

+0

Ci sto provando –

+0

Funziona come un fascino. Grazie! –

+1

Se si è in tinta, ricordarsi di farlo nelle proprietà del flusso di lavoro in modo che venga applicato a tutti i nodi/passaggi dell'hive nel flusso di lavoro. –

0

ho sperimentato lo stesso problema, a parte sopra soluzione menzione circa specificando alveare-site.xml correttamente. Consiglierei anche le seguenti cose.

  1. controllare se si dispone di jar del connettore mysql (nel caso in cui si utilizzi mysql come metastore) sia disponibile in classpath.
  2. in caso di azioni Oozie hive, è sufficiente verificare se non si aggiungono i jar hive più volte. per esempio. è già presente in oozie quota lib e hai anche copiato in flusso di lavoro/lib
Problemi correlati