Apache Hive ist ein Data-Warehouse-System auf Basis von Apache Hadoop, das 2008 bei Facebook entstand und seit 2010 Apache-Top-Level-Projekt ist. Hive übersetzt die SQL-ähnliche Abfragesprache HiveQL in Jobs, die auf Hadoop-Clustern laufen — als Ausführungs-Engines dienen MapReduce, Tez oder Spark. Das Hive Metastore speichert Tabellenschemata in einer relationalen Datenbank; SerDes lesen und schreiben Formate wie Parquet, ORC, Avro und JSON.
Beeline: der moderne Client
beeline -u jdbc:hive2://localhost:10000/default -n nutzer -p passwort
beeline -u jdbc:hive2://localhost:10000/default -e "SHOW TABLES"
beeline -u jdbc:hive2://localhost:10000/default -f abfrage.sql
Beeline ist ein JDBC-Client (basiert auf SQLLine), der sich mit HiveServer2 verbindet — er ersetzt die alte Hive-CLI und unterstützt sowohl eingebetteten als auch Remote-Modus. Mit -e führt man Inline-SQL aus, mit -f ganze Skripte.
Typische HiveQL-Befehle
CREATE DATABASE IF NOT EXISTS analysen;
CREATE TABLE IF NOT EXISTS analysen.ereignisse (id INT, typ STRING)
PARTITIONED BY (tag STRING) STORED AS PARQUET;
LOAD DATA INPATH '/data/roh' INTO TABLE analysen.ereignisse PARTITION (tag='2026-08-30');
SELECT typ, count(*) FROM analysen.ereignisse WHERE tag='2026-08-30' GROUP BY typ;
INSERT OVERWRITE TABLE analysen.summary SELECT typ, count(*) FROM analysen.ereignisse GROUP BY typ;
SHOW TABLES;
DESCRIBE analysen.ereignisse;
Partitionen nach Datum sind in Hive Standard, damit Abfragen nur relevante Verzeichnisse scannen. Die Engine wählt man pro Session: SET hive.execution.engine=tez; (mögliche Werte mr, tez, spark). Das Metastore-Schema initialisiert man einmalig mit schematool -initSchema; Warehouse-Dateien liegen typischerweise unter /user/hive/warehouse im HDFS.
Hive-Tabellen liest auch Spark SQL über das gemeinsame Metastore; Streaming-Pipelines aus Kafka landen häufig in partitionierten Hive-Tabellen. Die Abfragesprache ähnelt stark SQL, das Metastore liegt oft in MySQL, und die Administration läuft über Bash-Skripte.