Obwohl viele Software-Ex­per­tin­nen und -Experten das Data-Warehouse-System Apache Hive bereits ver­schwin­den sehen, kommt es auch heute noch für die Ver­wal­tung von großen Da­ten­men­gen zum Einsatz. Viele Funk­tio­nen von Apache Hive haben zudem in Nach­fol­ger­sys­te­men Einzug gehalten. Ein genauerer Blick auf Hive und die wich­tigs­ten An­wen­dun­gen lohnt sich somit.

Was ist Apache Hive?

Apache Hive ist eine ska­lier­ba­re Er­wei­te­rung der Server-Anwendung Apache und der Spei­cher­ar­chi­tek­tur Apache Hadoop. In Hadoop-Ar­chi­tek­tu­ren werden komplexe Re­chen­auf­ga­ben in kleine Prozesse zerlegt und per Clus­te­ring auf Com­pu­ter­clus­tern aus Nodes parallel verteilt. Dadurch lassen sich große Da­ten­men­gen selbst mit Stan­dard­ar­chi­tek­tu­ren aus Servern und Rechnern ver­ar­bei­ten. Apache Hive dient hierbei für Ihr Data Warehouse als in­te­grier­tes Abfrage- und Ana­ly­se­sys­tem auf Open-Source-Basis. Daten lassen sich dank Hive mit der SQL-ähnlichen Da­ten­bank­spra­che HiveQL ana­ly­sie­ren, abfragen und zu­sam­men­fas­sen. Dank Hive werden somit Hadoop-Daten auch für größere Gruppen von Nut­ze­rin­nen und Nutzern zu­gäng­lich.

Bei Hive verwenden Sie eine Syntax, die SQL:1999 nahesteht, um Programme, An­wen­dun­gen und Da­ten­ban­ken zu struk­tu­rie­ren bzw. Skripte zu in­te­grie­ren. Vor Hive war für Hadoop eine Kenntnis von Java-Pro­gram­mie­rung und -Pro­gram­mier­ver­fah­ren er­for­der­lich, um die Da­ten­ab­fra­ge zu nutzen. Hive ist es zu verdanken, dass sich Abfragen kom­for­ta­bel in das Da­ten­bank­sys­tem-Format über­set­zen lassen. Dabei kann es sich z. B. um MapReduce-Jobs handeln. Mit Hive ist es ebenfalls möglich, weitere SQL-basierte An­wen­dun­gen im Hadoop-Framework zu in­te­grie­ren. Aufgrund der weiten Ver­brei­tung von SQL er­leich­tert Hive als Hadoop-Er­wei­te­rung auch für Nicht-Experten und Nicht-Ex­per­tin­nen die Arbeit mit Da­ten­ban­ken und großen Da­ten­men­gen.

Wie funk­tio­niert Hive?

Bevor Apache Hive das Hadoop-Framework ergänzte, stützte sich das Hadoop-Ökosystem noch auf das von Google ent­wi­ckel­te MapReduce-Framework. Dieses war im Fall von Hadoop 1 noch als ei­gen­stän­di­ge Engine für die Ver­wal­tung, das Mo­ni­to­ring und die Steuerung von Res­sour­cen und Re­chen­pro­zes­sen direkt in das Framework im­ple­men­tiert. Das wiederum setzte um­fas­sen­de Kennt­nis­se von Java voraus, um Hadoop-Dateien überhaupt er­folg­reich ab­zu­fra­gen.

Die Haupt­funk­tio­nen von Hadoop für die Ver­wen­dung und Ver­wal­tung großer Da­ten­men­gen liegen somit in:

  • Da­ten­zu­sam­men­fas­sung
  • Abfrage
  • Analyse

