2016-04-14 15 views
4

Präambel: Ich bin neu in Hadoop/Hive. habe eigenständig hadoop installiert und versuche jetzt, Bienenstock zur Arbeit zu bringen. Ich bekomme immer einen Fehler bei der Initialisierung des Metastreas und kann nicht herausfinden, wie ich es beheben kann. (Hadoop 2.7.2 und hive 2.0)Hadoop-Metastore wird nicht initialisiert

HADOOP_HOME UND HIVE_HOME SIND

SET
ubuntu15-laptop: ~ $>echo $HADOOP_HOME 
/usr/hadoop/hadoop-2.7.2 

ubuntu15-laptop: ~ $>echo $HIVE_HOME 
/usr/hive 

hdfs arbeitet

ubuntu15-laptop: ~ $>hadoop fs -ls/
Found 2 items 
drwxrwxr-x - testuser supergroup   0 2016-04-13 21:37 /tmp 
drwxrwxr-x - testuser supergroup   0 2016-04-13 21:38 /user 

ubuntu15-laptop: ~ $>hadoop fs -ls /user 
Found 1 items 
drwxrwxr-x - testuser supergroup   0 2016-04-13 21:38 /user/hive 

ubuntu15-laptop: ~ $>hadoop fs -ls /user/hive 
Found 1 items 
drwxrwxr-x - testuser supergroup   0 2016-04-13 21:38 /user/hive/warehouse 

ubuntu15-laptop: ~ $>groups 
testuser adm cdrom sudo dip plugdev lpadmin sambashare 

hive nicht funktioniert. sagt, ich meine Metastore

ubuntu15-laptop: ~ $>hive 

Logging initialized using configuration in 
jar:file:/usr/hive/lib/hive-common-2.0.0.jar!/hive-log4j2.properties 
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 ich versuche, es zu initialisieren useing Postgres initialisieren müssen - aber schematool versucht Derby

ubuntu15-laptop: ~ $>schematool -initSchema -dbType postgres 
Metastore connection URL: jdbc:derby:;databaseName=metastore_db;create=true 
Metastore Connection Driver : org.apache.derby.jdbc.EmbeddedDriver 
Metastore connection User: APP 
Starting metastore schema initialization to 2.0.0 
Initialization script hive-schema-2.0.0.postgres.sql 
Error: Syntax error: Encountered "statement_timeout" at line 1, column 5. 
(state=42X01,code=30000) 
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization 
FAILED! Metastore state would be inconsistent !! 
*** schemaTool failed *** 

so i Postgres-Treiber verwenden usw. hive-site.xml zu verwenden, ändern aber weil ich nicht tun haben die installierten Treiber, schlägt es

ubuntu15-laptop: ~ $>cp /usr/hive/conf/hive-site.xml.templ /usr/hive/conf/hive-site.xml 
ubuntu15-laptop: ~ $>schematool -initSchema -dbType postgres 
Metastore connection URL: jdbc:postgresql://localhost:5432/hivedb 
Metastore Connection Driver : org.postgresql.Driver 
Metastore connection User: 123456 
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver 
*** schemaTool failed *** 

so ist, dann versuche ich Derby zu verwenden zuerst den Stock-site.xml ausrücken von t er Art und Weise wieder so Standard-Derby ist

ubuntu15-laptop: ~ $>mv /usr/hive/conf/hive-site.xml /usr/hive/conf/hive-site.xml.templ 

dann versuche ich Initialisieren wieder mit Derby, aber es scheint schon pro Fehler initialisiert werden „Fehler: FUNCTION‚NUCLEUS_ASCII‘existiert bereits“

ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby 
Metastore connection URL: jdbc:derby:;databaseName=metastore_db;create=true 
Metastore Connection Driver : org.apache.derby.jdbc.EmbeddedDriver 
Metastore connection User: APP 
Starting metastore schema initialization to 2.0.0 
Initialization script hive-schema-2.0.0.derby.sql 
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 *** 

I bin schon seit zwei Tagen hier. Jede Hilfe würde sehr geschätzt werden.

Antwort

9

So ..

Hier ist was passiert ist.

Nach der Installation von Hive, das erste, was ich getan habe, war Hive, die versucht, die metasore_db zu erstellen/initialisieren, aber offenbar nicht richtig gemacht. Auf diesem ersten Lauf habe ich diesen Fehler habe:

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 fehlgeschlagen ist, erstellt im Verzeichnis ein metastore_db Verzeichnis, aus dem ich hive lief:

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

Also, wenn ich dann versucht, running

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

Der Metastaster 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. wenn Sie Verzeichnisse ändern, die metastore_db oben erstellt werden nicht gefunden:
  4. Re

  5. Run hive wieder

** Auch der Hinweis

schematool -initSchema -dbType Derby laufen ! 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 sind Informationen dazu: metastore_db created wherever I run Hive

+0

Auch wenn Sie eine Änderung an javax.jdo.option.ConnectionURL in hive-site.xml vornehmen, erscheint metastore_db in Ihrem angegebenen Verzeichnis, nicht in $ HIVE_HOME. – midtownguru

+0

Rebecca, Sie haben Frage mit Postgresql aufgeworfen, aber in Antwort scheint Sie Trost mit Derby haben. Mit postgresql konnten Sie Schematool verwenden? –

+0

Es ist ein guter Weg für dieses Problem. In My Mac 10.12.2, ich installiere Bienenstock durch Brauen, bekomme eine Menge Probleme. mv metastore_db metastore_db.tmp; schematool -initSchema -dbType Derby; ist ein guter Weg zu lösen – Windyground