Eine Einführung in Hadoop

Einführung

Apache Hadoop ist eines der frühesten und einflussreichsten Open-Source-Tools zum Speichern und Verarbeiten der riesigen Menge an sofort verfügbaren digitalen Daten, die sich mit dem Aufkommen des World Wide Web angesammelt haben. Es entstand aus einem Projekt namens Nutch, das versuchte, eine bessere Open-Source-Methode zum Crawlen des Webs zu finden. Die Entwickler von Nutch waren stark von den Überlegungen in zwei wichtigen Artikeln von Google beeinflusst und haben sie ursprünglich in Nutch integriert. Die Speicher- und Verarbeitungsarbeiten wurden jedoch auf das Hadoop-Projekt aufgeteilt, während Nutch als eigenes Web-Crawler-Projekt weiterentwickelt wurde.

In diesem Artikel werden Datensysteme und einige spezifische, unterschiedliche Anforderungen von Big-Data-Systemen kurz erläutert. Dann schauen wir uns an, wie sich Hadoop entwickelt hat, um diesen Anforderungen gerecht zu werden.

Datensysteme

Daten sind überall vorhanden: auf Papierfetzen, in Büchern, Fotos, Multimediadateien, Serverprotokollen und auf Websites. Wenn diese Daten absichtlich gesammelt werden, gelangen sie in ein Datensystem.

Stellen Sie sich ein Schulprojekt vor, bei dem die Schüler jeden Tag den Wasserstand eines nahe gelegenen Baches messen. Sie zeichnen ihre Messungen im Feld in einer Zwischenablage auf, kehren in ihr Klassenzimmer zurück und geben diese Daten in eine Tabelle ein. Wenn sie eine ausreichende Menge gesammelt haben, beginnen sie, diese zu analysieren. Sie können die gleichen Monate aus verschiedenen Jahren vergleichen, vom höchsten bis zum niedrigsten Wasserstand. Sie können Diagramme erstellen, um nach Trends zu suchen.

Dieses Schulprojekt zeigt ein Datensystem:

  • Informationen gibt es an verschiedenen Orten (die Feldnotizen der verschiedenen Studenten)

  • Es wird in einem System gesammelt (von Hand in eine Tabelle eingegeben)

  • Es wird gespeichert (auf dem Computer im Klassenzimmer gespeichert; Feldnotizbücher werden möglicherweise kopiert oder aufbewahrt, um die Integrität der Daten zu überprüfen).

  • Es wird analysiert (aggregiert, sortiert oder anderweitig manipuliert)

  • Verarbeitete Daten werden angezeigt (Tabellen, Diagramme, Grafiken)

Dieses Projekt ist am kleinen Ende des Spektrums. Ein einzelner Computer kann die täglichen Wasserstandsmessungen eines Baches speichern, analysieren und anzeigen. Gegen Ende des Spektrums bilden alle Inhalte auf allen Webseiten der Welt einen viel größeren Datensatz. Im Grunde handelt es sich um Big Data: so viele Informationen, dass sie nicht auf einen einzelnen Computer passen.

Suchmaschinenfirmen waren mit diesem speziellen Problem konfrontiert, als Webinhalte während der Dot-com-Ära explodierten. Im Jahr 2003 veröffentlichte Google sein einflussreiches PapierThe Google File System, in dem beschrieben wurde, wie die proprietäre Software die Speicherung der riesigen Datenmenge handhabte, die für die Suchmaschine verarbeitet wurde. Es folgte 2004MapReduce: Simplified Data Processing on Large Clustersvon Google, in dem detailliert beschrieben wurde, wie die Verarbeitung derart großer Datenmengen vereinfacht wurde. Diese beiden Arbeiten haben die Architektur von Hadoop stark beeinflusst.

Wie unterscheidet sich Big Data?

