Einführung
Dieses Tutorial führt Sie durch den Prozess der Erstellung einer externen Hive-Tabelle, um auf Daten zuzugreifen, die im Hadoop Distributed File System (HDFS) gespeichert sind. Sie werden lernen, wie Sie die externe Tabelle einrichten und die darin enthaltenen Daten abfragen, was eine nahtlose Möglichkeit bietet, mit Hadoop-Daten über die Hive SQL-Schnittstelle zu arbeiten.
Einführung in Hive und HDFS
Was ist Hive?
Hive ist eine Data-Warehouse-Infrastruktur, die auf Hadoop aufbaut und eine SQL-ähnliche Schnittstelle bietet, um Daten abzufragen und zu verwalten, die im Hadoop Distributed File System (HDFS) gespeichert sind. Es ermöglicht Benutzern, Abfragen in einer SQL-ähnlichen Sprache namens HiveQL zu schreiben, die dann in MapReduce-Aufträge übersetzt werden, die auf dem Hadoop-Cluster ausgeführt werden können.
Was ist HDFS?
HDFS (Hadoop Distributed File System) ist das primäre Datenspeichersystem, das von Hadoop-Anwendungen verwendet wird. Es ist so konzipiert, dass es große Datensätze zuverlässig und effizient auf mehreren Maschinen in einem Hadoop-Cluster speichert. HDFS bietet einen Hochdurchsatz-Zugriff auf Anwendungsdaten und eignet sich für Anwendungen mit großen Datensätzen.
Integration von Hive und HDFS
Hive ist eng mit HDFS integriert, sodass Benutzer Daten speichern und abfragen können, die in HDFS gespeichert sind. Hive verwendet HDFS als primäres Datenspeichersystem und bietet eine Möglichkeit, Tabellen zu erstellen, die auf in HDFS gespeicherte Daten abbilden.
graph TD
A[Hive] --> B[HiveQL]
B --> C[MapReduce]
C --> D[HDFS]
Anwendungsfälle von Hive und HDFS
Hive und HDFS werden üblicherweise in folgenden Szenarien eingesetzt:
- Big Data Analytics: Hive und HDFS werden verwendet, um große Datensätze wie Weblogdaten, Sensordaten und Social-Media-Daten zu speichern und zu analysieren.
- Data Warehousing: Hive bietet eine SQL-ähnliche Schnittstelle, um Daten abzufragen und zu verwalten, die in HDFS gespeichert sind, was es zu einer beliebten Wahl für den Aufbau von Data Warehouses macht.
- Batchverarbeitung: Hive kann verwendet werden, um Daten, die in HDFS gespeichert sind, in Batches zu verarbeiten, wie z. B. die Generierung von Berichten, die Durchführung von ETL (Extract, Transform, Load)-Operationen und das Ausführen von maschinellen Lernalgorithmen.
Erstellen einer externen Hive-Tabelle
Grundlagen zu externen Hive-Tabellen
In Hive ist eine externe Tabelle eine Tabelle, die auf Daten in einem externen Speicherort wie HDFS verweist. Im Gegensatz zu internen Tabellen, die Daten im Hive-Metastore speichern, bieten externe Tabellen einfach eine Möglichkeit, auf Daten zuzugreifen, die anderswo gespeichert sind.
Erstellen einer externen Hive-Tabelle
Um eine externe Hive-Tabelle zu erstellen, können Sie die folgende SQL-Anweisung verwenden:
CREATE EXTERNAL TABLE IF NOT EXISTS table_name (
col1 data_type,
col2 data_type,
...
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/path/to/hdfs/directory';
Lassen Sie uns die verschiedenen Teile dieser Anweisung analysieren:
CREATE EXTERNAL TABLE IF NOT EXISTS table_name: Dies erstellt eine neue externe Tabelle mit dem angegebenen Namen oder überspringt die Erstellung, wenn die Tabelle bereits existiert.(col1 data_type, col2 data_type, ...): Dies definiert die Spalten der Tabelle zusammen mit ihren Datentypen.ROW FORMAT DELIMITED: Dies gibt an, dass die Daten am externen Speicherort durch ein bestimmtes Zeichen getrennt sind.FIELDS TERMINATED BY ',': Dies legt das Feldtrennzeichen auf ein Komma fest.STORED AS TEXTFILE: Dies teilt Hive mit, dass die Daten im Text-Dateiformat gespeichert sind.LOCATION '/path/to/hdfs/directory': Dies gibt das HDFS-Verzeichnis an, in dem die Daten gespeichert sind.
Beispiel: Erstellen einer externen Hive-Tabelle
Angenommen, Sie haben eine CSV-Datei im HDFS unter dem Pfad /user/hive/data/sales.csv gespeichert. Sie können dann eine externe Hive-Tabelle wie folgt erstellen:
CREATE EXTERNAL TABLE IF NOT EXISTS sales (
product STRING,
quantity INT,
price DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/data/sales.csv';
Dies erstellt eine externe Hive-Tabelle mit dem Namen sales mit drei Spalten: product, quantity und price. Die Daten sollten im CSV-Format vorliegen, wobei die Felder durch Kommas getrennt sind.
Abfragen von Daten in der externen Tabelle
Zugriff auf Daten in der externen Tabelle
Sobald Sie eine externe Hive-Tabelle erstellt haben, können Sie die in dem zugehörigen HDFS-Verzeichnis gespeicherten Daten genauso abfragen wie jede andere Hive-Tabelle. Die Daten werden automatisch aus HDFS geladen, wenn Sie eine Abfrage gegen die Tabelle ausführen.
Beispielabfragen
Nehmen wir an, Sie haben eine externe Hive-Tabelle mit dem Namen sales wie im vorherigen Abschnitt gezeigt erstellt. Hier sind einige Beispielabfragen, die Sie ausführen können:
-- Select all rows from the sales table
SELECT * FROM sales;
-- Select specific columns from the sales table
SELECT product, quantity, price FROM sales;
-- Filter the data based on a condition
SELECT * FROM sales WHERE quantity > 10;
-- Perform aggregations on the data
SELECT product, SUM(quantity) AS total_quantity, AVG(price) AS avg_price
FROM sales
GROUP BY product;
Diese Abfragen laden Daten aus dem mit der Tabelle sales verbundenen HDFS-Verzeichnis und geben die Ergebnisse an den Benutzer zurück.
Vorteile von externen Tabellen
Die Verwendung von externen Tabellen in Hive bietet mehrere Vorteile:
- Datenunabhängigkeit: Externe Tabellen entkoppeln die Daten vom Hive-Metastore, sodass die Daten unabhängig verwaltet und geändert werden können, ohne die Definition der Hive-Tabelle zu beeinflussen.
- Flexibilität: Externe Tabellen können verwendet werden, um auf Daten in verschiedenen Formaten (z. B. CSV, Parquet, ORC) und an verschiedenen Speicherorten (z. B. HDFS, Amazon S3, Google Cloud Storage) zuzugreifen.
- Verringerter Speicheraufwand: Da die Daten nicht im Hive-Metastore gespeichert werden, benötigen externe Tabellen im Vergleich zu internen Tabellen weniger Speicherplatz.
- Einfachere Dateneingabe: Externe Tabellen erleichtern die Dateneingabe in das Hive-Ökosystem, da die Daten direkt in das HDFS-Verzeichnis hinzugefügt werden können, ohne dass eine neue Hive-Tabelle erstellt werden muss.
Indem Sie verstehen, wie Sie externe Hive-Tabellen erstellen und abfragen, können Sie die Stärken von Hive und HDFS effektiv nutzen, um Ihre Big Data zu verwalten und zu analysieren.
Zusammenfassung
In diesem auf Hadoop ausgerichteten Tutorial haben Sie gelernt, wie Sie eine externe Hive-Tabelle erstellen, um auf in HDFS gespeicherte Daten zuzugreifen. Indem Sie die externe Tabelle einrichten, können Sie jetzt die Daten mit der vertrauten Hive SQL-Syntax abfragen und manipulieren, ohne direkt mit dem zugrunde liegenden HDFS-Dateisystem interagieren zu müssen. Dieser Ansatz vereinfacht den Umgang mit Hadoop-Daten und ermöglicht es Ihnen, die leistungsstarken Funktionen des Hive-Ökosystems zu nutzen.



