Big Data ist das Schlag­wort für wachsende Da­ten­men­gen. Weltweit ent­wi­ckeln Un­ter­neh­men immer ef­fi­zi­en­te­re Methoden, elek­tro­ni­sche Daten im großen Stil zu erfassen, auf gi­gan­ti­schen Spei­cher­ar­chi­tek­tu­ren abzulegen und sys­te­ma­tisch zu ver­ar­bei­ten. Da­ten­mas­sen im Peta- oder Exabyte-Bereich sind dabei keine Sel­ten­heit. In dieser Grö­ßen­ord­nung sind Re­chen­pro­zes­se von einem einzelnen System nicht zu be­wäl­ti­gen. Big-Data-Analysen setzen daher eine Software-Plattform voraus, die es er­mög­licht, komplexe Computing-Aufgaben auf eine große Anzahl an Rech­ner­kno­ten zu verteilen. Eine pro­mi­nen­te Lösung ist Apache Hadoop, ein Framework, das die Grundlage diverser Dis­tri­bu­tio­nen und Big-Data-Suiten stellt.

Compute Engine
Die ideale IaaS für Ihre Workloads
  • Kos­ten­güns­ti­ge vCPUs und leis­tungs­star­ke de­di­zier­te Cores
  • Höchste Fle­xi­bi­li­tät ohne Min­dest­ver­trags­lauf­zeit
  • Inklusive 24/7 Experten-Support

Was ist Hadoop?

Apache Hadoop ist ein auf Java ba­sie­ren­des Gerüst für diverse Software-Kom­po­nen­ten, das es erlaubt, Re­chen­auf­ga­ben (Jobs) in Teil­pro­zes­se zu zerlegen, diese auf ver­schie­de­ne Knoten eines Com­pu­ter­clus­ters auf­zu­tei­len und somit parallel ablaufen zu lassen. In großen Hadoop-Ar­chi­tek­tu­ren kommen dabei mehrere Tausend Ein­zel­rech­ner zum Einsatz. Dieses Konzept hat den Vorteil, dass jeder Rechner im Cluster nur einen Bruchteil der be­nö­tig­ten Hardware-Res­sour­cen zur Verfügung stellen muss. Die Arbeit mit großen Da­ten­mas­sen setzt somit keine High-End-Re­chen­ma­schi­nen voraus, sondern lässt sich durch eine Vielzahl kos­ten­ef­fi­zi­en­ter Stan­dard­ser­ver be­werk­stel­li­gen.

Das Open-Source-Projekt Hadoop wurde 2006 durch den Ent­wick­ler Doug Cutting ins Leben gerufen und geht auf Googles MapReduce-Al­go­rith­mus zurück. Als der Such­ma­schi­nen­an­bie­ter 2004 In­for­ma­tio­nen über eine Tech­no­lo­gie ver­öf­fent­lich­te, die es er­mög­licht, komplexe Re­chen­pro­zes­se auf Basis großer Da­ten­men­gen mithilfe eines Com­pu­ter­clus­ters zu par­al­le­li­sie­ren, erkannte Cutting das Potenzial von MapReduce und trieb die Ent­wick­lung in einem eigenen Projekt voran. Un­ter­stüt­zung bekam der Ent­wick­ler, der zuvor bei Bran­chen­grö­ßen wie Excite, Apple Inc. und Xerox Parc be­schäf­tigt war und sich bereits mit Apache Lucene einen Namen gemacht hatte, von seinem damaligen Ar­beit­ge­ber Yahoo. 2008 wurde Hadoop zum Top-Level-Projekt der Apache Software Foun­da­ti­on. Ende 2011 erreichte das Framework den Release-Status 1.0.0.

Neben dem of­fi­zi­el­len Release der Apache Software Foun­da­ti­on exis­tie­ren diverse Forks des Software-Frame­works, die Endkunden von ver­schie­de­nen Software-Anbietern als un­ter­neh­mens­ge­rech­te Dis­tri­bu­tio­nen zur Verfügung gestellt werden. Einen Hadoop-Support gibt es bei­spiels­wei­se bei Doug Cuttings aktuellem Ar­beit­ge­ber Cloudera, der mit CDH eine „en­ter­pri­se ready“-Open-Source-Dis­tri­bu­ti­on be­reit­hält. Ähnliche Produkte finden sich bei Hor­ton­works und Teradata. Microsoft hat Hadoop in den Cloud-Dienst Azure in­te­griert und auch IBMs In­foS­phe­re Bi­g­In­sights basiert auf dem Apache-Projekt.

