Überblick Azure HDInsight

Die Schlagworte Big Data und Hadoop sind seit einiger Zeit in aller Munde. Viele reden darüber, manche praktizieren es … und Microsoft bietet in Zusammenarbeit mit Hortonworks Hadoop auf seiner Cloud-Plattform Azure an, genannt HDInsight.
Mit HDInsight bringt Microsoft keine eigene Hadoop-Distribution raus, so wie es Cloudera und MapR machen, sondern baut auf Hortonworks Data Platform (HDP) auf.

Dieser Artikel bietet einen Kurzüberblick über Hadoop, wie es anhand von Azure HDInsight in der Cloud betrieben werden kann und welche Alternativen es zu HDInsight auf Azure oder anderen Cloud-Anbietern gibt um Hadoop zu betreiben.

Hadoop – Willkommen im Zoo

Welcome to the jungle propagierte vor langer Zeit mal ein junger Sänger. Nichts trifft es besser, wenn man über Hadoop spricht. Für viele sind Hadoop und Big Data gleichbedeutend. Wenn sie über Big Data reden, meinen sie eigentlich Hadoop. Wenn sie Hadoop sagen, meinen sie dessen Big Data-Möglichkeiten.

Was aber steckt hinter Hadoop?

Heutzutage ist Hadoop nichts anderes als ein Ökosystem, basierend auf zwei Grundkomponenten: dem Hadoop Distributed File System (HDFS) und MapReduce. Ursprünglich inspiriert bei Google’s MapReduce-Paper entwickelte Doug Cutting Hadoop für die Suchmaschine Nutch.
Aus dieser Grundidee entwickelte sich das Ökosystem, zu dem bekannte Technologien wie Spark, Storm, Drill und Hive gehören. Alle Projekte aus dem Ökosystem werden unter der Obhut der Apache Software Foundation weiterentwickelt.

Folgende Abbildung zeigt einen Kurzüberblick über eine kleine Anzahl von Technologien im heutigen Ökosystem:

Durch die verschiedenen Distributoren werden auch teilweise andere Technologien in deren Distributionen mitgeliefert. Ein technologischer Querschnitt bei Hortonworks stellt sich beispielsweise wie folgt dar (auch nachlesbar bei Hortonworks):

Wie man der Abbildung entnehmen kann bildet das HDFS immer noch die Grundlage von Hadoop. Anders aber als bisher hat sich mit der Veröffentlichung von YARN der Aufbau leicht geändert. YARN operiert als Data Operating System zwischen dem HDFS und Anwendungen, die auf Hadoop aufbauen. Dies ermöglicht das einfache Austauschen des HDFS durch ein anderes Dateisystem, beispielsweise wie hier vorgeschlagen durch den Azure Blob Storage. Dies ist eine der Grundlagen für HDInsight wie wir es heute auf Azure kennen.

HDInsight

Wie eingangs erwähnt nennt sich Microsoft’s Hadoop-Service auf Azure HDInsight. Derzeit bietet HDInsight noch nicht das komplette Potenzial aller auf Hadoop aufbauenden Technologien an. Das bedeutet, dass mehrere von den ganz neuen Inkubator-Projekten derzeit noch nicht über HDInsight nativ verfügbar ist. Neuerdings kann man aber durch eigene Konfigurationsskripte Technologien wie Spark, R und Apache Giraph nachkonfigurieren.

Das Standard-Cluster von HDInsight bietet Zugang zu Diensten wie Hive, Pig, MapReduce und Oozie. Eine komplette Liste lässt sich anhand der Versionsnummer des HDInsight-Clusters nachverfolgen.

Neben dem Standard-HDInsight-Cluster gibt es zwei weitere, spezialisiertere Clustertypen, die man bereitstellen kann: HBase und Storm.

HDInsight folgt in seiner Basiskonfiguration vielen Empfehlungen bezüglich Hochverfügbarkeit und Auswahlsicherheit. Dazu gehört unter anderem der Einsatz von mindestens zwei Head Nodes und drei Zookeeper-Knoten.

