Fünf Dinge, die Sie über Hadoop v. Apache Spark wissen müssen

Hören Sie sich ein Gespräch über Big Data an, und Sie werden wahrscheinlich von Hadoop oder Apache Spark sprechen. Hier ist ein kurzer Blick darauf, was sie tun und wie sie vergleichen.

1: Sie machen verschiedene Dinge. Hadoop und Apache Spark sind beide Big-Data-Frameworks, aber sie dienen nicht wirklich denselben Zwecken. Hadoop ist im Wesentlichen eine verteilte Dateninfrastruktur: Es verteilt umfangreiche Datensammlungen auf mehrere Knoten innerhalb eines Clusters von Commodity-Servern, sodass Sie keine teure benutzerdefinierte Hardware kaufen und warten müssen. Außerdem werden diese Daten indiziert und nachverfolgt, wodurch die Verarbeitung und Analyse von Big Data weitaus effektiver als bisher möglich ist. Spark hingegen ist ein Datenverarbeitungstool, das diese verteilten Datensammlungen verarbeitet. Verteilter Speicher wird nicht ausgeführt.

2: Sie können eins ohne das andere verwenden. Hadoop enthält nicht nur eine Speicherkomponente, die als Hadoop Distributed File System bezeichnet wird, sondern auch eine Verarbeitungskomponente namens MapReduce, sodass Sie Spark nicht benötigen, um Ihre Verarbeitung durchzuführen. Umgekehrt können Sie Spark auch ohne Hadoop verwenden. Spark verfügt jedoch nicht über ein eigenes Dateiverwaltungssystem. Daher muss es in eines integriert werden - wenn nicht in HDFS, dann in eine andere Cloud-basierte Datenplattform. Spark wurde jedoch für Hadoop entwickelt, so viele sind sich einig, dass sie besser zusammen sind.

3: Funke ist schneller.Spark ist aufgrund der Art und Weise, wie Daten verarbeitet werden, im Allgemeinen viel schneller als MapReduce. Während MapReduce schrittweise arbeitet, bearbeitet Spark den gesamten Datensatz auf einen Schlag. "Der MapReduce-Workflow sieht folgendermaßen aus: Daten aus dem Cluster lesen, eine Operation ausführen, Ergebnisse in den Cluster schreiben, aktualisierte Daten aus dem Cluster lesen, nächste Operation ausführen, nächste Ergebnisse in den Cluster schreiben usw.", erklärte Kirk Borne. Hauptdatenwissenschaftler bei Booz Allen Hamilton. Auf der anderen Seite führt Spark die vollständigen Datenanalysevorgänge im Arbeitsspeicher und nahezu in Echtzeit durch: "Lesen Sie Daten aus dem Cluster, führen Sie alle erforderlichen Analysevorgänge aus, schreiben Sie die Ergebnisse in den Cluster, fertig", sagte Borne. Spark kann für die Stapelverarbeitung bis zu 10-mal schneller als MapReduce und für In-Memory-Analysen bis zu 100-mal schneller sein, sagte er.

4: Möglicherweise benötigen Sie die Geschwindigkeit von Spark nicht. Der Verarbeitungsstil von MapReduce kann in Ordnung sein, wenn Ihre Datenvorgänge und Berichtsanforderungen größtenteils statisch sind und Sie auf die Verarbeitung im Stapelmodus warten können. Wenn Sie jedoch Analysen zum Streaming von Daten durchführen müssen, z. B. von Sensoren in einer Fabrikhalle, oder Anwendungen haben, die mehrere Vorgänge erfordern, möchten Sie wahrscheinlich Spark verwenden. Die meisten Algorithmen für maschinelles Lernen erfordern beispielsweise mehrere Operationen. Zu den gängigen Anwendungen für Spark gehören Echtzeit-Marketingkampagnen, Online-Produktempfehlungen, Cybersicherheitsanalysen und die Überwachung von Maschinenprotokollen.

5: Fehlerbehebung: anders, aber immer noch gut. Hadoop ist natürlich widerstandsfähig gegen Systemfehler oder -ausfälle, da Daten nach jedem Vorgang auf die Festplatte geschrieben werden. Spark verfügt jedoch über eine ähnliche integrierte Ausfallsicherheit, da seine Datenobjekte in so genannten belastbaren verteilten Datensätzen gespeichert sind, die über den Datencluster verteilt sind. "Diese Datenobjekte können im Speicher oder auf Festplatten gespeichert werden, und RDD bietet eine vollständige Wiederherstellung nach Fehlern oder Ausfällen", betonte Borne.