Die Google-Papiere und die Umsetzung dieser Ideen durch Hadoop beruhten auf vier wesentlichen Änderungen im Denken über Daten, die zur Anpassung an das Datenvolumen erforderlich waren:

  1. Big Data-Systeme mussten diesedata would be distributed akzeptieren. Es war unvermeidlich, den Datensatz in Teilen auf mehreren Computern zu speichern.

  2. Sobald Cluster zur Speichergrundlage wurden, dannsoftware had to account for hardware failure, da Hardwarefehler unvermeidlich sind, wenn Sie über die Ausführung von Hunderten oder Tausenden von Computern in einem Cluster sprechen.

  3. Da Maschinenwillausfallen, brauchten sie eine neue Art der Kommunikation miteinander. In der alltäglichen Datenverarbeitung sind wir an einen bestimmten Computer gewöhnt, der normalerweise durch eine IP-Adresse oder einen Hostnamen identifiziert wird, der bestimmte Daten an einen anderen bestimmten Computer sendet. Diesexplicit communication had to be replaced with implicit communication, wobei ein Computer einem anderen Computer mitteilt, dass er bestimmte Daten verarbeiten muss. Andernfalls stünden Programmierer vor einem Überprüfungsproblem, das mindestens so groß ist wie das Datenverarbeitungsproblem selbst.

  4. Schließlichcomputing would need to go to the data and process it on the distributed machines, anstatt die riesigen Datenmengen über das Netzwerk zu verschieben.

Die 2007 veröffentlichte Version 1.0 des Java-basierten Programmierframeworks Hadoop war das erste Open-Source-Projekt, das diese veränderten Denkweisen berücksichtigte. Die erste Iteration besteht aus zwei Schichten:

  1. HDFS: Das verteilte Hadoop-Dateisystem, das für das Speichern von Daten auf mehreren Computern verantwortlich ist.

  2. MapReduce: Das Software-Framework zum Verarbeiten der Daten an Ort und Stelle auf jedem Computer sowie zum Planen, Überwachen und erneuten Ausführen fehlgeschlagener Aufgaben.

HDFS 1.0

Das Hadoop Distributed File System (HDFS) ist die verteilte Speicherebene, die Hadoop verwendet, um Daten zu verteilen und sicherzustellen, dass sie für eine hohe Verfügbarkeit ordnungsgemäß gespeichert werden.

Wie funktioniert HDFS 1.0?

HDFS verwendet die Blockreplikation zum zuverlässigen Speichern sehr großer Dateien auf mehreren Computern mit zwei unterschiedlichen Softwareteilen: dem NameNode-Server, der den Namespace und den Clientzugriff des Dateisystems verwaltet, und den DataNodes, die für die Verarbeitung von Lese- und Schreibanforderungen sowie für die Blockierung zuständig sind Erstellung, Löschung und Replikation. Ein grundlegendes Verständnis des Replikationsmusters kann für Entwickler und Clusteradministratoren hilfreich sein, da Ungleichgewichte bei der Datenverteilung die Clusterleistung beeinträchtigen und eine Optimierung erforderlich machen können.

HDFS speichert jede Datei als eine Folge von Blöcken, von denen jeder bis auf den letzten die gleiche Größe hat. Standardmäßig werden Blöcke dreimal repliziert, aber sowohl die Größe der Blöcke als auch die Anzahl der Replikate können auf Dateibasis konfiguriert werden. Dateien sind einmal beschreibbar und haben immer nur einen einzigen Schreiber, um Datenzugriff mit hohem Durchsatz zu ermöglichen und Datenkohärenzprobleme zu vereinfachen.

Der NameNode trifft alle Entscheidungen über die Blockreplikation basierend auf dem Heartbeat und den Blockberichten, die er von jedem DataNode im Cluster erhält. Der Heartbeat signalisiert, dass der DataNode fehlerfrei ist, und der Blockbericht enthält eine Liste aller Blöcke im DataNode.

Wenn ein neuer Block erstellt wird, platziert HDFS das erste Replikat auf dem Knoten, auf dem der Writer ausgeführt wird. Ein zweites Replikat wird auf einen zufällig ausgewählten Knoten in einem beliebigen Rackexceptdes Racks geschrieben, in das das erste Replikat geschrieben wurde. Dann wird das dritte Replikat auf eine zufällig ausgewählte Maschine in diesem zweiten Rack gelegt. Wenn in der Konfiguration mehr als der Standardwert von drei Replikaten angegeben ist, werden die verbleibenden Replikate nach dem Zufallsprinzip platziert, mit der Einschränkung, dass nicht mehr als ein Replikat auf einem Knoten und nicht mehr als zwei Replikate auf demselben Rack platziert werden.

Einschränkungen von HDFS 1.0

