Eine Übersetzung des Artikels wurde speziell für Studenten des Data Engineer- Kurses erstellt.
Nachdem sowohl Cloudera als auch MapR vor Wochen angekündigt hatten, dass ihr Geschäft in einer schwierigen Zeit sei, sah ich eine Reihe von Social-Media-Posts mit dem Thema „Hadoop is Dead“. Diese Beiträge sind nicht neu, aber in einem Sektor, in dem Fachleute selten hochwertiges Material für soziale Netzwerke produzieren, werden diese Ausrufe immer lauter. Ich möchte einige der Argumente in Bezug auf den Zustand von Hadoop berücksichtigen.
Wettbewerb mit kostenlos
Cloudera hat Vorschläge, die helfen, Hadoop zu einer vollständigeren Lösung zu machen. Diese Tools tauchten auf, bevor sich Entwickler verbreiteten, und eine automatisierte Bereitstellung war selten.
Ihre Tools bieten mehr als 2.600 Kunden großartige Angebote, aber der größte Teil der von ihnen angebotenen Software ist Open Source und kostenlos. Cloudera konkurriert letztendlich mit freier Software. Um das Ganze abzurunden, haben viele Hadoop-Ökosystementwickler bei Cloudera gearbeitet, d. H. Am Ende haben sie die kostenlosen Angebote, mit denen sie konkurrieren, irgendwie subventioniert.
Cloudera wird niemals 100% der Hadoop-Benutzer bedienen, da sie im Wettbewerb mit Free stehen. Ich würde es nicht wagen, sie als Indikator für die Gesundheit von Hadoop zu verwenden.
Andere Firmen, die schlüsselfertige Spark- und Presto-Lösungen anbieten, versuchen, sich von der Marke Hadoop zu distanzieren. Ihre Angebote können Hunderte von .jar-Dateien aus verschiedenen Hadoop-Projekten enthalten. Dennoch möchten diese Unternehmen alles daran setzen, um den Wettbewerb mit kostenlosen Angeboten zu vermeiden und gleichzeitig ihre Entwicklungskosten durch den Einsatz von Open-Source-Software zu senken. Verkäufe sind nicht so einfach, wenn Ihr Kunde 80% Ihres Angebots legal herunterladen kann, ohne dafür zu bezahlen.
Wettbewerb mit AWS
2012 habe ich mit 25 anderen Auftragnehmern an der Implementierung von Hadoop gearbeitet. Einige meiner Kollegen kamen von Google, andere arbeiteten weiterhin für Cloudera. Ein beträchtliches Budget war erforderlich, das Team produzierte viele bezahlte Stunden, aber ein sehr kleiner Teil des Hadoop-Ökosystems war fertig.
Innerhalb weniger Jahre erschien AWS EMR und begann, seinen Marktanteil zu absorbieren. Mit EMR können Sie Hadoop-Cluster mit einer Vielzahl von Software ausführen, die mit nur wenigen Klicks installiert werden. Es kann in Punktkopien arbeiten, was die Gerätekosten um ~ 80% senkt, und Daten in S3 speichern, das bei 99,9999999999% billig und zuverlässig war und bleibt.
Plötzlich verschwand der Bedarf an 25 Auftragnehmern für das Projekt. Bei einigen Projekten könnten nur ich, ein Vollzeitbeschäftigter und mehrere andere Teilzeitbeschäftigte, die die Infrastruktur zusätzlich zu unseren anderen Aufgaben vorbereiten, beteiligt sein. Es besteht weiterhin ein Bedarf an Projektberatern, die AWS EMR verwenden, aber das Gesamtabrechnungspotenzial für diese Art von Arbeit ist viel geringer als noch vor einigen Jahren.
Welcher Anteil des potenziellen Cloudera-Geschäfts ging zugunsten von EMR verloren? Cloudera hat die Einrichtung und Verwaltung von Bare-Metal-Clustern gut gemacht, aber heute befindet sich der größte Teil der Datenwelt in der Cloud. Es lohnt sich zu überlegen, wie attraktiv Hadoop für Ihr Unternehmen ist, schon allein deshalb, weil AWS über ein verwaltetes Angebot mit Punktkopien verfügt.
Was ist Hadoop?
Wenn Sie mich nach der Definition von Hadoop fragen, würde ich sagen, dass es sich um eine große Sammlung von Open-Source-Software handelt, die zum Teil integriert ist und mehrere gemeinsame Bibliotheken hat. Ich sehe Hadoop als partitionierte Datenbank, fast wie eine Betriebssystemverteilung für Daten.
Nicht alle von Hadoop gesponserten Softwareprojekte sind Apache-Projekte. Presto ist eine solche Ausnahme. Andere wie ClickHouse, die HDFS und Parkett in Kürze unterstützen, werden von vielen nicht mehr als Hadoop-Projekt angesehen, obwohl sie in Kürze das Kompatibilitätsdiagramm ankreuzen werden.
Bis 2012 gab es keine ORC-Dateien oder Parkett. Diese Formate trugen zur Implementierung von Schnellanalysen in Hadoop bei. Vor diesen Formaten waren die Workloads hauptsächlich zeilenorientiert. Wenn Sie Terabytes an Daten konvertieren müssen und dies parallel tun können, erledigt Hadoop die Aufgabe perfekt. MapReduce war ein Framework, das häufig für diesen Zweck verwendet wurde.
Was für Spaltenspeicher angeboten wurde, ist eine Analyse von Terabytes an Daten in Sekundenschnelle. Was sich für eine größere Anzahl von Unternehmen als wertvoller herausstellte. Datenwissenschaftler benötigen möglicherweise nur eine geringe Datenmenge, um sich ein Bild zu machen. Zunächst müssen sie jedoch potenzielle Petabyte an Daten untersuchen, um die richtigen auszuwählen. Die Spaltenanalyse ist für sie von entscheidender Bedeutung, da sie die Verarbeitung der Daten beherrschen, die erforderlich sind, um zu verstehen, welche Daten ausgewählt werden müssen.
MapReduce verfügt über zwei Operatoren für die funktionale Datenverarbeitung, die das Zuordnen und Reduzieren von Daten sowie das Behandeln von Daten als Zeichenfolgen. Spark folgt ihm sofort und verfügt über funktionalere Operatoren wie Filter und Vereinigung. Die Daten werden in einem gerichteten azyklischen Diagramm (Direct Acyclic Graph - DAG) strukturiert. Diese Elemente ermöglichten es Spark, komplexere Workloads wie maschinelles Lernen und grafische Analysen auszuführen. Spark kann YARN weiterhin als Kapazitätsplaner verwenden, ähnlich wie die Aufgaben in MapReduce. Das Spark-Team begann jedoch auch, einen eigenen Scheduler zu erstellen, und fügte später Unterstützung für Kubernetes hinzu.
Irgendwann versuchte die Spark-Community, sich vom Hadoop-Ökosystem zu distanzieren. Sie wollten nicht als Add-On für Legacy-Software oder als eine Art "Add-On" für Hadoop angesehen werden. Angesichts des Integrationsgrades, den Spark mit dem Rest des Hadoop-Ökosystems aufweist, und angesichts der Hunderte von Bibliotheken aus anderen von Spark verwendeten Hadoop-Projekten bin ich nicht der Ansicht, dass Spark ein eigenständiges Produkt ist.
MapReduce ist heutzutage möglicherweise nicht die erste Wahl für die meisten Workloads, aber es ist immer noch die Basisumgebung, wenn Sie hadoop distcp verwenden - ein Softwarepaket, das Daten zwischen AWS S3 und HDFS
schneller als jedes andere Angebot I übertragen kann getestet.
Ist jedes Hadoop-Tool erfolgreich?
Nein, es gibt einige Projekte, die die neuen Artikel bereits in den Schatten gestellt haben.
Beispielsweise werden viele Workloads, die zuvor mit Oozie automatisiert wurden, jetzt mit Airflow automatisiert. Robert Kanter, der Hauptentwickler von Oozie, lieferte einen wesentlichen Teil der Codebasis, die heute existiert. Leider beteiligte sich Robert seit seinem Ausscheiden aus Cloudera im Jahr 2018 nicht mehr so aktiv an dem Projekt. Mittlerweile hat Airflow mehr als 800 Teilnehmer, deren Zahl sich im vergangenen Jahr nahezu verdoppelt hat. Nahezu jeder Kunde, mit dem ich seit 2015 zusammenarbeite, hat Airflow in mindestens einer Abteilung seiner Organisation eingesetzt.
Hadoop bietet die verschiedenen Bausteine und Elemente, aus denen die Datenplattform besteht. Oft konkurrieren mehrere Projekte um die Bereitstellung der gleichen Funktionalität. Am Ende verblassen einige dieser Projekte, während andere die Führung übernehmen.
Im Jahr 2010 gab es mehrere Projekte, die als erste Wahl für verschiedene Workloads positioniert wurden, an denen nur wenige Teilnehmer oder in einigen Fällen mehrere wichtige Bereitstellungen teilnahmen. Die Tatsache, dass diese Projekte kommen und gehen, wurde als Beweis dafür herangezogen, dass das gesamte Hadoop-Ökosystem im Sterben liegt, aber ich kann daraus keine Schlussfolgerungen ziehen.
Ich sehe diese schwache Verbindung von Projekten als eine Möglichkeit, viele leistungsstarke Funktionen zu entwickeln, die ohne nennenswerte Endbenutzer-Lizenzgebühren verwendet werden können. Dies ist das Prinzip des Überlebens der Stärkeren und beweist, dass für jedes Problem mehr als ein Ansatz in Betracht gezogen wurde.
UPDATE: Ich gab anfangs an, dass Oozie 17 Mitglieder hatte, basierend auf dem, was auf GitHub berichtet wird. Tatsächlich hat Oozie sowohl direkte Commits als auch Patches von 152 Entwicklern eingereicht, und nicht nur von 17, die in der GitHub-Berechnung enthalten sind. Robert Kanter hat mich nach der Erstveröffentlichung dieses Beitrags mit den Nachweisen dieser weiteren 135 Autoren kontaktiert, und ich danke ihm für diese Klarstellung.
Suchverkehr funktioniert nicht
Eines der Argumente für den "Tod" von Hadoop ist, dass der Google-Suchverkehr auf verschiedenen Hadoop-Technologien nicht funktioniert. Cloudera und eine Reihe anderer Berater haben in den letzten Jahren gute Fundraising-Arbeit geleistet und erhebliche Anstrengungen unternommen, um ihre Vorschläge voranzutreiben. Dies wiederum weckte großes Interesse und irgendwann tauchte in der Fachwelt eine Welle von Menschen auf, die sich mit diesen Technologien beschäftigten. Diese Gemeinschaft ist vielfältig und irgendwann haben sich die meisten Menschen, wie immer, anderen Dingen zugewandt.
In der gesamten Geschichte von Hadoop gab es nicht so viele Funktionen wie heute und es war noch nie so stabil und im Kampf getestet.
Hadoop-Projekte bestehen aus Millionen von Codezeilen, die von Tausenden von Autoren geschrieben wurden. Jede Woche arbeiten Hunderte von Entwicklern an verschiedenen Projekten. Die meisten kommerziellen Datenbankangebote haben Glück, wenn mindestens eine Handvoll Ingenieure jede Woche signifikante Verbesserungen an ihren Codedatenbanken vornehmen.
Warum ist Hadoop etwas Besonderes?
Erstens gibt es HDFS-Cluster mit einer Kapazität von mehr als 600 PB. Aufgrund der Art der HDFS-Metadaten im RAM können Sie problemlos 60.000 Vorgänge pro Sekunde verarbeiten.
AWS S3 hat viel von dem gebrochen, was auf POSIX-Dateisystemen zu finden ist, um Skalierbarkeit zu erreichen. Schnelle Dateiänderungen, wie sie beispielsweise beim Konvertieren von CSV-Dateien in Parkettdateien erforderlich sind, sind in S3 nicht möglich und erfordern HDFS, wenn Sie die Arbeitslast verteilen möchten. Wenn die Konvertierungssoftware modifiziert wurde, um die oben erwähnte reine S3-Arbeitslast zu erreichen, sind die Kompromisse mit der Datenlokalität wahrscheinlich erheblich.
Zweitens zielt das Hadoop Ozone-Projekt darauf ab, ein S3 API-kompatibles System zu erstellen, das Billionen von Objekten in einem Cluster speichern kann, ohne einen eigenen Cloud-Dienst verwenden zu müssen. Das Projekt strebt eine integrierte Unterstützung für Spark und Hive an, die eine gute Integration mit dem Rest des Hadoop-Ökosystems ermöglicht. Nach der Veröffentlichung wird diese Software eines der ersten Open-Source-Angebote sein, bei dem so viele Dateien in einem Cluster gespeichert werden können.
Drittens bieten die im Hadoop-Ökosystem verfügbaren APIs eine konsistente Schnittstelle für die Verarbeitung von Gigabyte Daten, auch wenn Sie nicht mit Petabyte Daten arbeiten. Spark ist die ultimative Lösung für verteiltes maschinelles Lernen. Sobald Sie sich mit der API vertraut gemacht haben, spielt es keine Rolle, ob Ihre Arbeitslast in GB oder PB gemessen wird. Der von Ihnen erstellte Code muss nicht neu geschrieben werden. Sie benötigen lediglich mehr Computer, um ihn auszuführen. Ich würde zuerst jemandem beibringen, wie man SQL- und PySpark-Code schreibt, und dann würde ich ihm beibringen, wie man AWK-Befehle auf mehreren Computern verteilt.
Viertens sind viele der Merkmale des Hadoop-Ökosystems führend für kommerzielle Anbieter. Jeder erfolglose Marketing-Schritt für eine proprietäre Datenbank führt dazu, dass die Verkaufsabteilung herausfindet, wie viele fehlende Funktionen, Kompromisse und Engpässe in ihrem Angebot enthalten sind. Bei jedem POC-Fehler muss das Verkaufsteam feststellen, wie zuverlässig die internen Softwaretests sind.
Damit ist der erste Teil der Übersetzung abgeschlossen. Fortsetzung kann hier
gelesen werden . Und jetzt warten wir auf Ihre Kommentare und laden alle zu einem kostenlosen Webinar zum Thema
"Grundlagen der Erstellung von Streaming-Analysesystemen" ein.