2016-02-26 15 views
25

Ich habe versucht, Hive auf einem Raspberry Pi 2 zu installieren. Ich habe Hive von Zip komprimierten Hive-Paket installiert und $ HADOOP_HOME und $ HIVE_HOME manuell unter huser Benutzergruppe ich erstellt. Wenn hive läuft, habe ich die folgende Fehlermeldung: hiveHive Installationsprobleme: Hive Metastore-Datenbank ist nicht initialisiert

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)

So lief ich den Befehl in der obigen Fehlermeldung vorgeschlagen: schematool -dbType Derby -initSchema ich die Fehlermeldung bekam:

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 *

Es scheint, dass es keine hilfreichen Informationen gibt, wenn ich versuche, diesen Fehler online zu googeln. Jede Hilfe oder irgendeine Erklärung, wie Hive mit Derby arbeitet, wäre willkommen!

+0

Haben Sie dieses Problem behoben? – Newtopian

Antwort

9

ich ein ähnliches Problem aufgetreten, die ich durch das Entfernen der Derby-Datenbank-Dateien rm -Rf $HIVE_HOME/metastore_db

Seien Sie sich bewusst festgelegt, wird dies Ihr Schema vollständig entfernen!

nach dem alten Schema Reinigung konnte ich neu initialisiert mit:

$HIVE_HOME/bin/schematool -initSchema -dbType derby 

Es könnte von dem unterscheiden, wo Sie hive rufen, versuchen Sie, Ihre Bienenstock-Installationsverzeichnis zu gehen und laufen ./bin/hive

+0

haben Sie irgendwelche anderen Vorschläge Ich habe dies versucht und das gleiche Schema-Tool gescheitert Fehler wie oben – Ronan

+0

In meinem Fall ist die Datenbank mysql.Thank Sie so viel –

91

Nach der Installation von Hive, wenn das erste, was Sie getan haben, wurde ausgeführt, Hive versucht, die metasore_db zu erstellen/initialisieren, aber anscheinend nicht richtig. Auf diesem ersten Lauf, vielleicht haben Sie Ihre Fehler:

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) 

hive Rennen, auch wenn es fehlschlägt, erstellt ein metastore_db Verzeichnis in dem Verzeichnis, aus dem Sie hive lief:

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

Also, wenn Sie dann versucht zu laufen

Der Metastor existiert bereits, aber nicht in vollständiger Form.

Soooooo die Antwort lautet:

  1. Bevor Sie hive zum ersten Mal laufen, laufen

    schematool -initSchema -dbType Derby

  2. Wenn Sie bereits hive lief und dann versucht, initSchema und es schlägt fehl:

    mv metastore_db metastore_db.tmp

  3. Re laufen

    schematool -initSchema -dbType Derby

  4. Run hive wieder

** Auch der Hinweis: Wenn Sie Verzeichnisse ändern, die metastore_db oben won erstellt‘ t gefunden werden! Ich bin mir sicher, dass es einen guten Grund dafür gibt, den ich noch nicht kenne, weil ich heute buchstäblich versuche, Bienenstock zum ersten Mal zu benutzen. Ahhh hier Informationen zu diesem Thema: metastore_db erstellt, wo ich laufen Hive

+1

thnx! das hat viel Zeit gespart. –

+1

danke du hast mich gerettet – Suresh

+1

Danke ssso viel !! –

9

Ich installierte hive mit HomeBrew (MacOS) in/usr/local/Keller/Bienenstock und afer läuft schematool -dbType derby -initSchema ich die folgende Fehlermeldung erhalten:

Start Initialisierung des Metastor-Schemas auf 2.0.0 Initialisierungs-Skript hive-schema-2.0.0.derby.sql Fehler: FUNCTION 'NUCLEUS_ASCII' existiert bereits. (state = X0Y68, code = 30000) org.apache.hadoop.hive.metastore.HiveMetaException: Initialisierung des Schemas FAILED! Metastore-Zustand wäre inkonsistent !!

Ich kann aber auch nicht metastore_db oder metastore_db.tmp Ordner unter Installationspfad finden, also habe ich versucht:

  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. Kommentar der 'NUCLEUS_ASCII' -Funktion und 'NUCLEUS_MATCHES' Funktion
  4. wiederholen schematool -dbType derby -initSchema, dann geht alles gut!

hoffe das jemand helfen.

+0

das ist eine gute Antwort. Wie wäre es, es zu meiner Frage hier zu verwenden: http://stackoverflow.com/questions/43947930/unable-to-initialize-hive-with-derby-from-brew-install – javadba

+0

Das ist ein großer! Zeit gespart – Ankita