HDFS 1.0 etablierte Hadoop als ersten Open Source-Marktführer für die Speicherung von Big Data. Ein Teil dieses Erfolgs resultierte aus Architekturentscheidungen, durch die ein Teil der Komplexität des verteilten Speichers aus der Gleichung entfernt wurde. Diese Entscheidungen waren jedoch nicht ohne Kompromisse. Wichtige Einschränkungen der Version 1.0:

  • No Control over the Distributions of Blocks
    Das Blockreplikationsmuster von HDFS ist das Rückgrat seiner Hochverfügbarkeit. Dies kann sehr effektiv sein und macht es für Administratoren und Entwickler unnötig, sich um die Blockspeicherebene zu kümmern. Da jedoch die Speicherplatzauslastung oder die Echtzeitsituation von Knoten nicht berücksichtigt wird, müssen Clusteradministratoren möglicherweise ein Balancer-Hilfsprogramm verwenden Blöcke umverteilen.

  • The NameNode: A Single Point of Failure
    Der NameNode ist eine bedeutendere Einschränkung als die Verteilung von Blöcken und stellt einen einzelnen Fehlerpunkt dar. Wenn der Prozess oder die Maschine ausfällt, ist der gesamte Cluster nicht verfügbar, bis der NameNode-Server neu gestartet wird. Auch nach dem Neustart müssen Heartbeat-Nachrichten von jedem Knoten im Cluster empfangen werden, bevor er tatsächlich verfügbar ist. Dies verlängert den Ausfall, insbesondere bei großen Knoten Cluster.

Trotz dieser Einschränkungen war HDFS ein wichtiger Beitrag zur Arbeit mit Big Data.

MapReduce 1.0

Die zweite Ebene von Hadoop, MapReduce, ist für die Stapelverarbeitung der in HDFS gespeicherten Daten verantwortlich. Durch die Implementierung des MapReduce-Programmiermodells von Google in Hadoop können Entwickler die von HDFS bereitgestellten Ressourcen nutzen, ohne Erfahrung mit parallelen und verteilten Systemen zu benötigen.

So funktioniert MapReduce 1.0

Angenommen, wir haben eine Textsammlung und möchten wissen, wie oft jedes Wort in der Sammlung vorkommt. Der Text wird auf viele Server verteilt, sodass Mapping-Tasks auf allen Knoten im Cluster ausgeführt werden, auf denen sich Datenblöcke in der Auflistung befinden. Jeder Mapper lädt die entsprechenden Dateien, verarbeitet sie und erstellt für jedes Vorkommen ein Schlüssel-Wert-Paar.

Diese Maps enthalten nur die Daten des einzelnen Knotens. Sie müssen also gemischt werden, damit alle Werte mit demselben Schlüssel an einen Reduzierer gesendet werden können. Wenn der Reduzierer fertig ist, wird die Ausgabe auf die Festplatte des Reduzierers geschrieben. Durch dieses implizite Kommunikationsmodell müssen Hadoop-Benutzer keine Informationen explizit von einem Computer auf einen anderen verschieben.

Wir werden dies mit ein paar Sätzen veranschaulichen:

Sie verkauft Muscheln zu sechs Küsten.
Sie verkauft Muscheln sicher gut.

MAPPING         SHUFFLING           REDUCING
{she, 1}        {she, 1, 1}         {she, 2}
{sells, 1}      {sells, 1, 1}       {sells, 2}
{seashells, 1}  {seashells, 1, 1}   {seashells, 2}
{by, 1}         {by, 1}             {by, 1}
{six, 1}        {six, 1}            {six, 1}
{seashores, 1}  {seashores, 1, 1}   {seashores, 2}
{she, 1}        {sure, 1}           {sure, 1}
{sure, 1}       {well, 1}           {well, 1}
{sells}
{seashells, 1}
{well, 1}

Wenn diese Zuordnung der Reihe nach über einen großen Datensatz erfolgen würde, würde dies viel zu lange dauern, aber parallel erfolgen und dann reduziert werden, sodass sie für große Datensätze skalierbar wird.

Übergeordnete Komponenten können in den MapReduce-Layer eingefügt werden, um zusätzliche Funktionen bereitzustellen. Apache Pig bietet Entwicklern beispielsweise eine Sprache zum Schreiben von Datenanalyseprogrammen, indem die Java MapReduce-Idiome auf eine höhere Ebene abstrahiert werden, ähnlich wie SQL für relationale Datenbanken. Apache Hive unterstützt die Datenanalyse und Berichterstellung mit einer SQL-ähnlichen Schnittstelle zu HDFS. Es abstrahiert die MapReduce-Java-API-Abfragen, um Entwicklern eine umfassende Abfragefunktionalität zur Verfügung zu stellen. Viele zusätzliche Komponenten sind für Hadoop 1.x verfügbar, aber das Ökosystem wurde durch einige wichtige Einschränkungen in MapReduce eingeschränkt.

