Amazon EMR als einfach einzurichtende Hadoop-Plattform
Actian Germany GmbH
3. Mai 2016

Kürzlich habe ich einem Kunden geholfen, eine Evaluierung von Actian Vector in Hadoop (VectorH) durchzuführen, um zu sehen, ob es die Leistung von "ein paar Sekunden" beibehalten kann, wenn die Datengröße von einer auf mehrere Milliarden Zeilen ansteigt (was der Fall war, aber das ist nicht das Thema dieses Beitrags).
Der betreffende Kunde war nur mäßig in Hadoop investiert und suchte daher nach einer Möglichkeit, die Umgebung einzurichten, ohne sich tief in die Details von Hadoop einarbeiten zu müssen. Dies entspricht genau der Vision von Actian für die Hadoop-Versionen seiner Software: Kunden können echte Anwendungen für Geschäftsanwender in Hadoop ausführen, ohne sich mit den "entwicklungslastigen" Aspekten befassen zu müssen, die Hadoop normalerweise erfordert.
Actian hat ein Provisioning-Tool namens Actian Management Console (AMC) herausgebracht, mit dem das Betriebssystem, Hadoop und die ActianSoftware per Mausklick installiert und konfiguriert werden können, was für diesen Kunden ideal ist. AMC unterstützt derzeit Amazon EC2 und Rackspace Clouds.
Zum Zeitpunkt der Evaluierung war AMC jedoch noch nicht verfügbar, so dass wir uns nach einer anderen Lösung umgesehen und Amazons EMR (Elastic MapReduce) ausprobiert haben, das eine schnelle Möglichkeit bietet, einen Cluster mit minimalem Aufwand zum Laufen zu bringen. In diesem Eintrag sehen wir uns an, was wir gefunden haben und listen die Vor- und Nachteile auf.
Vor- und Nachteile von Amazon EMR
EMR ist sehr einfach einzurichten - gehen Sie einfach zur Amazon-Konsole, wählen Sie die gewünschten Instance-Typen und die Anzahl der Instances aus, drücken Sie die Taste und in wenigen Minuten haben Sie einen laufenden Cluster. Dieser Teil der Einrichtung ist schneller als die Verwendung des AMC zur Bereitstellung eines Cluster von Grund auf, da EMR einige dieser Installationsschritte vordefiniert, um sie für Sie zu beschleunigen.
Standardmäßig erhalten Sie Amazons Hadoop-Variante, eine Form von Apache Hadoop, auf die die meisten empfohlenen Patches und Optimierungen angewendet werden. Es ist jedoch möglich, Hortonworks, Cloudera und MapR für die Verwendung mit EMR sowie andere Add-ons wie Apache Spark und Apache Zeppelin anzugeben. In diesem Fall haben wir die Standard-Apache-Hadoop-Distribution verwendet.
Hadoop-Puristen könnten bei einigen der verwendeten Begriffe die Stirn runzeln - zum Beispiel werden die DataNodes in EMR als "Core"-Knoten bezeichnet, und der NameNode wird als "Master"-Knoten bezeichnet (für diejenigen, die EMR und VectorH noch nicht kennen, sei darauf hingewiesen, dass der Begriff "Master" von beiden für unterschiedliche Dinge verwendet wird).
Die Konfiguration bestimmter Elemente wird in Abhängigkeit von der Größe des Cluster automatisch angepasst. So wird beispielsweise der HDFS-Replikationsfaktor bei Clustern mit weniger als 4 Knoten auf eins, bei Clustern mit 2-10 Knoten auf zwei und bei Clustern mit mehr als 10 Knoten auf den üblichen Wert von drei gesetzt. Diese und andere Eigenschaften können in der Startsequenz über "Bootstrap"-Optionen explizit eingestellt werden.
Das bringt uns zu dem wichtigsten Punkt, der bei der Verwendung von EMR zu beachten ist: In EMR ist alles (einschließlich Hadoop) vergänglich; wenn Sie den Cluster neu starten, wird alles gelöscht und von Grund auf neu aufgebaut. Wenn Sie die Konfiguration beibehalten wollen, müssen Sie dies in den Bootstrap-Optionen festlegen. Wenn Sie Daten über Neustarts des Cluster hinweg beibehalten wollen, müssen Sie die Daten extern in einem Speicher wie S3 ablegen. EMR kann S3 direkt lesen und schreiben, so dass Sie keine Rohdaten aus S3 in HDFS kopieren müssen, nur um Daten in VectorH laden zu können - Sie können direkt aus S3 laden, indem Sie etwas wie Actians neuen Spark-Loader verwenden.
Dies mag wie ein Nachteil erscheinen, und für einige Anwendungsfälle ist es das auch, aber es spiegelt einfach den Zweck von EMR wider. EMR war nie dazu gedacht, ein dauerhaftes Zuhause für einen persistenten DataLake zu sein, sondern eher eine vorübergehende Umgebung für die Ausführung von MapReduce Aufträgen nach dem Motto "Hochfahren, verarbeiten und wieder herunterfahren". Amazon würde wahrscheinlich sagen, dass S3 der Ort für persistente Daten sein sollte.
In unserem Fall testeten wir eine High-Performance - definitiv ein "langlebiger" Dienst mit dauerhaften Datenanforderungen - so dass EMR in diesem Sinne vielleicht keine so gute Wahl war. Obwohl wir die Datenbank ein paar Mal neu laden mussten, nachdem wir den Cluster neu konfigurieren wollten, konnten wir uns schnell an die Bereitstellung von Grund auf gewöhnen, indem wir ein rudimentäres Bereitstellungsskript erstellten (was durch die schnelle Ladegeschwindigkeit von VectorH und die Tatsache, dass es keine Indizes benötigt, unterstützt wurde), und so funktionierte es tatsächlich recht gut als Testumgebung.
Der zweite Punkt, der bei EMR zu beachten ist, insbesondere für diejenigen, die mit Hadoop vertraut sind, ist, dass (zumindest bei dem von uns verwendeten Standard-Hadoop) einige der üblichen Funktionen nicht vorhanden sind. Was uns am meisten auffiel, war das Fehlen der üblichen Start-/Stopp-Kontrollen für die Hadoop-Dämonen. Wir versuchten, die DataNodes neu zu starten, um Kurzschluss-Lesevorgänge zu ermöglichen, und fanden das ein wenig schwierig - am Ende mussten wir den Cluster ohnehin neu starten und haben dies daher in die Bootstrap-Optionen aufgenommen.
Ein weiterer Aspekt, auf den Sie bei EMR keinen Einfluss haben, ist die Verwendung einer AWS Placement Group. Wenn Sie einen Cluster wünschen, versuchen Sie in AWS normalerweise sicherzustellen, dass die verschiedenen Knoten in Bezug auf den physischen Standort "nahe beieinander" liegen, um so die Netzwerklatenz zu minimieren. Bei EMR scheint es keine Möglichkeit zu geben, dies festzulegen. Es könnte sein, dass EMR im Verborgenen ein wenig clever ist und dies ohnehin für Sie tut. Es könnte aber auch sein, dass Placement Groups bei größeren Clustern vielleicht etwas unpraktisch werden. So oder so (oder auch anders) wurden in unserem Setup keine speziellen Placement Groups verwendet. Auch ohne sie war die Leistung gut.
Die Leistung war sogar so gut, dass der Kunde berichtete, die Ergebnisse seien besser als bei vergleichbaren Tests mit Amazon Redshift!
Zusammenfassend hat diese Übung gezeigt, dass Sie Amazon EMR als "Schnellstart"-Hadoop-Umgebung selbst für langlebige Dienste wie Actian VectorH verwenden können. Abgesehen vom Fehlen einiger Aspekte - die meisten davon lassen sich über Bootstrap-Optionen beheben - verhält sich EMR wie eine normale Hadoop-Distribution. Aufgrund seiner vorübergehenden Natur sollte EMR nur für vorübergehende Anwendungsfälle in Betracht gezogen werden (einschließlich des Testens von Diensten mit langer Lebensdauer).
Kunden, die Hadoop per Mausklick für die Produktion in Systemen wie Amazon EC2 bereitstellen möchten, sollten eine Installation mit der Actian Management Console in Betracht ziehen, die ab sofort unter http://esd.actian.com erhältlich ist.
Abonnieren Sie den Actian Blog
Abonnieren Sie den Blog von Actian, um direkt Dateneinblicke zu erhalten.
- Bleiben Sie auf dem Laufenden: Holen Sie sich die neuesten Informationen zu Data Analytics direkt in Ihren Posteingang.
- Verpassen Sie keinen Beitrag: Sie erhalten automatische E-Mail-Updates, die Sie informieren, wenn neue Beiträge veröffentlicht werden.
- Ganz wie sie wollen: Ändern Sie Ihre Lieferpräferenzen nach Ihren Bedürfnissen.
Abonnieren
(d.h. sales@..., support@...)