Das Hadoop Frame­work ermög­licht die ver­teilte Ver­wal­tung und Berech­nung gro­ßer Daten­men­gen mit­hilfe von Clus­tern, indem die aus­zu­füh­ren­den Trans­for­ma­tio­nen auf die Ser­ver ver­teilt und dort par­al­lel aus­ge­führt wer­den. Hadoop und das dazu­ge­hö­rige Öko­sys­tem sind durch die Viel­zahl an ver­knüpf­ten Tools sehr kom­plex und erfor­dern des­halb die Ent­wick­lung und War­tung durch Spe­zia­lis­ten. Aus die­ser Markt­lü­cke sind einige Dis­tri­bu­to­ren wie z.B. Hor­ton­works oder Clou­dera ent­stan­den, um z.B. die Instal­la­tion zu ver­ein­fa­chen und gra­fi­sche Ober­flä­chen zum Kon­fi­gu­rie­ren, Moni­to­ren und War­ten des Clus­ters anzu­bie­ten. Da die meis­ten Tools aus dem Hadoop Öko­sys­tem Open-Source-Soft­ware sind, wird kein all­ge­mei­ner Her­stel­ler­sup­port ange­bo­ten. Aller­dings bie­ten die Dis­tri­bu­to­ren einen Sup­port für ihren aus­ge­wähl­ten Tool­stack an. Zwei weit ver­brei­tete Hadoop-Dis­tri­bu­tio­nen sind “Cloudera’s Dis­tri­bu­tion Inclu­ding Apa­che Hadoop” (CDH) und die “Hor­ton­works Data Plat­form” (HDP).
Die­ser Bei­trag beschäf­tigt sich mit den Unter­schie­den und Gemein­sam­kei­ten die­ser bei­den Distributionen.

Sowohl CDH als auch HDP stel­len kos­ten­freie Ver­sio­nen ihrer Hadoop-Dis­tri­bu­tio­nen zur Ver­fü­gung. Aller­dings ist der Sup­port bei­der Dis­tri­bu­tio­nen kos­ten­pflich­tig. CDH bie­tet außer­dem eine kos­ten­pflich­tige Enter­prise Ver­sion an, wel­che die Open-Source-Vari­ante um zusätz­li­che nütz­li­che Tools erwei­tert sowie den Sup­port beinhal­tet. Zu den Enter­prise Fea­tures gehö­ren Multi-Clus­ter Manage­ment, Rol­ling Upgrades, Audi­ting, Meta­da­ten­ma­nage­ment, erwei­ter­bare Inte­gra­tion von Part­ner Ser­vices sowie Backup und Dis­as­ter Recovery.

Beide Dis­tri­bu­tio­nen bie­ten dem Anwen­der Sicher­heit sowie Sta­bi­li­tät und unter­stüt­zen ähn­li­che Hadoop Kern­werk­zeuge wie zum Bei­spiel HDFS, Yarn, Map­Re­duce, Spark und Hive. Aller­dings unter­schei­den sie sich in der Aus­wahl der Apa­che Pro­jekte, wel­che sie unter­stüt­zen. So bie­tet HDP bei­spiel­weise die Mög­lich­keit, mit den Tools Zep­pe­lin und Phoe­nix zu arbei­ten, CDH hin­ge­gen nutzt die Hadoop-User-Expe­ri­ence (HUE) als gra­fi­sches User­in­ter­faces für Abfra­gen. Apa­che Zep­pe­lin ist ein Mehr­zweck-Note­book, das die inter­ak­tive Daten­ana­lyse ermög­licht. Es setzt ver­schie­dene Inter­pre­ter ein, wel­che mit Daten­quel­len und Sys­te­men inter­agie­ren. Phoe­nix ist ein SQL-Layer, der es ermög­licht, HBase Tabel­len mit SQL-Queries abzu­fra­gen und die Funk­tio­na­li­tät von HBase erwei­tert. Es wan­delt SQL-State­ments in HBase-Abfra­gen um und gibt sie in Form von JDBC-Result­sets zurück.