Tech­no­lo­gien für souveräne Da­ten­nut­zung
Da­ten­ma­nage­ment mit der IONOS Cloud Big Data Plattform

Offene Standards für un­ter­schied­li­che Szenarien und Ar­chi­tek­tu­ren: Die flexiblen Big Data Lösungen von IONOS Cloud basieren auf Open Source Software, sind 100-prozentig da­ten­schutz­kon­form und schützen vor Vendor Lock-in.

Die Hadoop-Ar­chi­tek­tur: Aufbau und Grund­kom­po­nen­ten

Spricht man von Hadoop, ist in der Regel ein um­fang­rei­ches Software-Paket gemeint, das auch als Hadoop-Ökosystem be­zeich­net wird. In diesem tummeln sich neben den Kern­kom­po­nen­ten (dem Core Hadoop) diverse Er­wei­te­run­gen, die nicht nur durch seltsame Be­nen­nun­gen wie Pig, Chukwa, Oozie oder ZooKeeper auffallen, sondern das Framework um zahl­rei­che Zu­satz­funk­tio­nen für die Ver­ar­bei­tung großer Da­ten­men­gen erweitern. Vor­an­ge­trie­ben werden diese eng ver­strick­ten und auf­ein­an­der auf­bau­en­den Projekte ebenfalls unter dem Dach der Apache Software Foun­da­ti­on.

Der Core Hadoop bildet die Grundlage des Hadoop-Öko­sys­tems. Be­stand­tei­le des Software-Kerns sind in der Version 1 das Ba­sis­mo­dul Hadoop Common, das Hadoop Dis­tri­bu­ted File System (HDFS) und eine MapReduce-Engine. Ab Version 2.3 wurde letztere durch die Cluster-Ver­wal­tungs­tech­nik YARN (auch MapReduce 2.0 genannt) ersetzt. Diese klammert den MapReduce-Al­go­rith­mus aus dem ei­gent­li­chen Ver­wal­tungs­sys­tem aus, sodass diesem fortan der Status eines Plug-ins zukommt, das auf YARN aufsetzt.

Hadoop Common

Das Modul Hadoop Common stellt allen anderen Kom­po­nen­ten des Frame­works ein Set grund­le­gen­der Funk­tio­nen zur Verfügung. Dazu gehören die Java-Ar­chiv­da­tei­en (JAR), die benötigt werden, um Hadoop zu starten, Bi­blio­the­ken für die Se­ria­li­sie­rung von Daten sowie Schnitt­stel­len für Zugriffe auf das Da­tei­sys­tem der Hadoop-Ar­chi­tek­tur und die Remote-Procedure-Call-Kom­mu­ni­ka­ti­on (RPC) innerhalb des Com­pu­ter­clus­ters. Zudem finden sich im Hadoop-Common-Modul der Quellcode, die Do­ku­men­ta­ti­on des Projekts sowie In­for­ma­tio­nen zu Un­ter­pro­jek­ten.

Hadoop Dis­tri­bu­ted File System (HDFS)

Bei HDFS handelt es sich um ein hoch­ver­füg­ba­res Da­tei­sys­tem, das der Spei­che­rung großer Da­ten­men­gen in einem Com­pu­ter­clus­ter dient und somit innerhalb des Frame­works für die Da­ten­hal­tung zuständig ist. Dazu werden Dateien in Da­ten­blö­cke zerlegt und ohne Ord­nungs­sche­ma redundant auf ver­schie­de­ne Knoten verteilt. Den Ent­wick­lern zufolge ist HDFS in der Lage, eine Anzahl an Dateien im drei­stel­li­gen Mil­lio­nen­be­reich zu verwalten. Sowohl die Länge der Da­tei­blö­cke als auch der Grad der Redundanz lassen sich in­di­vi­du­ell kon­fi­gu­rie­ren.