Eines unterscheidet HDInsight aber von einer klassichen Hadoop-Lösung. Durch den Einsatz in der Cloud geht es selbstverständlich darum Ressourcen nur zu verwenden und zu nutzen, wenn sie benötigt werden. Diesen Ansatz sollte man auch bei HDInsight im Hinterkopf behalten, da es ansonsten sehr schnell sehr teuer werden kann. Ein Standard-Cluster verbraucht im Dauerbetrieb sehr schnell alles, was auf einer 120€/Monat-Subscription möglich ist, innerhalb von drei bis vier Tagen. Ein ähnliches Verhalten lässt sich auch bei der Storm-Variante feststellen. Dies stellt, richtige Planung vorausgesetzt, aber kein Problem dar, da alle Daten sich wie bereits erwähnt im Azure Blob Storage befinden. Anhand von PowerShell-Skripten, aber auch C#-Code, kann man ein HDInsight-Cluster automatisieren und “fernsteuern”, sprich bereitstellen und auch wieder herunterfahren, und bereits evorhandene Daten wiederzuverwenden. Eine Entsprechende Vorgehensweise wurde von meinem Team und mir dieses Jahr auf der ceCMG und CloudBrew anhand des Safecast-Projektes vorgestellt und Teile davon auf GitHub zur Verfügung gestellt.

Mit dem Azure SDK 2.5 und den neuen Azure Tools wurde auch eine erste Version der HDInsight Tools für Visual Studio veröffentlicht. Hiermit ist es nicht nur möglich den darunterliegenden Blob Storage zu bearbeiten, sondern auch Hive-Abfragen zu erstellen und Hive-Jobs zu überwachen. In den nächsten Veröffentlichungen ist durchaus damit zu rechnen, dass die Integration in Visual Studio weiter ausgebaut wird.

Alternativen auf Azure

Alternativ zu HDInsight kann man Hadoop in seiner Urform auch selber auf Microsoft’s Infrastructure-as-a-Service (IaaS) betreiben. Wer Hadoop schon einmal selber von Grunde auf selber bereitgestellt hat weiß, dass dies nicht der witzigste Arbeitstag werden kann. Deshalb bieten Cloudera und Hortonworks ihre Distributionen im Azure Marketplace an. Derzeit hat dies noch einen bitteren Beigeschmack: Lediglich die Hortonworks-Distribution kann mann mit einer Standard-Subscription betreiben (20 Kerne). Die Standardcluster betragen in der Regel zwischen 20 (Hortonworks) und 128 (Cloudera) Kernen. Natürlich kann man probieren kleinere Cluster zu erstellen, aber auch dies ist irgendwann ausgereizt. Zum derzeitigen Zeitpunkt gibt es leider kein kleineres Angebot für eventuelle Evaluierungsszenarien.

Weitere Alternativen

Microsoft ist natürlich nicht der einzige Cloud-Anbieter, der gehostete Hadoop-Cluster anbietet. Zu diesen gehören die anderen beiden Cloud-Anbieter Google und Amazon sowie kleinere Anbieter wie Qubole. Auch Distributoren wie MapR bieten ihre Distributionen in der Cloud an, lassen diese dann aber bei Google, Amazon oder OpenStack hosten.

Damit zeigt sich, dass Hadoop in der Cloud betrieben werden kann und man eher die Qual der Wahl hat, wenn es um die Entscheidung für einen Anbieter und einen entsprechenden Distributor geht.

Zusammenfassung

Hadoop hat schon vor langer Zeit bewiesen, dass es nicht nur eine Eintagsfliege ist, sondern sich auf lange Zeit halten wird. HDInsight ist eine Alternative Hadoop und zusammenhängende Technologien zu betreiben, ohne erst durch die qualvolle Handarbeit der Erstellung eines Hadoop-Clusters zu gehen. Trotzdem muss man sich dessen bewusst sein, dass man sich in der Cloud befindet und die Planung und den Einsatz dementsprechend anpasst. Alternativ ist es natürlich auch möglich Hadoop selber auf einer virtuellen Maschine zu betreiben oder auf Distributoren wie Cloudera und Hortonworks zurückzugreifen.

Lesenswertes

Jan (@Horizon_Net)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s