Auch unter­schei­den sich die von den Dis­tri­bu­tio­nen unter­stütz­ten Tool-Ver­sio­nen. Wäh­rend HDP mit den aktu­el­le­ren Ver­sio­nen von Hadoop, Hive, Spark, Oozie und Solr arbei­tet, bie­tet CDH mehr Aktua­li­tät bezüg­lich der Tools HBase sowie Kafka. Beide Dis­tri­bu­tio­nen bie­ten also Teile, die in der jeweils ande­ren nicht ent­hal­ten sind. Hierin liegt eine wich­tige Wett­be­werbs­dif­fe­ren­zie­rung bei­der Dis­tri­bu­tio­nen. In der unten­ste­hen­den Tabelle sind die von CDH und HDP unter­stütz­ten Tool-Ver­sio­nen im Ver­gleich mit ande­ren Dis­tri­bu­tio­nen abgebildet.

Ama­zon EMR 5.11Clou­dera CDH 5.13GoogleHor­ton­works HDP 2.6.2MapR MEP 3.0.1
Apa­che HDFS2.7.32.6.02.8.12.7.3API
Apa­che Mapreduce2.7.32.6.02.8.12.7.32.7.0+
Apa­che YARN2.7.32.6.02.8.12.7.32.7.0+
Apa­che Hive2.3.21.22.1.12.1.02.1.1
Apa­che Pig0.170.12.00.16.00.16.00.16
Apa­che Spark2.2.12.22.2.02.1.12.1.0
Apa­che Avro-1.7.61.8.21.7.51.7.4
Apa­che Flume-1.7.01.7.01.5.21.7
Apa­che HBase1.3.1+S31.21.3.11.1.21.1.8
Apa­che Kafka-0.110.11.0.10.10.1.20.9 (Streams)
Apa­che Oozie4.3.04.1.04.3.04.2.04.3.0
Apa­che Parquet-1.511.9.01.8.11.8.1
Apa­che Sqoop1.4.61.4.81.99.41.4.61.4.6
Apa­che Zookeeper3.4.103.4.53.4.63.4.63.4.5
Hue4.0.14.003.11.02.6.13.12
Tabelle 1 Hadoop Apa­che Pro­ject Com­mer­cial Suport Tra­cker Decem­ber 2017 (Quelle)