Die Funk­ti­ons­wei­se von Hive basiert auf einem einfachen Prinzip: Mit einer SQL-ähnlichen Ober­flä­che lassen sich Abfragen und Analysen von Hadoop-Dateien per HiveQL kom­for­ta­bel in MapReduce-, Spark- oder Tez-Jobs über­set­zen. Hierzu or­ga­ni­siert Hive Daten aus dem Hadoop-Framework in ein HDFS-kom­pa­ti­bles Ta­bel­len­for­mat. HDFS steht für Hadoop Dis­tri­bu­ted File System. Die gezielte Abfrage von Daten erfolgt daraufhin über spe­zi­fi­sche Cluster und Nodes des Hadoop-Systems. Als Standard-Funk­tio­nen stehen hierzu auch Filter, Ag­gre­ga­tio­nen und Joins zur Verfügung.

Hive basiert auf dem Schema-on-Read-Prinzip

Im Gegensatz zu re­la­tio­na­len Da­ten­ban­ken, die nach dem Prinzip SoW (Schema-on-Write) arbeiten, basiert Hive auf dem SoR-Prinzip (Schema-on-Read). Das bedeutet, dass Daten im Hadoop-Framework zunächst noch un­ver­än­dert hin­ter­legt und nicht in einem vor­de­fi­nier­ten Schema ge­spei­chert werden. Erst bei einer Hive-Abfrage werden die Daten nach Bedarf einem Schema angepasst. Der Vorteil liegt vor allem beim Cloud Computing in mehr Ska­lier­bar­keit, mehr Fle­xi­bi­li­tät und schnel­le­ren La­de­zei­ten der auf Cluster ver­teil­ten Da­ten­ban­ken.

Wie lässt sich mit Daten in Hive arbeiten?

Für die Abfrage und Analyse von Daten mit Hive kommen Apache Hive-Tabellen nach einem Le­se­zu­griffs­sche­ma zum Einsatz. Mit Hive or­ga­ni­sie­ren und sortieren Sie Daten in diesen Tabellen in kleineren de­tail­lier­ten oder in großen über­grei­fen­den Einheiten. Die Hive-Tabellen werden in so­ge­nann­te „Buckets“, also Da­ten­blö­cke, auf­ge­teilt. Um auf die Daten zu­zu­grei­fen, nutzen Sie die SQL na­he­ste­hen­de Hive-Da­ten­bank­spra­che HiveQL. Hive-Tabellen lassen sich unter anderem über­schrei­ben und anhängen sowie in Da­ten­ban­ken se­ria­li­sie­ren. Zudem verfügt jede Hive-Tabelle über ein eigenes HDFS-Ver­zeich­nis.

Tipp

Behalten Sie mit Linux Hosting von IONOS Ihre Datenbank im Griff – mit flexibel ska­lier­ba­rer Per­for­mance, SSL, DDoS-Schutz und sicheren deutschen Servern.

Die wich­tigs­ten Funk­tio­nen von Hive

Zu den Kern­funk­tio­nen von Hive zählen die Abfrage und Analyse von großen Da­ten­men­gen und Da­ten­sät­zen, die als Hadoop-Dateien in einem Hadoop-Framework ge­spei­chert sind. Eine zweite Kern­auf­ga­be von Hive ist die Über­set­zung von Abfragen in HiveQL in MapReduce-, Sparks- und Tez-Jobs.

Weitere nen­nens­wer­te Funk­tio­nen von Hive umfassen:

  • Metadaten in re­la­tio­na­len Datenbank-Ma­nage­ment-Systemen speichern
  • Kom­pri­mier­te Daten in Hadoop-Systemen verwenden
  • UDFs (User Defined Functions) für be­nut­zer­de­fi­nier­te Da­ten­be­ar­bei­tung und Data-Mining
  • Un­ter­stüt­zung für Spei­cher­ty­pen wie RCFile, Text oder HBase
  • Ver­wen­dung von MapReduce und ETL-Un­ter­stüt­zung

Was ist HiveQL?

