How to Write MapReduce-Anwendungen

Die MapReduce-API ist in Java geschrieben, so MapReduce-Anwendungen in erster Linie Java-basiert sind. Die folgende Liste gibt die Komponenten eines MapReduce-Anwendung, die Sie entwickeln können:

  • Driver (obligatorisch): Dies ist die Anwendung Shell, die vom Client aufgerufen wird. Er konfiguriert die MapReduce-Klasse (die Sie nicht anpassen) und legt ihn auf den Resource Manager (oder Jobtracker wenn Sie mit Hadoop 1).

  • Klasse (obligatorisch): Die Klasse, die Sie Bedarf implementieren die Formate der Schlüssel / Wert-Paare, die Ein- und Ausgabe zu definieren, wie Sie jeden Datensatz verarbeiten. Diese Klasse hat nur eine einzige Methode, das ist, wo Sie Code wie jeder Datensatz verarbeitet werden und welche Schlüssel / Wert ausgegeben werden soll. Zur Ausgabe von Schlüssel / Wert-Paare aus der Mapper Aufgabe, schreiben sie auf eine Instanz der Klasse.

  • Klasse (optional): Der Druckminderer ist optional für Karten nur Anwendungen, wo die Reduzierung der Phase ist nicht erforderlich.

  • Klasse (optional): Ein Kombinator kann oft als Reduktionsmittel definiert werden, aber in einigen Fällen muss es anders zu sein. (Denken Sie daran, zum Beispiel, dass ein Reduktionsmehrmals auf einem Datensatz zu laufen, ohne die Ergebnisse mutiert nicht in der Lage sein kann.)

  • Klasse (optional): Passen Sie die Standardpartitionierungs spezielle Aufgaben auszuführen, wie eine sekundäre Sortier auf die Werte für jeden Schlüssel oder für seltene Fälle, in denen spärliche Daten und unausgewogene Ausgabedateien von den Mapper Aufgaben.

  • andclasses (optional): Hadoop hat einige Standard-Datenformate (beispielsweise Textdateien, Sequenz-Dateien und Datenbanken), die für viele Anwendungsfälle geeignet sind. Für speziell formatierte Daten, können Sie Ihre eigenen Klassen zum Lesen und Schreiben von Daten Implementierung stark Ihr Mapper und Minderer Code vereinfachen.

Aus dem Fahrer, können Sie die MapReduce-API verwenden, die Factory-Methoden umfasst Instanzen aller Komponenten in der vorhergehenden Liste zu erstellen. (Falls Du bist kein Java Person, ein Factory-Methode ist ein Werkzeug zum Erstellen von Objekten.)

Eine generische API namens Hadoop Streaming können Sie anderen Programmiersprachen verwenden (am häufigsten, C, Python und Perl). Obwohl diese API Organisationen mit Nicht-Java-Fähigkeiten ermöglicht MapReduce-Code zu schreiben, hat mit ihm einige Nachteile.

Wegen der zusätzlichen Abstraktionsschichten, die diese Streaming-Code zu gehen, um durch muss funktionieren, gibt es eine Performance-Einbußen und erhöhte Speichernutzung. Außerdem können Sie Mapper und Minderer funktioniert nur mit Hadoop Streaming codieren. Nehmen Sie Leser und Autoren, sowie alle Ihre Partitionierern, müssen in Java geschrieben werden.

Eine direkte Folge - und zusätzlicher Nachteil - der nicht in der Lage Rekord Leser und Autoren zu gestalten ist, dass Hadoop Streaming-Anwendungen sind gut nur textbasierte Daten zu verarbeiten geeignet.

Menü