CDH stellt mit dem Clou­dera Mana­ger und der Hadoop-User-Expe­ri­ence (HUE) eine sehr gute gra­fi­sche Benut­zer­ober­flä­che bereit, wohin­ge­gen die gra­fi­sche Ober­flä­che Ambari, wel­che von HDP ange­bo­ten wird, eine etwas weni­ger intui­tive User-Expe­ri­ence bie­tet. Der Clou­dera Mana­ger unter­stützt High-Avai­la­bi­lity-Fea­tures und ermög­licht das Manage­ment von Mul­ti­clus­tern. Bei­des ist in Ambari bis­her nicht mög­lich. Zudem ist es im Clou­dera Mana­ger ein­fa­cher, benut­zer­de­fi­nierte Dia­gramme zu erstel­len und eigene Metri­ken für das Moni­to­ring zu erstel­len. Um diese Metri­ken zu erstel­len, hat der Clou­dera Mana­ger eine SQL-Ähn­li­che Abfra­ge­spra­che für die gespei­cher­ten Kenn­zah­len. Wei­tere Vor­teile vom Clou­dera Mana­ger sind die ein­fa­che Unter­schei­dung und Kon­fi­gu­ra­tion von dyna­mic und sta­tic Resource Pools, eine Such­funk­tion für das gesamte User­in­ter­face, sowie eine strik­tere Tren­nung zwi­schen User- und Admin­be­rei­chen.  Ambari hat keine Such­funk­tion und die sta­ti­schen Res­sour­cen kön­nen nur über Umwege gefun­den wer­den. Ein Vor­teil von Ambari hin­ge­gen ist die Con­fi­gu­ra­tion History, mit wel­cher ver­schie­dene Ver­sio­nen ver­gli­chen und die aktu­elle Ver­sion gege­be­nen­falls zurück­ge­setzt wer­den kann. Diese Funk­tio­na­li­tät wird im Clou­dera Mana­ger ledig­lich in der Enter­prise Ver­sion ange­bo­ten. All­ge­mein kann man sagen, dass der Clou­dera Mana­ger zwar detail­lier­ter und bes­ser struk­tu­riert ist als Ambari, aber dass ein Groß­teil der Funk­tio­na­li­tä­ten sowohl vom Clou­dera Mana­ger als auch von Ambari unter­stützt wer­den.
In bei­den Dis­tri­bu­tio­nen besteht die Mög­lich­keit, Clus­ter nur mit benö­tig­ten Kom­po­nen­ten zusam­men­zu­bauen. In HDP wer­den dafür aller­dings zusätz­li­che Instal­la­tio­nen und Kon­fi­gu­ra­tio­nen benö­tigt. In vie­len Fäl­len bestehen bei Hor­ton­works grö­ßere Abhän­gig­kei­ten zwi­schen den ein­zel­nen Kom­po­nen­ten, da Hor­ton­works mit Ambari Stacks arbei­tet, wel­ches die Kom­po­nen­ten aus einem Package Repo­si­tory instal­liert. Bei Clou­dera hin­ge­gen wer­den die ein­zel­nen Kom­po­nen­ten durch Par­cels stär­ker gekap­selt. Par­cels sind ein alter­na­ti­ves Binär­dis­tri­bu­ti­ons­for­mat. Sie kön­nen neben­ein­an­der instal­liert und von belie­bi­gen Orten aus­ge­führt wer­den. Dabei ist jedes Par­cel ein selbst­stän­di­ger Con­tai­ner. Sie sind daher eigen­stän­di­ger und leich­ter aus­tausch­bar.
HDP bie­tet stan­dard­mä­ßig Backup und Dis­as­ter Reco­very an, wäh­rend die­ses Fea­ture in Clou­dera nur in der Enter­prise Ver­sion ver­füg­bar ist. Der Clou­dera Navi­ga­tor der Enter­prise Ver­sion unter­stützt zusätz­lich Funk­tio­nen bezüg­lich Meta­da­ten sowie Audi­ting. Das Audi­ting wird bei HDP von Apa­che Ran­ger und das Meta­da­ten­ma­nage­ment von Apa­che Atlas über­nom­men, was jedoch nicht so aus­ge­reift ist wie der Clou­dera Navi­ga­tor.
Um SQL-Abfra­gen zu beschleu­ni­gen, unter­stützt CDH das Tool Impala als Abfra­ge­werk­zeug für Daten aus dem Hadoop-Datei­sys­tem.  Impala ist eine eigen­stän­dige SQL-Engine, die nicht auf Map­Re­duce basiert.  HDP hin­ge­gen arbei­tet mit der Engine TEZ und neu­er­dings auch LLAP, was deut­lich per­for­man­ter ist als eine Map­Re­duce Aus­füh­rung und im Falle von LLAP sogar einen ver­teil­ten Cache bie­tet, in dem In-Memory-Abfra­gen aus­ge­führt wer­den kön­nen. Aller­dings reicht TEZ (ohne LLAP) in den meis­ten Fäl­len nicht an die Per­for­mance von Impala heran. Das Sicher­heits­ma­nage­ment der Dis­tri­bu­tion wird in CDH über Apa­che Sen­try geführt, wäh­rend HDP mit dem Tool Apa­che Ran­ger arbei­tet. Beide Tools unter­stüt­zen detail­lierte Zugangs­kon­trol­len auf Hadoop Clus­tern, wobei Ran­ger Plug­ins für mehr Tools als Sen­try bie­tet und bes­ser erwei­ter­bar ist. Außer­dem gibt es die Mög­lich­keit, dyna­mi­sche Poli­cies auf Basis der Meta­da­ten ein­zu­rich­ten. Bei­spiels­weise wäre es umsetz­bar, dass alle User der Gruppe Ana­lysts von Spal­ten, wel­che mit dem Tag „Cre­dit Card“ ver­se­hen sind, nur die letz­ten vier Zif­fern sehen.  Außer­dem ver­öf­fent­lich Hor­ton­works im Ver­gleich zu Clou­dera regel­mä­ßi­ger neue Ver­sio­nen sei­ner Hadoop Distribution.