Im Zu­sam­men­hang mit Hive taucht immer wieder die Kenn­zeich­nung „SQL-ähnlich“ auf. Diese bezieht sich auf die Hive-Da­ten­bank­spra­che HiveQL, die auf SQL basiert, jedoch nicht 100-prozentig mit Standards wie SQL-92 über­ein­stimmt. HiveQL lässt sich somit auch in gewisser Weise als eine Art SQL- oder MySQL-Dialekt verstehen. Trotz aller Ähn­lich­keit un­ter­schei­den sich daher beide Sprachen in we­sent­li­chen Aspekten. So un­ter­stützt HiveQL viele SQL-Funk­tio­nen für Trans­ak­tio­nen nicht oder Sub­queries nur bedingt, während es mit eigenen Er­wei­te­run­gen wie Mul­ti­ta­ble Inserts für eine bessere Ska­lier­bar­keit und Per­for­mance im Hadoop-Framework sorgt. Das Über­set­zen von HiveQL-Abfragen in MapReduce, Tez und Spark übernimmt der Apache Hive Compiler.

Tipp

Nutzen Sie de­di­zier­te Server mit leis­tungs­star­ken Intel- oder AMD-Pro­zes­so­ren und sparen Sie sich eine eigene IT – mit Managed Server von IONOS.

Da­ten­si­cher­heit und Apache Hive

Durch die In­te­gra­ti­on von Apache Hive in Hadoop-Systeme pro­fi­tie­ren Sie auch vom Au­then­ti­fi­zie­rungs­dienst Kerberos. Dieser er­mög­licht eine zu­ver­läs­si­ge ge­gen­sei­ti­ge Au­then­ti­fi­zie­rung und Ve­ri­fi­zie­rung zwischen Server und Usern. Da HDFS zudem Be­rech­ti­gun­gen für neue Hive-Dateien vorgibt, liegt die Au­to­ri­sie­rung von Nut­ze­rin­nen und Nutzern sowie Gruppen bei Ihnen. Ein weiterer wichtiger Si­cher­heits­aspekt: Hive bietet eine hilf­rei­che Wie­der­her­stel­lung kri­ti­scher Workloads im Notfall.

Welche Vorteile bietet Apache Hive?

Hive bietet vor allem für die Arbeit mit großen Da­ten­men­gen im Cloud Computing oder im Fall von Big Data as a Service zahl­rei­che hilf­rei­che Funk­tio­nen wie:

  • Ad-hoc-Abfragen
  • Da­ten­ana­ly­sen
  • Tabellen und Par­ti­tio­nen erstellen
  • Un­ter­stüt­zung für logische, re­la­tio­na­le und arith­me­ti­sche Ver­knüp­fun­gen
  • Mo­ni­to­ring und Über­prü­fung von Trans­ak­tio­nen
  • Ta­ges­end­be­rich­te
  • Ab­fra­ge­er­geb­nis­se in HDFS-Ver­zeich­nis­se laden
  • Ta­bel­len­da­ten in lokale Ver­zeich­nis­se über­tra­gen

Zu den Haupt­vor­tei­len zählen somit:

  • Er­mög­licht qua­li­ta­ti­ve Er­kennt­nis­se zu großen Da­ten­men­gen, z. B. für Data-Mining und Machine Learning
  • Optimiert Ska­lier­bar­keit, Kos­ten­ef­fi­zi­enz und Er­wei­ter­bar­keit von großen Hadoop-Frame­works
  • Seg­men­tie­rung von An­wen­der­krei­sen durch Click­stream-Analysen
  • Erfordert dank HiveQL keine ver­tief­ten Kennt­nis­se zu Java-Pro­gram­mier­ver­fah­ren
  • Wett­be­werbs­vor­tei­le durch eine schnel­le­re, ska­lier­ba­re Re­ak­ti­ons­fä­hig­keit und Per­for­mance
  • Er­mög­licht das Speichern von bis zu Hunderten Petabytes Daten sowie bis zu 100.000 Da­ten­ab­fra­gen pro Stunde selbst ohne High-End-In­fra­struk­tur
  • Dank Fähigkeit zur Vir­tua­li­sie­rung ver­bes­ser­te Res­sour­cen­aus­las­tung und somit schnel­le­re Rechen- und La­de­zei­ten je nach Workloads
  • Gute, feh­ler­to­le­ran­te Da­ten­si­cher­heit dank besseren Notfall-Wie­der­her­stel­lungs­op­tio­nen und Kerberos-Au­then­ti­fi­zie­rungs­dienst
  • Be­schleu­nigt das Einfügen von Daten, indem eine Anpassung von Daten an interne Da­ten­bank­for­ma­te entfällt (Hive liest und ana­ly­siert Daten auch ohne eine manuelle For­mat­än­de­rung)
  • Funk­tio­niert nach dem Open-Source-Prinzip

