2016-02-26 15 views
25

Ho provato ad installare hive su un Raspberry Pi 2. Ho installato Hive tramite pacchetto Hive compresso con zip e configurazione $ HADOOP_HOME e $ HIVE_HOME manualmente sotto il gruppo utente hduser che ho creato. Durante l'esecuzione di alveare, ho ottenuto il seguente messaggio di errore: alveareProblemi di installazione Hive: il database metastore Hive non è inizializzato

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)

Così ho eseguito il comando suggerito nel messaggio di errore di cui sopra: schematool -dbType derby -initSchema ho ricevuto il messaggio di errore:

Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000) org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !! * schemaTool failed *

Sembra che non ci siano informazioni utili quando provo a cercare su Google questo errore online. Qualsiasi aiuto o spiegazione su come Hive funziona con Derby sarebbe apprezzato!

+0

Sei mai riuscito a risolvere questo problema? – Newtopian

risposta

9

ho incontrato un problema simile, che ho fissato rimuovendo i file di database derby rm -Rf $HIVE_HOME/metastore_db

essere consapevoli, questo consente di rimuovere completamente lo schema!

Dopo aver pulito il vecchio schema che potrei reinizializzare con:

$HIVE_HOME/bin/schematool -initSchema -dbType derby 

Si potrebbe differire da dove si chiama alveare, cercare di andare alla directory di installazione alveare ed eseguire ./bin/hive

+0

avete altri suggerimenti Ho provato questo e ottenere lo stesso errore dello strumento schema non riuscito come sopra – Ronan

+0

Nel mio caso il database è mysql.Grazie mille –

91

Dopo aver installato l'hive, se la prima cosa che hai fatto è stata eseguire hive, hive ha tentato di creare/inizializzare metastore_db, ma a quanto pare potrebbe non essere corretto. In quella corsa iniziale, magari il vostro errore:

Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql) 

alveare Correre, anche se non riesce, crea una directory metastore_db nella directory da cui è stato eseguito alveare:

ubuntu15-laptop: ~ $>ls -l |grep meta 
drwxrwxr-x 5 testuser testuser 4096 Apr 14 12:44 metastore_db 

Quindi, quando si poi provato a funzionare

ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby 

Il metastore esisteva già, ma non in forma completa.

Soooooo la risposta è:

  1. Prima di eseguire alveare per la prima volta, eseguire

    schematool -initSchema -dbType derby

  2. Se già stato eseguito alveare e poi ha cercato di initSchema e non funziona:

    mv metastore_db metastore_db.tmp

  3. RE gestiscono

    schematool -initSchema -dbType derby

  4. Run alveare nuovo

** Anche di nota: se si cambia directory, il metastore_db creato in precedenza ha vinto' essere trovato! Sono sicuro che c'è una buona ragione per questo che ancora non conosco perché sto letteralmente cercando di usare l'alveare per la prima volta oggi. Ahhh ecco informazioni su questo: metastore_db creato ovunque io corro Hive

+1

thnx! che ha risparmiato un sacco di tempo –

+1

grazie mi hai salvato – Suresh

+1

Grazie mille per tutto !! –

9

ho installato alveare con HomeBrew (MacOS) in/usr/local/Cantina/alveare e afer esecuzione schematool -dbType derby -initSchema ottengo il seguente messaggio di errore:

partenza inizializzazione dello schema di metastore 2.0.0 Script di inizializzazione hive-schema-2.0.0.derby.sql Errore: FUNCTION 'NUCLEUS_ASCII' esiste già. (stato = X0Y68, codice = 30000) org.apache.hadoop.hive.metastore.HiveMetaException: Inizializzazione dello schema NON RIUSCITA! Lo stato di Metastore sarebbe incoerente !!

Tuttavia, non riesco a trovare né metastore_db o una cartella metastore_db.tmp sotto percorso di installazione, quindi ho provato:

  1. find /usr/ -name hive-schema-2.0.0.derby.sql
  2. vi /usr/local/Cellar/hive/2.0.1/libexec/scripts/metastore/upgrade/derby/hive-schema-2.0.0.derby.sql
  3. commentare la funzione 'NUCLEUS_ASCII' e 'NUCLEUS_MATCHES' funzione
  4. rerun schematool -dbType derby -initSchema, quindi tutto va bene!

spero che questo aiuti qualcuno.

+0

questa è un'ottima risposta. Che ne dici di usarlo per la mia domanda qui: http://stackoverflow.com/questions/43947930/unable-to-initialize-hive-with-derby-from-brew-install – javadba

+0

Questo è un grande! tempo risparmiato – Ankita