2016-03-20 6 views
0

Englisch ist nicht meine Muttersprache; Bitte entschuldigen Sie Tippfehler. Ich habe versucht, Hive mit Hadoop in einer Linux-Umgebung nach dieser tutorial zu installieren. Hadoop ist richtig installiert, aber wenn ich versuche, hive zu installieren i die folgende Ausgabe in meiner Schale erhalten:Wenn ich versuche, Hive 2.0 zu installieren, erhalte ich mehrere SLF4J-Bindungen und diese Hive-Metastreet-Datenbank wird nicht initialisiert

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/home/phd2014/hive/lib/hive-jdbc-2.0.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/home/phd2014/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/home/phd2014/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] 
Logging initialized using configuration in jar:file:/home/phd2014/hive/lib/hive-common-2.0.0.jar!/hive-log4j2.properties 
Java HotSpot(TM) Client VM warning: You have loaded library /home/phd2014/hadoop/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now. 
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'. 
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) 

In meinem ~/.bashrc y folgenden setzen file:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle 
export HADOOP_PREFIX=/home/phd2014/hadoop 
export HADOOP_HOME=/home/phd2014/hadoop 
export HADOOP_MAPRED_HOME=/home/phd2014/hadoop 
export HADOOP_COMMON_HOME=/home/phd2014/hadoop 
export HADOOP_HDFS_HOME=/home/phd2014/hadoop 
export YARN_HOME=/home/phd2014/hadoop 
export HADOOP_CONF_DIR=/home/phd2014/hadoop/etc/hadoop 
export HIVE_HOME=/home/phd2014/hive 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HIVE_HOME/bin 

ich exportiere auch die Variablen HADOOP_HOME und HIVE_HOME innerhalb der .profile Datei

Diese Frage here nicht für mich arbeiten, ich laufe auch den Befehl, das Schema zu erstellen, aber es ist fehlgeschlagen: schematool -dbType derby -initSchema

Ich habe noch eine Sache, die ich denke, dass es helfen könnte und ist, die pom.xml-Datei zu ändern, um die mehreren SLF4J-Bindungen zu vermeiden, aber ich kann es nicht finden. Versuchen Sie this, aber ich habe es nicht gefunden.

Vielen Dank im Voraus

Antwort

0

Wenn ich versuche, Hive 2.0.0 zu installieren, habe ich den Fehler, dass ich gepostet, aber wenn ich die Version 1.2.1 installieren, funktioniert es gut, nur durch die Umgebungsvariablen festlegen und erstellen /user/hive/warehouse directory in der HDFS. Es muss ein Fehler der neuen Version sein. Meine Empfehlung ist, die Version 1.2.1 anstelle der 2.0.0

1

SLF4J ein Logging-API ist. Es wird dynamisch an eine Implementierung gebunden, erwartet aber, dass nur eine vorhanden ist. In Ihrem Fall scheint es, dass Sie drei Gläser haben, die eine SLF4J-Implementierung bereitstellen; hive-jdbc-2.0.0-standalone.jar, log4j-slf4j-impl-2.4.1.jar und slf4j-log4j12-1.7.10.jar.

hive-jdbc-2.0.0-standalone.jar scheint ein "schattiertes" jar zu sein - es enthält die Klassen aus mehreren Drittanbieter-Jars, einschließlich des Inhalts von log4j-slf4j-impl. Ich nehme an, dass dies SLF4J tatsächlich ausgewählt hat, da es das erste gefunden hat.

Das Problem ist, dass Sie irgendwie Gläser enthalten, die das Standalone-Glas bereits eingebaut hat. Normalerweise sollte bei einem Standalone-Glas alles, was Sie brauchen, bereits in diesem Glas sein.

+0

zu installieren Danke für Ihre Antwort rgoers, Sie einige meiner Zweifel geklärt. Ich denke, ich könnte entscheiden, welches Glas in meiner pom.xml-Datei zu verwenden ist, wie es in diesem Link [link] (http://www.slf4j.org/codes.html#multiple_bindings) erklärt wird, aber mein Problem ist, dass ich nicht konnte finde meine pom.xml nicht. – PeterPa1va

Verwandte Themen