Kri­te­riumCloudera’s Dis­tri­bu­tion Inclu­ding Apa­che Hadoop (CDH)Hor­ton­works Data Plat­form (HDP)
Funk­tio­na­li­tä­ten in Open-Source VersionEinige nütz­li­che Funk­tio­na­li­tä­ten sind ohne Extra­li­zenz nicht verfügbarAlle Funk­tio­na­li­tä­ten sind von vorn­her­ein ohne Extra­li­zenz vorhanden
Hadoop Kern­werk­zeugeHDFS, YARN, Map­Re­duce, Spark, Hive, ImpalaHDFS, YARN, Map­Re­duce, Spark, Hive
Sup­portKos­ten­pflich­tigKos­ten­pflich­tig
Gra­fi­sche BenutzeroberflächeClou­dera Mana­ger und HUE bie­ten sehr gute und intui­tive User-ExperienceAmbari bie­tet weni­ger intui­tive User-Experience
Abhän­gig­keit zwi­schen KomponentenStär­kere Kap­se­lung ein­zel­ner Kom­po­nen­ten durch ParcelsStär­kere Abhän­gig­keit von Kom­po­nen­ten durch Ambari Stacks
Meta­da­ten­ma­nage­mentClou­dera NavigatorApa­che Atlas (weni­ger aus­ge­reift als Clou­dera Navigator)
Audi­tingClou­dera NavigatorApa­che Ranger
SQL-Abfra­genImpala (eigen­stän­dige SQL-Engine, die nicht auf Map­Re­duce basiert)Engine TEZ und LLAP (opti­miert Map­Re­duce, schlech­tere Per­for­mance als Impala)
Sicher­heits­ma­nage­mentApa­che SentryApa­che Ran­ger (uner­stützt mehr Plug­ins und ist bes­ser erweiterbar)
Ver­öf­fent­li­chen neuer VersionenSel­te­ner, dafür grö­ßere ÄnderungenRegel­mä­ßig
Tabelle 2 Ver­gleich zwi­schen CDH und HDP

Zusam­men­fas­send lässt sich sagen, dass es nicht mög­lich ist, ein Pau­schal­ur­teil dar­über zu fäl­len, wel­che der bei­den vor­ge­stell­ten Dis­tri­bu­tio­nen die bes­sere Wahl für ein Unter­neh­men ist. Beide Dis­tri­bu­tio­nen bie­ten unter­schied­li­che Stär­ken und Schwä­chen. Sie kön­nen beide sehr gut abge­si­chert wer­den, wobei sich der Kon­fi­gu­ra­ti­ons­auf­wand hier­bei unter­schei­det. HDP ist in den meis­ten Fäl­len güns­ti­ger als die Clou­dera Dis­tri­bu­tion bie­tet von vorn­her­ein alle Funk­tio­na­li­tä­ten ohne Extra­li­zenz an. Bei den Kos­ten­er­spar­nis­sen muss man jedoch berück­sich­ti­gen, dass die Dis­tri­bu­tion im All­ge­mei­nen häu­fig mehr Kon­fi­gu­ra­ti­ons­auf­wand erfor­dert als die CDH. CDH hin­ge­gen kann unter ande­rem mit SQL-Engine Impala punk­ten, wel­che SQL-Abfra­gen deut­lich beschleu­nigt. Man sollte sich des­halb vor der Ent­schei­dung für eine der bei­den Dis­tri­bu­tio­nen fra­gen, wel­che der Dis­tri­bu­tio­nen für die Anfor­de­run­gen des Unter­neh­mens am bes­ten geeig­net ist und sich gut in die bestehende Umge­bung inte­grie­ren lässt. Abschlie­ßend bleibt zu über­le­gen, ob die Dis­tri­bu­tion alle Hadoop Pakete und den benö­tig­ten Sup­port bereit­stellt. Bezieht man all diese Über­le­gun­gen in seine Ent­schei­dung mit ein, so sollte man mit der gewähl­ten Dis­tri­bu­tion ein zufrie­den­stel­len­des Ergeb­nis errei­chen können.