2014-11-18 7 views
5

ho hadoop 1.2.1 e devo installare alveare 0.14.0 sul singolo nodoHive 0.14.0 non iniziano

$ hive 

Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-0.14.0.jar!/hive-log4j.properties 

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxrwxr-x 

at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444) 
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672) 
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.hadoop.util.RunJar.main(RunJar.java:160) 
Caused by: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxrwxr-x 
at org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:529) 
at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:478) 
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:430) 
... 7 more 

La radice graffiatura dir:/tmp/alveare su HDFS dovrebbe essere scrivibile. Le autorizzazioni correnti sono: rwxrwxr-x.

Io uso hadoop fs -chmod g+w /tmp/hive ma non funziona.

risposta

8

aggiornamento il permesso della directory/tmp/alveare HDFS usando il seguente comando

hadoop fs -chmod 777 /tmp/hive 

Se è così si può rimuovere/tmp/alveare sia locale e HDFS.

hadoop fs -rm -r /tmp/hive; 
rm -rf /tmp/hive 

In questa posizione sono conservati solo i file temporanei. Nessun problema, anche se cancelliamo questo, verrà creato quando richiesto con le autorizzazioni appropriate.

+0

l'ho fatto, ma ancora non funziona. – Amit

+0

Si prega di consultare la risposta aggiornata – sachin

+0

Grazie! Ho lavorato per me –

2

Ho fatto un po 'di sperimentazione e ho pensato che potesse essere utile a qualcuno.

Quando alveare 0.14.0 viene avviato senza prima creare/tmp/alveare in HDFS, quella directory viene creato con la modalità 711.

drwx--x--x - hadoop supergroup   0 2014-12-08 18:47 /tmp/hive 

Se invece si crea la directory tramite hadoop dfs -mkdir /tmp/hive il valore di default per la modalità 755.

drwxr-xr-x - hadoop supergroup   0 2014-12-09 11:13 /tmp/hive 

Le autorizzazioni minime necessarie per consentire alveare per iniziare senza errori è 733.

hadoop dfs -chmod 733 /tmp/hive 

Risultato con il seguente e l'hive che inizia correttamente.

drwx-wx-wx - hadoop supergroup   0 2014-12-09 11:13 /tmp/hive 

Questo mi porta a credere che hive 0.14.0 stia facendo la cosa sbagliata quando crea quella directory.

+0

Sono d'accordo. Ho provato i suggerimenti nel post precedente ma senza fortuna. Quindi ho creato la directory/tmp/hive ed è stata creata con 755. Tuttavia, l'alveare non si avvia ancora. Nel mio caso, Hive 0.14 dice: 'RuntimeException: la directory root scratch:/tmp/hive su HDFS dovrebbe essere scrivibile. Le autorizzazioni correnti sono: rwxr-xr-x'. Molto divertente !! :-(. – sgsi

+0

Interessante, questo ha risolto il mio problema di autorizzazione Hive: 'hadoop dfs -chmod 777/tmp/hive. In precedenza, ho fatto solo ** fs **:' hadoop fs -chmod 777/tmp/hive' – sgsi

0

Controllare il valore per il seguente tag nel alveare-site.xml, quindi modificare l'autorizzazione per la cartella menzionata

<property> 
<name>hive.exec.local.scratchdir</name> 
<value>/tmp/mydir</value> 
<description>Local scratch space for Hive jobs</description> 
</property> 

hadoop fs -rmr /tmp/mydir; 
hadoop fs -mkdir /tmp/mydir; 
hadoop fs -chmod 777 /tmp/mydir; 
hadoop fs -chmod -R 777 /tmp/mydir;