Open Source und Linux für die Bereitstellung von Anwendungen nutzen Big-Data-Umgebungen mit Docker virtualisieren
Bei Docker handelt es sich um eine auf Linux basierende Lösung, die Anwendungen im Betriebssystem virtualisieren kann. Anwendungen lassen sich so leichter bereitstellen, da die Container mit den virtualisierten Anwendungen transportabel sind. Wir zeigen die Möglichkeiten und Vorteile von Docker auf.
Anbieter zum Thema

Vor allem im Big-Data-Bereich spielen eine große Anzahl verschiedener Anwendungen und zahlreiche Server eine wichtige Rolle. Die Anwendungen sind häufig kompliziert in der Einrichtung und müssen zudem untereinander schnell und effizient Daten austauschen können, um eine effiziente Datenanalyse zu gewährleisten. Der größte Teil der wichtigsten Big-Data-Lösungen basiert auf Open Source Software unter der Apache-Lizenz. Auch Hadoop, der De-facto-Standard im Bereich Big Data, baut auf Linux auf. Aus diesem Grund spielt auch die Virtualisierung in diesem Bereich eine große Rolle.
Allerdings ist es nicht immer sinnvoll, einen virtuellen Server zu installieren und auf diesem Server Anwendungen bereitzustellen. Denn bei allen Vorteilen von virtuellen Servern haben diese auch einige Nachteile: Die Images sind oft recht groß, verbrauchen Ressourcen und benötigen emulierte oder virtualisierte Hardware. Außerdem wird ein komplettes Betriebssystem gebraucht, welches installiert, verwaltet, gesichert und konfiguriert werden will.
Anwendungen ohne VMs mit Docker virtualisieren
Oft ist es effizienter, die Anwendung selbst zu virtualisieren und direkt auf einem Host zu betreiben. Diese Virtualisierung müssen aber sowohl das Betriebssystem als auch die Anwendungen unterstützten. Da die meisten Big Data Tools auf Linux aufbauen, schlummert hier also deutliches Optimierungspotenzial. Linux bietet mit Control-Groups und Ressourcen-Isolation Möglichkeiten, Anwendungen auf Hosts zu virtualisieren.
Docker ist eine solche Virtualisierungslösung, die in der aktuellen Version auf die Linux-Lösungen Libcontainer und Execution Driver setzt. Ältere Versionen haben noch Linux Container (LXC) unterstützt. Die Technik lässt sich mit Docker noch nutzen, empfohlen wird aber die Verwendung von Libcontainer.
Ab Version 1.5 unterstützt Docker auch IPv6. Außerdem lassen sich jetzt auch Container erstellen, die nur lesenden Zugriff erlauben. Das kann für Big-Data-Umgebungen ideal sein. IPV6 lässt sich auch für die Kommunikation zwischen Containern nutzen, was bei vielen Hadoop-Clustern sinnvoll ist. Außerdem ist dadurch auch eine schnellere Kommunikation zwischen Containern möglich, die sich auf verschiedenen Virtualisierungshosts befinden.
So funktioniert Docker
Anwendungen laufen in Docker als Container. Die Images, um solche Anwendungen bereitzustellen, zum Beispiel Big-Data-Applikationen, werden Docker Images genannt. Diese sind sehr klein, lassen sich schnell verteilen und noch schneller bereitstellen. Docker-Container erhalten eigene IP-Adressen und sind auch über verschiedene Ports ansprechbar.
Erstellen Administratoren zum Beispiel einen Hadoop-Cluster, lassen sich die Knoten mit Docker in Containern virtualisieren und auf den Hosts verteilen. Auch Zusatzanwendungen wie Hive und Yarn lassen sich auf diesem Weg virtualisiert über Container zur Verfügung stellen. Ein Beispiel für einen solchen Cluster ist hier zu finden. Die Einrichtung ist auch in einem Youtube-Filme zu sehen.
Neben der Möglichkeit, Hadoop-Clusterknoten bereitzustellen, können Administratoren auch die NoSQL-Datenbank-Server über Docker bereitstellen, etwa die NoSQL-Datenbank MongoDB.
Cloudbreak und Apache Ambari – Docker-Lösung speziell für Big Data
In diesem Bereich gibt es mit Cloudbreak eine Möglichkeit, Hadoop direkt mit Docker-Technologien zu verbinden. Cloudbreak soll vor allem bei der Bereitstellung von Hadoop in Docker-Container unterstützen. Cloudbreak bietet hier auch eine REST-API, mit der sich Hadoop-Cluster in Docker-Container verwalten lassen, unabhängig von der Umgebung, in welcher diese betrieben werden.
Hier arbeitet Cloudbreak auch sehr eng mit Ambari zusammen. Ambari bietet eine grafische Oberfläche für das Installieren von Hadoop-Clustern und kann jederzeit beim Hinzufügen weiterer Knoten und Prozesse unterstützen. Neben der Überwachung von Clustern lassen sich auch die Anwendungen, Abfragen und deren Auslastung auslesen. Dazu kommt die parallele Anbindung an Oozie, Zookeeper und Hive.
Sehr wichtig in diesem Zusammenhang ist auch das Informieren von Administratoren bei Fehlern in Jobs oder des ganzen Servers. Anbinden lassen sich dazu auch Hadoop-Knoten, die über Docker-Container zur Verfügung gestellt werden. Außerdem kann Ambari auch Hadoop-Cluster komplett, auf Docker-Containern basierend, installieren. Administratoren finden dazu Anleitungen im Internet.
Docker in der Cloud nutzen – Microsoft Azure und Amazon EC2
Docker gehört mittlerweile zum Standard, wenn es um die Virtualisierung von Anwendungen geht. Daher haben auch große Cloudanbieter reagiert und Erweiterungen integriert. Wollen Unternehmen Hadoop-Cluster auf Basis von Linux in Microsoft Azure bereitstellen, lässt sich ebenfalls Docker nutzen. Wer Interesse an einem Test hat, kann sich eine virtuelle Maschine auf Basis von Ubuntu in Microsoft Azure erstellen.
Dazu verwenden Administratoren die Docker-VM-Erweiterung des Azure Linux Agent, um einen virtuellen Docker-Computer zu erstellen. Dieser kann eine beliebige Anzahl von Containern für Anwendungen in Azure hosten, auch für Hadoop. Die genaue Vorgehensweise beschreibt Microsoft in der Azure-Dokumentation. Auch in Amazon EC2 lässt sich Docker einbinden. Dazu nutzen Administratoren den Amazon EC2 Container Service.
Google plant in seiner Cloud Platform ebenfalls die Docker-Integration. Hier steht bereits die Alpha-Version der Google Container Engine zur Verfügung.
Wer im Unternehmen auf VMware-Virtualisierungsprodukte setzt, soll zukünftig ebenfalls mit Docker virtualisieren können. VMware will dazu bei der Entwicklung von Docker mitarbeiten und die Verwaltung von Docker-Container über eigene Verwaltungswerkzeuge ermöglichen.
Fazit
Unternehmen, die eigene Hadoop-Cluster betreiben oder die Einführung planen, sollten sich in jedem Fall die Möglichkeiten von Docker ansehen. Zwar wird die Bereitstellung zu Beginn etwas komplexer, im laufenden Betrieb offenbaren sich aber schnell die Vorteile der viel kleineren Images. Die Hosts können effizienter ausgenutzt werden und die Bereitstellung neuer Clusterknoten geht viel schneller.
(ID:43317291)