Das Hadoop-Cluster funk­tio­niert grund­sätz­lich nach dem Master-Slave-Prinzip. Die Ar­chi­tek­tur des Frame­works besteht somit aus einem Master-Knoten, dem eine Vielzahl von Knoten als Slaves un­ter­ge­ord­net sind. Dieses Prinzip spiegelt sich auch im Aufbau des HDFS wieder, das auf einem NameNode und diversen un­ter­ge­ord­ne­ten DataNodes basiert. Der NameNode verwaltet sämtliche Metadaten zum Da­tei­sys­tem, zu Ver­zeich­nis­struk­tu­ren und Dateien. Die ei­gent­li­che Da­ten­ab­la­ge erfolgt auf den un­ter­ge­ord­ne­ten DataNotes. Um Da­ten­ver­lust zu mi­ni­mie­ren, werden Dateien dabei in einzelne Blöcke zerlegt und mehrfach auf ver­schie­de­nen Knoten ge­spei­chert. Die Stan­dard­kon­fi­gu­ra­ti­on sieht vor, dass jeder Da­ten­block in drei­fa­cher Aus­füh­rung vorliegt.

Jeder DataNode sendet dem NameNode in re­gel­mä­ßi­gen Abständen ein Le­bens­zei­chen, den so­ge­nann­ten Heartbeat. Bleibt dieses Signal aus, erklärt der NameNote den je­wei­li­gen Slave für „tot“ und sorgt mithilfe der Da­ten­ko­pien auf anderen Knoten dafür, dass trotz des Ausfalls genügend Kopien der be­tref­fen­den Da­ten­blö­cke im Cluster verfügbar sind. Dem NameNode kommt somit eine zentrale Rolle innerhalb des Frame­works zu. Damit dieser nicht zum „Single Point of Failure“ wird, ist es üblich, diesem Master-Knoten einen Se­con­da­ry­Na­meNode zur Seite zu stellen, der sämtliche Ver­än­de­run­gen bezüglich der Metadaten auf­zeich­net und somit eine Wie­der­her­stel­lung der zentralen Kon­troll­in­stanz er­mög­licht.

Im Übergang von Hadoop 1 zu Hadoop 2 wurde HDFS um weitere Si­che­rungs­sys­te­me erweitert: NameNode HA (High Avai­la­bi­li­ty) ergänzt das System um eine au­to­ma­ti­sche Aus­fall­si­che­rung, bei der im Fall eines NameNode-Ausfalls au­to­ma­tisch eine Er­satz­kom­po­nen­te gestartet wird. Eine Snapshot-Funktion er­mög­licht zudem, das System in einen früheren Status zu­rück­zu­ver­set­zen. Darüber hinaus lassen sich durch die Er­wei­te­rung Fe­de­ra­ti­on mehrere NameNodes innerhalb eines Clusters führen.

MapReduce-Engine

Ein weiterer Grund­be­stand­teil des Core Hadoop ist der von Google ent­wi­ckel­te MapReduce-Al­go­rith­mus, der in der Hadoop-Version 1 noch als ei­gen­stän­di­ge Engine in das Framework im­ple­men­tiert ist. Zentrale Aufgabe dieser Engine ist das Res­sour­cen­ma­nage­ment sowie die Steuerung und das Mo­ni­to­ring von Re­chen­pro­zes­sen (Job-Sche­du­ling/Mo­ni­to­ring). Die Da­ten­ver­ar­bei­tung beruht dabei im We­sent­li­chen auf den Phasen „Map“ und „Reduce“, die es er­mög­li­chen, dass Daten direkt am Ablageort ver­ar­bei­tet werden (Data Locality). Dies be­schleu­nigt die Re­chen­zeit und ver­rin­gert den Netz­durch­satz. Im Rahmen der Map-Phase werden komplexe Re­chen­pro­zes­se (Jobs) in Ein­zel­tei­le zerlegt und von einem so­ge­nann­ten Job­Tra­cker auf dem Master-Knoten an eine Vielzahl von Slave-Systemen im Cluster verteilt. Dort sorgen so­ge­nann­te Task­Tra­cker dafür, dass die Teil­pro­zes­se par­al­le­li­siert ab­ge­ar­bei­tet werden. In der dar­auf­fol­gen­den Reduce-Phase werden die Zwi­schen­er­geb­nis­se von der MapReduce-Engine ein­ge­sam­melt und zu einem Ge­samt­ergeb­nis zu­sam­men­ge­führt.

