View a markdown version of this page

Zugreifen auf HBase-Tabellen mit Hive - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zugreifen auf HBase-Tabellen mit Hive

HBase und Apache Hive sind eng miteinander integriert, sodass Sie direkt auf in HBase gespeicherte Daten parallele Verarbeitungslasten ausführen können. Um Hive zusammen mit HBase zu nutzen, können Sie sie in der Regel auf demselben Cluster starten. Sie können Hive und HBase aber auch auf separaten Clustern starten. Wenn Sie HBase und Hive separat auf verschiedenen Clustern ausführen, kann dies die Leistung verbessern, da so jede Anwendung die Cluster-Ressourcen effizienter nutzt.

Die folgenden Verfahrensweisen zeigen, wie Sie eine Verbindung mit HBase auf einem Cluster mit Hive herstellen.

Anmerkung

Sie können nur einen Hive-Cluster mit einem HBase-Cluster verbinden.

So verbinden Sie Hive mit HBase
  1. Erstellen Sie separate Cluster mit installiertem Hive und HBase oder erstellen Sie einen einzelnen Cluster, auf dem sowohl HBase als auch Hive installiert sind.

  2. Wenn Sie separate Cluster verwenden, ändern Sie Ihre Sicherheitsgruppen so, dass HBase- und Hive-Ports zwischen diesen beiden Primärknoten geöffnet sind.

  3. Verwenden Sie SSH, um eine Verbindung zum primären Knoten für den Cluster herzustellen, auf dem Hive installiert ist. Weitere Informationen finden Sie unter Stellen Sie über SSH eine Verbindung zum Primärknoten her im Verwaltungshandbuch für Amazon EMR.

  4. Starten Sie die Hive-Shell mit dem folgenden Befehl.

    hive
  5. (Optional) Dies ist nicht erforderlich, wenn HBase und Hive sich auf demselben Cluster befinden. Verbinden Sie den HBase-Client auf Ihrem Hive-Cluster mit dem HBase-Cluster, der Ihre Daten enthält. Im folgenden Beispiel public-DNS-name wird durch den öffentlichen DNS-Namen des primären Knotens des HBase-Clusters ersetzt, zum Beispiel:. ec2-50-19-76-67.compute-1.amazonaws.com

    set hbase.zookeeper.quorum=public-DNS-name;
  6. In diesem Abschnitt fahren Sie mit der Ausführung von Hive-Abfragen auf Ihre HBase-Daten fort oder sehen die nächste Vorgehensweise.

So greifen Sie auf HBase-Daten von Hive zu
  • Nach dem Herstellen der Verbindung zwischen dem Hive- und HBase-Cluster (wie in der vorherigen Vorgehensweise gezeigt) können Sie auf die Daten zugreifen, die auf dem HBase-Cluster gespeichert sind, indem Sie eine externe Tabelle in Hive erstellen.

    Wenn das folgende Beispiel über die Hive-Eingabeaufforderung auf dem Primärknoten ausgeführt wird, wird eine externe Tabelle erstellt, die auf Daten verweist, die in einer HBase-Tabelle namens gespeichert sind. inputTable Sie können dann auf inputTable in Hive-Anweisungen verweisen, um Daten abzufragen und zu ändern, die im HBase-Cluster gespeichert sind.

    set hbase.zookeeper.quorum=ec2-107-21-163-157.compute-1.amazonaws.com; create external table inputTable (key string, value string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties ("hbase.columns.mapping" = ":key,f1:col1") tblproperties ("hbase.table.name" = "t1"); select count(key) from inputTable ;

Einen fortgeschritteneren Anwendungsfall und ein Beispiel für die Kombination von HBase und Hive finden Sie im AWS Big-Data-Blogbeitrag Kombinieren von NoSQL und massively parallel analytics using Apache HBase and Apache Hive on Amazon EMR.