Einschränkungen von MapReduce 1

  • Tight coupling between MapReduce and HDFS
    In der 1.x-Implementierung gehen die Verantwortlichkeiten der MapReduce-Schicht über die Datenverarbeitung hinaus und umfassen die Verwaltung von Clusterressourcen. Sie sind eng mit HDFS verbunden. Dies bedeutet, dass Add-On-Entwickler für 1.x MapReduce-Programme mit mehreren Durchläufen schreiben müssen, unabhängig davon, ob dies für die Aufgabe geeignet ist oder nicht, da MapReduce die einzige Möglichkeit ist, auf das Dateisystem zuzugreifen.

  • Static Slots for Data Analysis
    Die Zuordnung und Reduzierung erfolgt auf den DataNodes. Dies ist der Schlüssel für die Arbeit mit Big Data. Auf jedem DataNode ist jedoch nur eine begrenzte statische Anzahl von Einzwecksteckplätzen verfügbar. Die Zuordnungsslots können nur zugeordnet werden, und die Reduzierungsslots können nur reduziert werden. Die Nummer ist in der Konfiguration festgelegt und kann nicht dynamisch angepasst werden. Sie sind inaktiv und werden immer dann verschwendet, wenn die Cluster-Workload nicht zur Konfiguration passt. Die starre Slot-Zuweisung erschwert es auch Nicht-MapReduce-Anwendungen, einen angemessenen Zeitplan zu erstellen.

  • The JobTracker: A Single Point of Failure
    Hadoop-Anwendungen senden MapReduce-Aufgaben an den JobTracker, der diese Aufgaben wiederum an bestimmte Clusterknoten verteilt, indem er einen TaskTracker entweder mit verfügbaren Slots oder geografisch in der Nähe der Daten lokalisiert. Der TaskTracker benachrichtigt den JobTracker, wenn eine Aufgabe fehlschlägt. Der JobTracker kann den Job erneut senden, den Datensatz als von der zukünftigen Verarbeitung ausgeschlossen markieren oder möglicherweise einen unzuverlässigen TaskTracker auf die schwarze Liste setzen. Sollte der JobTracker jedoch aus irgendeinem Grund ausfallen, werden alle MapReduce-Tasks angehalten.

Verbesserungen in Hadoop 2.x

Der im Dezember 2011 veröffentlichte 2.x-Zweig von Hadoop führte vier wesentliche Verbesserungen ein und korrigierte die wichtigsten Einschränkungen von Version 1. Mit Hadoop 2.0 wurde der HDFS-Verbund eingeführt, durch den der NameNode sowohl als Leistungseinschränkung als auch als Single Point of Failure entfernt wurde. Darüber hinaus wurde MapReduce durch die Einführung von YARN (Yet Another Resource Negotiator) von HDFS entkoppelt, wodurch das Ökosystem der Add-On-Produkte geöffnet wurde, indem Verarbeitungsmodelle ohne MapReduce mit HDFS interagieren und die MapReduce-Ebene umgehen konnten.

1 - HDFS Federation

Durch den HDFS-Verbund wird eine klare Trennung zwischen Namespace und Speicher eingeführt, sodass mehrere Namespaces in einem Cluster möglich sind. Dies bietet einige wichtige Verbesserungen:

  • Namespace scalability Die Möglichkeit, einem Cluster weitere NameNodes hinzuzufügen, ermöglicht eine horizontale Skalierung. Große Cluster oder Cluster mit vielen kleinen Dateien können vom Hinzufügen zusätzlicher NameNodes profitieren.

  • Performance gains Der einzelne NameNode des 1.x-beschränkten Lese- / Schreibdurchsatzes des Dateisystems. Mehrere NameNodes verringern diese Einschränkung für Dateisystemoperationen.

  • Isolation between namespaces In Umgebungen mit mehreren Mandanten mit einem einzigen NameNode konnte ein verrauschter Nachbar jeden anderen Benutzer im System beeinflussen. Mit der Föderation wurde es möglich, Systembewohner zu isolieren.

So funktioniert HDFS Federation

Federated NameNodes verwalten den Namespace des Dateisystems. Sie arbeiten unabhängig voneinander und sind nicht aufeinander abgestimmt. Stattdessen registrieren sich die DataNodes im Cluster bei jedem NameNode, senden Heartbeats und blockieren Berichte und verarbeiten eingehende Befehle vom NameNode.