Während der Master-Knoten in der Regel die Kom­po­nen­ten NameNode und Job­Tra­cker be­her­bergt, arbeiten auf jedem un­ter­ge­ord­ne­ten Slave jeweils ein DataNode und ein Task­Tra­cker. Die folgende Grafik zeigt den Grund­auf­bau einer Hadoop-Ar­chi­tek­tur gemäß Version 1, auf­ge­teilt in MapReduce-Layer und HDFS-Layer.

Mit dem Release der Hadoop-Version 2.3 wurde die MapReduce-Engine grund­le­gend über­ar­bei­tet. Das Ergebnis ist die Cluster-Ver­wal­tungs­tech­nik YARN/MapReduce 2.0, die das Res­sour­cen­ma­nage­ment und die Auf­ga­ben­ver­wal­tung (Job Sche­du­ling/Mo­ni­to­ring) von MapReduce ent­kop­pelt und das Framework so für neue Ver­ar­bei­tungs­mo­del­le und eine breite Palette von Big-Data-An­wen­dun­gen öffnet.

YARN/MapReduce 2.0

Mit der Ein­füh­rung des Moduls YARN („Yet Another Resource Nego­tia­tor“) ab Version 2.3 wurde die Ar­chi­tek­tur von Hadoop grund­le­gend verändert. Man spricht daher auch von einem Übergang von Hadoop 1 zu Hadoop 2. Während Hadoop 1 Nutzern lediglich MapReduce als Anwendung be­reit­stellt, er­mög­licht es die Ent­kopp­lung des Res­sour­cen­ma­nage­ments und der Auf­ga­ben­ver­wal­tung vom Da­ten­ver­ar­bei­tungs­mo­dell, eine Vielzahl von Big-Data-An­wen­dun­gen in das Framework zu in­te­grie­ren. Folglich ist MapReduce unter Hadoop 2 nur noch eine von vielen möglichen An­wen­dun­gen für den Da­ten­zu­griff, die sich im Framework ausführen lassen. Dieses ist somit nicht länger als reine MapReduce-Ab­lauf­um­ge­bung zu be­schrei­ben. Statt­des­sen übernimmt YARN die Rolle eines ver­teil­ten Be­triebs­sys­tems zur Res­sour­cen­ver­wal­tung für Big-Data-Ap­pli­ka­tio­nen.

Die grund­le­gen­den Ver­än­de­run­gen der Hadoop-Ar­chi­tek­tur betreffen vor allem die beiden Tracker der MapReduce-Engine, die in Hadoop 2 nicht mehr als ei­gen­stän­di­ge Kom­po­nen­ten exis­tie­ren. Statt­des­sen setzt das Modul YARN auf drei neue Entitäten: den Re­sour­ce­Ma­na­ger, den Node­Ma­na­ger und den Ap­pli­ca­ti­on­Mas­ter.

  • Re­sour­ce­Ma­na­ger: Der globale Re­sour­ce­Ma­na­ger fungiert als höchste Autorität in der Hadoop-Ar­chi­tek­tur (Master), dem diverse Node­Ma­na­ger als Slave un­ter­ge­ord­net sind. Diesem kommt die Aufgabe zu, das Computer-Cluster zu steuern, die Ver­tei­lung der Res­sour­cen auf die un­ter­ge­ord­ne­ten Node­Ma­na­ger zu or­ches­trie­ren und An­wen­dun­gen zu verteilen. Der Re­sour­ce­Ma­na­ger weiß, wo sich die einzelnen Slave-Systeme im Cluster befinden und welche Res­sour­cen diese zur Verfügung stellen können. Eine wichtige Kom­po­nen­te des Re­sour­ce­Ma­na­gers ist der Re­sour­ce­Sche­du­ler, der ent­schei­det, wie die ver­füg­ba­ren Res­sour­cen im Cluster verteilt werden.
  • Node­Ma­na­ger: Auf jedem Knoten des Computer-Clusters läuft ein so­ge­nann­ter Node­Ma­na­ger. Dieser nimmt die Position des Slaves in der In­fra­struk­tur von Hadoop 2 ein und fungiert somit als Be­fehls­emp­fän­ger des Re­sour­ce­Ma­na­gers. Wird ein Node­Ma­na­ger auf einem Knoten im Cluster gestartet, meldet dieser sich beim Re­sour­ce­Ma­na­ger an und sendet ein pe­ri­odi­sches Le­bens­zei­chen, den Heartbeat. Jeder Node­Ma­na­ger ist ver­ant­wort­lich für die Res­sour­cen des eigenen Knotens und stellt dem Cluster einen Teil davon zur Verfügung. Wie diese Res­sour­cen im Cluster verwendet werden, wird durch den Re­sour­ce­Sche­du­ler des Re­sour­ce­Ma­na­gers gesteuert.
  • Ap­pli­ca­ti­on­Mas­ter: Jeder Knoten innerhalb des YARN-Systems be­inhal­tet einen Ap­pli­ca­ti­on­Mas­ter, der Res­sour­cen vom Re­sour­ce­Ma­na­ger und vom Node­Ma­na­ger anfragt und in Form von Con­tai­nern zugeteilt bekommt. Auf diesen Con­tai­nern werden die Big-Data-An­wen­dun­gen vom Ap­pli­ca­ti­on­Mas­ter aus­ge­führt und überwacht.

