Vad är Apache Hadoop i Azure HDInsight?What is Apache Hadoop in Azure HDInsight?

Apache Hadoop refererar till ett ekosystem av program med öppen källkod som är ett ramverk för distribuerad bearbetning och analys av stordata-uppsättningar i kluster.Apache Hadoop was the original open-source framework for distributed processing and analysis of big data sets on clusters. Hadoop-eko systemet innehåller relaterad program vara och verktyg, inklusive Apache Hive, Apache HBase, Spark, Kafka och många andra.The Hadoop ecosystem includes related software and utilities, including Apache Hive, Apache HBase, Spark, Kafka, and many others.

Azure HDInsight är en fullständigt hanterad analys tjänst med full spektrum och öppen källkod i molnet för företag.Azure HDInsight is a fully managed, full-spectrum, open-source analytics service in the cloud for enterprises. Med kluster typen Apache Hadoop i Azure HDInsight kan du använda HDFS, garn resurs hantering och en enkel MapReduce programmerings modell för att bearbeta och analysera batch-data parallellt.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.

För att se tillgängliga stack-komponenter för Hadoop Technology i HDInsight, se komponenter och versioner som är tillgängliga med HDInsight.To see available Hadoop technology stack components on HDInsight, see Components and versions available with HDInsight. Mer information om Hadoop i HDInsight finns på sidan om Azure-funktioner för HDInsight.To read more about Hadoop in HDInsight, see the Azure features page for HDInsight.

Vad är MapReduceWhat is MapReduce

Apache Hadoop MapReduce är ett ramverk för program vara som används för att skriva jobb som bearbetar stora mängder data.Apache Hadoop MapReduce is a software framework for writing jobs that process vast amounts of data. Indata delas upp i oberoende segment.Input data is split into independent chunks. Varje segment bearbetas parallellt över noderna i klustret.Each chunk is processed in parallel across the nodes in your cluster. Ett MapReduce-jobb består av två funktioner:A MapReduce job consists of two functions:

  • Mapper: Använder indata, analyserar dem (vanligt vis med filter-och sorterings åtgärder) och genererar tupler (nyckel/värde-par)Mapper: Consumes input data, analyzes it (usually with filter and sorting operations), and emits tuples (key-value pairs)

  • Minskning: Använder tupel som genereras av mappningen och utför en sammanfattnings åtgärd som skapar ett mindre kombinerat resultat från Mapper-dataReducer: Consumes tuples emitted by the Mapper and performs a summary operation that creates a smaller, combined result from the Mapper data

Ett exempel på en grundläggande ord räkning för MapReduce-jobb illustreras i följande diagram:A basic word count MapReduce job example is illustrated in the following diagram:

HDI.WordCountDiagram

Utdata för det här jobbet är antalet hur många gånger varje ord har inträffat i texten.The output of this job is a count of how many times each word occurred in the text.

  • Mapper tar varje rad från inmatade text som inmatade och delar upp den i ord.The mapper takes each line from the input text as an input and breaks it into words. Den genererar ett nyckel/värde-par varje gången ett ord inträffar för ordet följt av 1.It emits a key/value pair each time a word occurs of the word is followed by a 1. Utdata sorteras innan de skickas till minsknings verktyget.The output is sorted before sending it to reducer.
  • Minskningen summerar dessa enskilda antal för varje ord och avger ett nyckel/värde-par som innehåller ordet följt av summan av dess förekomster.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 kan implementeras på olika språk.MapReduce can be implemented in various languages. Java är den vanligaste implementeringen och används i demonstrations syfte i det här dokumentet.Java is the most common implementation, and is used for demonstration purposes in this document.

Utvecklings språkDevelopment languages

Språk eller ramverk som baseras på Java och Java Virtual Machine kan köras direkt som ett MapReduce-jobb.Languages or frameworks that are based on Java and the Java Virtual Machine can be ran directly as a MapReduce job. Exemplet som används i det här dokumentet är ett Java MapReduce-program.The example used in this document is a Java MapReduce application. Andra språk än Java, till exempel C#python eller fristående körbara filer, måste använda Hadoop-direktuppspelning.Non-Java languages, such as C#, Python, or standalone executables, must use Hadoop streaming.

Hadoop-direktuppspelning kommunicerar med mapper och minskar för STDIN och STDOUT.Hadoop streaming communicates with the mapper and reducer over STDIN and STDOUT. Mapper och dereducerar Läs data en rad i taget från STDIN och skriver utdata till STDOUT.The mapper and reducer read data a line at a time from STDIN, and write the output to STDOUT. Varje rad som läses eller genereras av mapper och-minskningen måste vara i formatet för ett nyckel/värde-par, avgränsade med ett tabbtecken: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]

Mer information finns i Hadoop streaming.For more information, see Hadoop Streaming.

Exempel på användning av Hadoop streaming med HDInsight finns i följande dokument:For examples of using Hadoop streaming with HDInsight, see the following document:

Nästa stegNext steps