Blöcke werden mit der gleichen zufälligen Replikation wie in Hadoop 1.x über den gemeinsamen Speicher verteilt. Alle Blöcke, die zu einem einzelnen Namespace gehören, werden als Blockpool bezeichnet. Solche Pools werden unabhängig voneinander verwaltet, sodass ein Namespace Block-IDs für neue Blöcke ohne Koordination mit anderen Namespaces generieren kann. Die Kombination aus einem Namespace und seinem Blockpool wird als Namespace-Volume bezeichnet und bildet eine eigenständige Einheit. Wenn also einer der föderierten NameNodes gelöscht wird, wird auch sein Blockpool gelöscht.

Neben der durch die Einführung des NameNode-Verbunds verbesserten Skalierbarkeit, Leistung und Isolation führte Hadoop 2.0 auch eine hohe Verfügbarkeit für die NameNodes ein.

2 - NameNode High Availability

Wenn vor Hadoop 2.0 der NameNode ausfiel, war der gesamte Cluster nicht verfügbar, bis er neu gestartet oder auf einem neuen Computer gestartet wurde. Durch Upgrades der Software oder Hardware des NameNode wurden ebenfalls Ausfallzeitfenster erzeugt. Um dies zu verhindern, hat Hadoop 2.0 eine Aktiv / Passiv-Konfiguration implementiert, um ein schnelles Failover zu ermöglichen.

Wie funktioniert NameNode HA?

Zwei separate Computer sind als NameNodes konfiguriert, einer aktiv und der andere im Standby-Modus. Sie teilen sich den Zugriff auf ein gemeinsames Verzeichnis auf einem gemeinsam genutzten Speichergerät. Wenn der aktive Knoten eine Änderung vornimmt, zeichnet er die Änderung in der Protokolldatei auf, die in diesem gemeinsamen Verzeichnis gespeichert ist. Der Standby-Knoten überwacht das Verzeichnis ständig und wendet diese Änderungen bei Änderungen auf seinen eigenen Namespace an. Wenn der aktive Knoten ausfällt, liest der Standby-Modus nicht übernommene Änderungen aus dem freigegebenen Speicher und stuft sich dann selbst als aktiv auf.

3 - GARNE

Hadoop 2.0 entkoppelte MapReduce von HDFS. Die Verwaltung von Workloads, Mandantenfähigkeit, Sicherheitskontrollen und Hochverfügbarkeitsfunktionen wurden in YARN (Yet Another Resource Negotiator) ausgegliedert. YARN ist im Wesentlichen ein großes verteiltes Betriebssystem für Big-Data-Anwendungen, das Hadoop sowohl für MapReduce als auch für andere Anwendungen geeignet macht, die nicht auf den Abschluss der Stapelverarbeitung warten können. Durch YARN musste das häufig I / O-intensive MapReduce-Framework mit hoher Latenz nicht mehr durchgearbeitet werden, sodass neue Verarbeitungsmodelle mit HDFS verwendet werden konnten. Die entkoppelte MapReduce-Komponente blieb ein benutzerbezogenes Framework, das ausschließlich der Ausführung der beabsichtigten Aufgabe gewidmet war: der Stapelverarbeitung.

