2009-07-17 7 views
-2

Ich versuche, Tabellen pragmatisch mit JDBC zu erstellen. Allerdings kann ich die Tabelle, die ich aus der Hive-Shell erstellt habe, nicht wirklich sehen. Was noch schlimmer ist, wenn ich aus verschiedenen Verzeichnissen auf die Hive-Shell zugreife, sehe ich ein anderes Ergebnis der Datenbank. Muss ich irgendeine Einstellung konfigurieren?Hadoop-Frage

Vielen Dank im Voraus.

Antwort

1

Versuchen Sie, die Hive-Benutzerliste oder den IRC-Kanal per E-Mail zu senden.

1

Sie müssen wahrscheinlich die zentrale Hive-Metastore einrichten (standardmäßig Derby, aber es kann mySQL/Oracle/Postgres sein). Der Metastor ist der "Kleber" zwischen Hive und HDFS. Es erzählt Hive, wo Ihre Datendateien in HDFS leben, welche Art von Daten sie enthalten, welche Tabellen sie angehören, usw.

Weitere Informationen finden Sie http://wiki.apache.org/hadoop/HiveDerbyServerMode

0

Ihre hadoop Protokolle untersuchen. Das passierte für mich, als mein Hadoop-System nicht richtig eingerichtet war. Der Namenknoten konnte die Datanoden anderer Maschinen usw. nicht kontaktieren.

0

Ja, das liegt daran, dass der Metastore nicht richtig eingerichtet wurde. Metastore speichert die Metadaten, die mit Ihrer Hive-Tabelle verknüpft sind (z. B. den Tabellennamen, den Tabellenort, Spaltennamen, Spaltentypen, Bucket/Sortierinformationen, Partitionierungsinformationen, SerDe-Informationen usw.).

Der Standard-Metastore ist eine eingebettete Derby-Datenbank, die nur von einem Client zu einem bestimmten Zeitpunkt verwendet werden kann. Dies ist offensichtlich für die meisten praktischen Zwecke nicht gut genug. Sie sollten, wie die meisten Benutzer, Ihre Hive-Installation so konfigurieren, dass sie einen anderen Metastore verwendet. MySQL scheint eine beliebte Wahl zu sein. Ich habe this link von Cloudera's Website verwendet, um meine MySQL-Metastore erfolgreich zu konfigurieren.

3

Stellen Sie sicher, dass Sie die Struktur immer aus dem gleichen Verzeichnis ausführen, da beim erstmaligen Start der Struktur-Befehlszeilenschnittstelle eine Metasorderby-Datenbank im aktuellen Verzeichnis erstellt wird. Dieser Derby-DB enthält Metadaten von Hive-Tabellen. Wenn Sie Verzeichnisse wechseln, haben Sie unorganisierte Metadaten für Hive-Tabellen. Auch die Derby DB kann mehrere Sitzungen nicht behandeln. Um einen gleichzeitigen Hive-Zugriff zu ermöglichen, müssen Sie eine echte Datenbank verwenden, um den Metastore zu verwalten und nicht die mit ihm gelieferte kleine DerbyDB. Sie können mysql dafür herunterladen und die Hive-Eigenschaften für die jdbc-Verbindung zu mysql type 4 pure java driver ändern.