Hier eine sche­ma­ti­sche Dar­stel­lung der Hadoop-2-Ar­chi­tek­tur:

Soll eine Big-Data-Anwendung auf Hadoop 2 aus­ge­führt werden, sind grund­sätz­lich drei Akteure in­vol­viert:

  • ein Client,
  • der Re­sour­ce­Ma­na­ger und
  • ein oder mehrere Node­Ma­na­ger.

Im ersten Schritt erteilt der Client dem Re­sour­ce­Ma­na­ger den Auftrag, dass eine Big-Data-Anwendung im Cluster gestartet werden soll. Dieser alloziert in­fol­ge­des­sen einen Container. Mit anderen Worten: Der Re­sour­ce­Ma­na­ger re­ser­viert Res­sour­cen des Clusters für die Anwendung und kon­tak­tiert einen Node­Ma­na­ger. Der an­ge­spro­che­ne Node­Ma­na­ger startet den Container und führt in diesem einen Ap­pli­ca­ti­on­Mas­ter aus, der wiederum dafür zuständig ist, die Anwendung aus­zu­füh­ren und zu über­wa­chen.

Das Hadoop-Ökosystem: Optionale Er­wei­te­rungs­kom­po­nen­ten

Neben den Kern­kom­po­nen­ten umfasst das Hadoop-Ökosystem diverse Er­wei­te­run­gen, die in separaten Software-Projekten vor­an­ge­trie­ben werden und einen we­sent­li­chen Beitrag zu Funk­tio­na­li­tät und Fle­xi­bi­li­tät des Software-Frame­works leisten. Aufgrund des offenen Quell­codes und zahl­rei­cher Schnitt­stel­len lassen sich diese op­tio­na­len Zu­satz­kom­po­nen­ten beliebig mit den Kern­funk­tio­na­li­tä­ten kom­bi­nie­ren. Folgende Liste zeigt eine Auswahl der be­lieb­tes­ten Projekte im Hadoop-Ökosystem:

  • Ambari: Das Apache-Projekt Ambari wurde vom Hadoop-Dis­tri­bu­tor Hor­ton­works initiiert und ergänzt das Ökosystem um ein In­stal­la­ti­ons- und Ma­nage­m­ent­werk­zeug, das die Pro­vi­sio­nie­rung (Be­reit­stel­lung von IT-Res­sour­cen) sowie die Ver­wal­tung und das Mo­ni­to­ring von Hadoop-Kom­po­nen­ten erheblich er­leich­tert. Dazu bietet Apache Ambari einen Step-by-Step-Wizard für die In­stal­la­ti­on von Hadoop-Services auf beliebig vielen Rechnern im Cluster sowie eine Ma­nage­ment­funk­ti­on, mit der sich Services zentral starten, stoppen oder kon­fi­gu­rie­ren lassen. Eine grafische Be­nut­zer­ober­flä­che in­for­miert Anwender über den Status des Systems. Darüber hinaus er­mög­licht es Ambari mit dem Ambari Metrics System und dem Ambari Alert Framework, Metriken auf­zu­zeich­nen und Alarm­stu­fen zu kon­fi­gu­rie­ren.
  • Avro: Bei Apache Avro handelt es sich um ein System zur Se­ria­li­sie­rung von Daten. Avro greift auf JSON zurück, um Da­ten­ty­pen und Pro­to­kol­le zu de­fi­nie­ren. Die ei­gent­li­chen Daten hingegen werden in einem kompakten Bi­när­for­mat se­ria­li­siert. Dieses dient als Da­ten­über­tra­gungs­for­mat für die Kom­mu­ni­ka­ti­on zwischen den ver­schie­de­nen Hadoop-Knoten sowie zwischen Hadoop-Services und Cli­ent­pro­gram­men.
  • Cassandra: Apache Cassandra ist ein in Java ge­schrie­be­nes, ver­teil­tes Da­ten­bank­ver­wal­tungs­sys­tem für große struk­tu­rier­te Da­ten­men­gen, das einen nicht­re­la­tio­na­len Ansatz folgt. Man spricht in diesem Zu­sam­men­hang auch von NoSQL-Da­ten­ban­ken. Ziel des ur­sprüng­lich von Facebook ent­wi­ckel­ten Open-Source-Systems ist eine hohe Ska­lier­bar­keit und Aus­fall­si­cher­heit in großen, ver­teil­ten Ar­chi­tek­tu­ren. Die Da­ten­ab­la­ge erfolgt auf Basis von Schlüssel-Wert-Re­la­tio­nen.
  • HBase: Auch bei HBase handelt es sich um eine quell­of­fe­ne NoSQL-Datenbank, die Schreib- und Le­se­zu­grif­fe in Echtzeit auf große Da­ten­men­gen innerhalb eines Com­pu­ter­clus­ters er­mög­licht. HBase fußt auf dem von Google ent­wi­ckel­ten Hoch­leis­tungs­da­ten­bank­sys­tem BigTable. Im Vergleich zu anderen NoSQL-Da­ten­ban­ken zeichnet sich HBase durch eine hohe Da­ten­kon­sis­tenz aus.
  • Chukwa: Bei Chukwa handelt es sich um ein Da­ten­er­fas­sungs- und Ana­ly­se­sys­tem, das auf HDFS und MapReduce des Hadoop-Big-Data-Frame­works aufsetzt und ein Echtzeit-Mo­ni­to­ring sowie Da­ten­ana­ly­sen in großen, ver­teil­ten Systemen erlaubt. Dazu setzt Chukwa auf Agents, die auf jedem zu über­wa­chen­den Knoten laufen und Log­da­tei­en der dort aus­ge­führ­ten An­wen­dun­gen sammeln. Diese Dateien werden an so­ge­nann­te Coll­ec­tors über­mit­telt und dort im HDFS ge­spei­chert.
  • Flume: Auch Apache Flume ist ein Service, der für das Sammeln, Agg­re­gie­ren und Bewegen von Log-Daten kon­zi­piert wurde. Um Daten zu Speicher- und Ana­ly­se­zwe­cken von ver­schie­de­nen Quellen an HDFS zu streamen, setzt Flume auf Trans­port­for­ma­te wie Apache Thrift oder Avro.
  • Pig: Bei Apache Pig handelt es sich um eine Plattform zur Analyse großer Da­ten­men­gen, die Hadoop-Anwendern die High-Level-Pro­gram­mier­spra­che Pig Latin zur Verfügung stellt. Diese erlaubt es, den Da­ten­fluss von MapReduce-Jobs auf einer abs­trak­ten Ebene zu be­schrei­ben. MapReduce-Abfragen werden somit nicht mehr in Java erstellt, sondern in der deutlich ef­fi­zi­en­te­ren Sprache Pig Latin pro­gram­miert, was die Ver­wal­tung von MapReduce-Jobs deutlich ver­ein­facht. So lässt sich bei­spiels­wei­se die parallele Aus­füh­rung komplexer Analysen besser nach­voll­zie­hen. Pig Latin wurde ur­sprüng­lich von Yahoo ent­wi­ckelt. Der Name geht auf den Ent­wick­lungs­an­satz der Software zurück: Wie ein „Al­les­fres­ser“ ist Pig darauf ausgelegt, alle Arten von Daten (struk­tu­rier­te, un­struk­tu­rier­te oder re­la­tio­na­le) zu ver­ar­bei­ten.
  • Hive: Mit Apache Hive lässt sich Hadoop um eine zentrale, für Ana­ly­se­zwe­cke op­ti­mier­te Datenbank, ein so­ge­nann­tes Data-Warehouse, erweitern. Die Software wurde von Facebook ent­wi­ckelt und basiert auf dem MapReduce-Framework. Mit HiveQL verfügt Hive über eine SQL-ähnliche Syntax, die es er­mög­licht, in HDFS ge­spei­cher­te Daten ab­zu­fra­gen, zu­sam­men­zu­fas­sen oder zu ana­ly­sie­ren. Dazu übersetzt Hive SQL-artige Abfragen au­to­ma­tisch in MapReduce-Jobs.
  • HCatalog: Eine Kern­kom­po­nen­te von Apache Hive ist HCatalog, ein Metadaten- und Tabellen-Ma­nage­ment­sys­tem, das es erlaubt, Daten un­ab­hän­gig vom Format oder der Struktur zu speichern und zu ver­ar­bei­ten. Dazu be­schreibt HCatalog die Struktur der Daten und er­leich­tert so die Ver­wen­dung durch Hive oder Pig.
  • Mahout: Apache Mahout erweitert das Hadoop-Ökosystem um einfach er­wei­ter­ba­re Java-Bi­blio­the­ken für Data-Mining-An­wen­dun­gen und ma­the­ma­ti­sche An­wen­dun­gen für ma­schi­nel­les Lernen. Al­go­rith­men, die sich mit Mahout in Hadoop im­ple­men­tie­ren lassen, er­mög­li­chen Ope­ra­tio­nen wie Klas­si­fi­zie­rung, Clus­te­ring und kol­la­bo­ra­ti­ves Filtern. In der Praxis kommt Mahout bei­spiels­wei­se bei der Ent­wick­lung von Emp­feh­lungs­diens­ten zum Einsatz („Kunden, die diesen Artikel gekauft haben, kauften auch …“).
  • Oozie: Die optionale Workflow-Kom­po­nen­te Oozie er­mög­licht es, Pro­zess­ket­ten auf­zu­bau­en, diese zu au­to­ma­ti­sie­ren und zeit­ge­steu­ert aus­zu­füh­ren. Somit kom­pen­siert Oozie das Defizit der MapReduce-Engine des Hadoop 1, mit der sich in der Grund­kon­fi­gu­ra­ti­on keine Ab­hän­gig­kei­ten zwischen MapReduce-Job erzeugen lassen.
  • Sqoop: Bei Apache Sqoop handelt es sich um eine Software-Kom­po­nen­te, die den Import und Export großer Da­ten­men­gen zwischen dem Hadoop-Big-Data-Framework und struk­tu­rier­ten Da­ten­spei­chern er­leich­tert. Daten werden in Un­ter­neh­men heut­zu­ta­ge in der Regel in re­la­tio­na­len Da­ten­ban­ken ge­spei­chert. Sqoop er­mög­licht einen ef­fi­zi­en­ten Austausch zwischen diesen Spei­cher­sys­te­men und dem Com­pu­ter­clus­ter.
  • ZooKeeper: Apache ZooKeeper schließ­lich bietet Services, um Prozesse im Cluster zu ko­or­di­nie­ren, indem es Funk­tio­nen zur Spei­che­rung, Ver­tei­lung und Ak­tua­li­sie­rung von Kon­fi­gu­ra­ti­ons­in­for­ma­tio­nen be­reit­stellt.

Hadoop im Un­ter­neh­men

Da sich Hadoop-Cluster zur Ver­ar­bei­tung großer Da­ten­men­gen mithilfe von Stan­dard­rech­nern aufbauen lassen, erfreut sich das Big-Data-Framework in zahl­rei­chen Un­ter­neh­men großer Be­liebt­heit. Zu namhaften Hadoop-Nutzern gehören Adobe, AOL, eBay, Facebook, Google, IBM, LinkedIn, Twitter und Yahoo. Neben der Mög­lich­keit, Daten un­kom­pli­ziert auf ver­teil­ten Ar­chi­tek­tu­ren speichern und parallel ver­ar­bei­ten zu können, sprechen vor allem Sta­bi­li­tät, Er­wei­ter­bar­keit und der Funk­ti­ons­um­fang für die Open-Source-Software.

Zum Hauptmenü