Im Folgenden sind einige der Verarbeitungsmodelle aufgeführt, die Benutzern von Hadoop 2.x zur Verfügung stehen:

  • Batch Processing
    Stapelverarbeitungssysteme sind nicht interaktiv und haben vor Beginn der Verarbeitung Zugriff auf alle Daten. Außerdem müssen die Fragen, die während der Verarbeitung untersucht werden, bekannt sein, bevor die Verarbeitung beginnt. Die Stapelverarbeitung weist in der Regel eine hohe Latenz auf, wobei die Geschwindigkeit von Big-Data-Stapeljobs im Allgemeinen in Minuten oder mehr gemessen wird.

    Where batch processing shines: Indizieren von Daten, Crawlen des Webs und Datenverarbeitung

    Some programs that can do this for Hadoop: MapReduce, Tez, Spark, Hive und Flink

  • Interactive Processing
    Interaktive Verarbeitungssysteme werden benötigt, wenn Sie nicht alle Ihre Fragen im Voraus kennen. Stattdessen interpretiert ein Benutzer die Antwort auf eine Abfrage und formuliert dann eine neue Frage. Um diese Art der Untersuchung zu unterstützen, muss die Antwort viel schneller als bei einem typischen MapReduce-Job zurückgegeben werden.

    Where interactive processing shines: Die interaktive Verarbeitung unterstützt die Datenexploration.

    Some programs that do this for Hadoop: Impala, Drill, HAWQ, Presto, Vortex und Vertica SQL, Tez

  • Stream Processing
    Stream-Verarbeitungssysteme verwenden große Mengen diskreter Datenpunkte und führen eine kontinuierliche Abfrage aus, um nahezu Echtzeitergebnisse zu erzielen, wenn neue Daten im System eintreffen.

    Where stream processing shines: Immer wenn bereits digitale Daten kontinuierlich generiert werden. Beispiele hierfür sind das Überwachen der öffentlichen Meinung zu einem Problem, Ereignis oder Produkt in sozialen Medien, um neu auftretende Trends zu verfolgen oder Serverprotokolle zu überwachen.

    Some programs that do this for Hadoop: Funkenstrom, Sturm

  • Graph Processing
    Graph-Algorithmen erfordern normalerweise die Kommunikation zwischen Scheitelpunkten oder Sprüngen, um eine Kante von einem Scheitelpunkt zu einem anderen zu verschieben, was beim Durchlaufen von 1.x MapReduce viel unnötigen Overhead erfordert.

    Where graphing shines: Diagramme sind ideal, um die nichtlinearen Beziehungen zwischen Dingen darzustellen: Facebooks Freundschaftsbeziehungen, Twitter-Follower, verteilte Grafikdatenbanken wie im Kern von Social-Media-Websites.

    Some programs that do this for Hadoop: Apache Giraph, GraphX ​​von Apache Spark, Hama, Titan

Dies sind nur einige der alternativen Verarbeitungsmodelle und -werkzeuge. Eine umfassende Anleitung zum Open-Source-Hadoop-Ökosystem, einschließlich anderer Verarbeitungsmodelle als MapReduce, finden Sie inThe Hadoop Ecosystem Table

4 - Hochverfügbarkeit von ResourceManager

Bei der ersten Veröffentlichung hatte YARN einen eigenen Engpass: den ResourceManager. Der einzige JobTracker in MapReduce 1.x übernahm die Ressourcenverwaltung, die Auftragsplanung und die Auftragsüberwachung. Die frühen Versionen von YARN haben dies verbessert, indem die Zuständigkeiten zwischen einem globalen ResourceManager und einem anwendungsspezifischen ApplicationMaster aufgeteilt wurden. Der ResourceManager verfolgte Clusterressourcen und plante Anwendungen wie MapReduce Jobs, war jedoch bis zur Version 2.4, die eine Active / Standby-Architektur einführte, eine einzige Fehlerquelle.

In Hadoop 2.4 wurde der einzelne Ressourcenmanager durch einen einzelnenactiveResourceManager und einen oder mehrere Standbys ersetzt. Bei einem Ausfall des aktiven ResourceManager können Administratoren den Übergang von Standby zu Aktiv manuell auslösen. Sie können auch ein automatisches Failover aktivieren, indem Sie Apache Zookeeper zu ihrem Stapel hinzufügen. Zu den anderen Aufgaben von Zookeeper gehört die Verfolgung des Status von YARN-Knoten. Im Fehlerfall wird automatisch der Übergang in den Standby-Modus ausgelöst.

Hadoop 3.x

Zum Zeitpunkt dieses Schreibens ist der Hadoop 3.0.0-alpha1 zum Testen verfügbar. Der 3.x-Zweig soll Verbesserungen wie die HDFS-Löschcodierung zur Einsparung von Speicherplatz, Verbesserungen des YARN-Zeitplandienstes zur Verbesserung der Skalierbarkeit, Zuverlässigkeit und Benutzerfreundlichkeit, Unterstützung für mehr als zwei NameNodes und Intra-Datanode-Balancer und mehr bieten. Weitere Informationen finden Sie in der Übersicht übermajor changes.

Fazit

In diesem Artikel haben wir uns mit der Entwicklung von Hadoop befasst, um den Anforderungen immer größerer Datensätze gerecht zu werden. Wenn Sie mit Hadoop experimentieren möchten, sollten Sie sichInstalling Hadoop in Stand-Alone Mode on Ubuntu 16.04 ansehen. Weitere Informationen zu Big-Data-Konzepten im Allgemeinen finden Sie unterAn Introduction to Big Data Concepts and Terminology.