Worum handelt es sich bei Apache Hadoop in Azure HDInsight?What is Apache Hadoop in Azure HDInsight?

Apache Hadoop war ursprünglich ein Open Source-Framework für die verteilte Verarbeitung und Analyse umfangreicher Datasets in Clustern.Apache Hadoop was the original open-source framework for distributed processing and analysis of big data sets on clusters. Das Hadoop-Ökosystem umfasst verwandte Software und Hilfsprogramme, einschließlich Apache Hive, Apache HBase, Spark, Kafka und viele andere.The Hadoop ecosystem includes related software and utilities, including Apache Hive, Apache HBase, Spark, Kafka, and many others.

Azure HDInsight ist ein umfassender, vollständig verwalteter Open-Source-Analysedienst in der Cloud für Unternehmen.Azure HDInsight is a fully managed, full-spectrum, open-source analytics service in the cloud for enterprises. Der Apache Hadoop-Clustertyp in Azure HDInsight ermöglicht Ihnen die Verwendung von Hadoop Distributed File System, der YARN-Ressourcenverwaltung und eines einfachen MapReduce-Programmiermodells zum parallelen Verarbeiten und Analysieren von Batchdaten.The Apache Hadoop cluster type in Azure HDInsight allows you to use HDFS, YARN resource management, and a simple MapReduce programming model to process and analyze batch data in parallel.

Informationen zu verfügbare Komponenten des Hadoop-Technologiestapels für HDInsight finden Sie unter Welche Hadoop-Komponenten und -Versionen sind in HDInsight verfügbar?.To see available Hadoop technology stack components on HDInsight, see Components and versions available with HDInsight. Weitere Informationen zu Hadoop in HDInsight finden Sie auf der Seite mit Azure-Features für HDInsight.To read more about Hadoop in HDInsight, see the Azure features page for HDInsight.

Was ist MapReduce?What is MapReduce

Apache Hadoop MapReduce ist ein Softwareframework zum Schreiben von Aufträgen, die sehr große Datenmengen verarbeiten.Apache Hadoop MapReduce is a software framework for writing jobs that process vast amounts of data. Eingabedaten werden in unabhängigen Blöcke aufgeteilt.Input data is split into independent chunks. Jeder Block wird in den Knoten im Cluster parallel verarbeitet.Each chunk is processed in parallel across the nodes in your cluster. Ein MapReduce-Auftrag besteht aus zwei Funktionen:A MapReduce job consists of two functions:

  • Mapper: Verarbeitet Eingabedaten, analysiert sie (in der Regel mit Filter- und Sortiervorgängen) und gibt Tupel (Schlüssel-Wert-Paare) ausMapper: Consumes input data, analyzes it (usually with filter and sorting operations), and emits tuples (key-value pairs)

  • Reducer: Verarbeitet Tupel, die vom Mapper ausgegeben wurden, und führt einen Zusammenfassungsvorgang aus, der kleinere, kombinierte Ergebnisse aus den Mapper-Daten erstelltReducer: Consumes tuples emitted by the Mapper and performs a summary operation that creates a smaller, combined result from the Mapper data

Ein Beispiel für einen grundlegenden MapReduce-Auftrag zum Zählen von Wörtern wird im folgenden Diagramm veranschaulicht:A basic word count MapReduce job example is illustrated in the following diagram:

HDI.Wortzähldiagramm

Dieses Auftrag gibt die Anzahl der Vorkommen jedes Worts im Text aus.The output of this job is a count of how many times each word occurred in the text.

  • Der Mapper verwendet die einzelnen Zeilen des Eingabetexts als Eingabe und unterteilt diese in Wörter.The mapper takes each line from the input text as an input and breaks it into words. Er gibt bei jedem Vorkommen eines Worts ein Schlüssel-Wert-Paar des Worts gefolgt von 1 aus.It emits a key/value pair each time a word occurs of the word is followed by a 1. Die Ausgabe wird sortiert, bevor sie an den Reducer gesendet wird.The output is sorted before sending it to reducer.
  • Der Reducer addiert die einzelnen Zählwerte jedes Worts und gibt ein einziges Schlüssel-Wert-Paar aus, das aus dem Wort gefolgt von der Summe seiner Vorkommen besteht.The reducer sums these individual counts for each word and emits a single key/value pair that contains the word followed by the sum of its occurrences.

MapReduce kann in verschiedenen Sprachen implementiert werden.MapReduce can be implemented in various languages. Java ist die am häufigsten verwendete Implementierung und wird in diesem Dokument zu Demonstrationszwecken verwendet.Java is the most common implementation, and is used for demonstration purposes in this document.

EntwicklungssprachenDevelopment languages

Sprachen oder Frameworks auf der Grundlage von Java und der Java Virtual Machine können direkt als MapReduce-Auftrag ausgeführt werden.Languages or frameworks that are based on Java and the Java Virtual Machine can be ran directly as a MapReduce job. Das in diesem Artikel verwendete Beispiel ist eine Java-MapReduce-Anwendung.The example used in this document is a Java MapReduce application. Nicht Java-basierte Sprachen (etwa C# oder Python) bzw. eigenständige ausführbare Dateien müssen Hadoop-Datenströme verwenden.Non-Java languages, such as C#, Python, or standalone executables, must use Hadoop streaming.

Hadoop-Datenströme kommunizieren über STDIN und STDOUT mit Mapper und Reducer.Hadoop streaming communicates with the mapper and reducer over STDIN and STDOUT. Mapper und Reducer lesen zeilenweise Daten aus STDIN, und schreiben die Ausgabe in STDOUT.The mapper and reducer read data a line at a time from STDIN, and write the output to STDOUT. Jede vom Mapper und vom Reducer gelesene oder ausgegebene Zeile muss als Schlüssel-Wert-Paar mit Tabstopptrennzeichen formatiert sein:Each line read or emitted by the mapper and reducer must be in the format of a key/value pair, delimited by a tab character:

[key]/t[value]

Weitere Informationen finden Sie unter Hadoop Streaming(in englischer Sprache).For more information, see Hadoop Streaming.

Beispiele für die Verwendung von Hadoop-Datenströmen mit HDInsight finden Sie in dem folgenden Artikel:For examples of using Hadoop streaming with HDInsight, see the following document:

Nächste SchritteNext steps