Welche Nachteile hat Apache Hive?

Zu den Nach­tei­len von Apache Hive zählt in erster Linie die Tatsache, dass es bereits viele Nach­fol­ger­sys­te­me gibt, die ähnliche und bessere Leis­tun­gen bieten. Die Relevanz von Hive in der Ver­wal­tung und Nutzung von Da­ten­ban­ken wird von Ex­per­tin­nen und Experten als immer geringer ein­ge­stuft.

Zu weiteren Nach­tei­len von Hive gehören:

  • Kein Echt­zeit­zu­griff auf Daten
  • Komplexes Be­ar­bei­ten und Updaten von Da­ten­sät­zen durch Hadoop-Framework mit MapReduce
  • Hohe Latenz und somit für heutige Ver­hält­nis­se langsamer als Kon­kur­renz­sys­te­me

Die Hive-Ar­chi­tek­tur im Überblick

Zu den wich­tigs­ten Kom­po­nen­ten der Hive-Ar­chi­tek­tur zählen:

  • Metastore: Der zentrale Hive-Spei­cher­ort, in dem sich als RDBMS-Format alle Daten und In­for­ma­tio­nen wie Ta­bel­len­de­fi­ni­tio­nen, Schema und Ver­zeich­ni­s­ort sowie Par­ti­tio­nen-Metadaten befinden
  • Driver/Treiber: Nimmt HiveQL-Kommandos entgegen und ver­ar­bei­tet diese mit den Kom­po­nen­ten Compiler (Sammeln von In­for­ma­tio­nen), Optimizer (Fest­le­gung der besten Aus­füh­rungs­me­tho­de) und Executor (Umsetzung der Aufgabe)
  • Command Linie + User Interface: Schnitt­stel­le für externe Nut­ze­rin­nen und Nutzer
  • Thrift Server: Er­mög­licht die Kom­mu­ni­ka­ti­on externer Clients mit Hive und erlaubt JDBC- und ODBC-ähnlichen Pro­to­kol­len, per Netzwerk zu in­ter­agie­ren und zu kom­mu­ni­zie­ren
Bild: Die Hive-Architektur als Schaubild
Für die Ver­ar­bei­tung und Abfrage großer Da­ten­men­gen bietet Hive Ihrem Un­ter­neh­men viele Vorteile.

Wie ist Apache Hive ent­stan­den?

Apache Hive sollte auch Nut­ze­rin­nen und Nutzern ohne tiefe SQL-Kennt­nis­se die Arbeit mit Petabyte-Da­ten­men­gen er­leich­tern. Die Ent­wick­lung geht auf die Gründer Joydeep Sen Sharma und Ashish Thusoo zurück, die Hive während ihrer Zeit bei Facebook im Jahr 2007 für Facebooks Hadoop-Framework ent­wi­ckel­ten, das mit mehreren Hundert Petabyte zu den größten der Welt zählt. 2008 übergab Facebook das Hive-Projekt der Open-Source-Community. Die Version 1.0 wurde im Februar 2015 ver­öf­fent­licht.

Zum Hauptmenü