Mi Apache Hadoop az Azure HDInsight?What is Apache Hadoop in Azure HDInsight?

Az Apache Hadoop volt a big data jellegű adatkészletek fürtökön végzett elosztott feldolgozásának, tárolásának és elemzésének eredeti nyílt forráskódú keretrendszere.Apache Hadoop was the original open-source framework for distributed processing and analysis of big data sets on clusters. A Hadoop-ökoszisztéma olyan kapcsolódó szoftvereket és segédprogramokat tartalmaz, mint például az Apache Hive, az Apache HBase, a Spark, a Kafka és sok más.The Hadoop ecosystem includes related software and utilities, including Apache Hive, Apache HBase, Spark, Kafka, and many others.

Az Azure HDInsight egy teljes körűen felügyelt, teljes spektrumú, nyílt forráskódú elemzési szolgáltatás a felhőben a vállalatok számára.Azure HDInsight is a fully managed, full-spectrum, open-source analytics service in the cloud for enterprises. Az Azure HDInsight-beli Apache Hadoop-fürt típusa lehetővé teszi a HDFS, a fonal-erőforrások kezelését, valamint egy egyszerű MapReduce programozási modellt, amellyel párhuzamosan dolgozhat és elemezheti a Batch-adatokat.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.

A HDInsighton elérhető Hadoop-technológiák összetevőinek megtekintése: A HDInsighttal elérhető összetevők és verziók.To see available Hadoop technology stack components on HDInsight, see Components and versions available with HDInsight. További tudnivalók a HDInsightban használt Hadoopról az Azure-szolgáltatások HDInsightra vonatkozó oldalán olvashatók.To read more about Hadoop in HDInsight, see the Azure features page for HDInsight.

Mi az a MapReduce?What is MapReduce

Apache Hadoop MapReduce olyan szoftver-keretrendszer, amely nagy mennyiségű adat feldolgozására szolgáló feladatokat ír.Apache Hadoop MapReduce is a software framework for writing jobs that process vast amounts of data. A bemeneti adatok felosztása független adattömbökbe történik.Input data is split into independent chunks. Minden adathalmaz feldolgozása párhuzamosan történik a fürt csomópontjai között.Each chunk is processed in parallel across the nodes in your cluster. A MapReduce-feladatok két függvényből állnak:A MapReduce job consists of two functions:

  • Mapper: a bemeneti adatokat használja, elemzi (általában szűrési és rendezési műveletekkel), és rekordok (kulcs-érték párok) bocsát ki.Mapper: Consumes input data, analyzes it (usually with filter and sorting operations), and emits tuples (key-value pairs)

  • Szűkítő: felhasználja a Mapper által kibocsátott rekordok, és olyan összegző műveletet hajt végre, amely létrehoz egy kisebb, kombinált eredményt a Mapper adataiból.Reducer: Consumes tuples emitted by the Mapper and performs a summary operation that creates a smaller, combined result from the Mapper data

A következő ábrán látható egy alapszintű Word Count MapReduce-feladat példája:A basic word count MapReduce job example is illustrated in the following diagram:

HDI. WordCountDiagram

Ennek a feladatoknak a kimenete annak a száma, hogy az egyes szavak hányszor fordultak elő a szövegben.The output of this job is a count of how many times each word occurred in the text.

  • A Mapper a bemeneti szöveg minden sorát bemenetként veszi át, és megszakítja a szavakat.The mapper takes each line from the input text as an input and breaks it into words. Egy kulcs/érték párokat bocsát ki, minden alkalommal, amikor egy szó bekövetkezik a szót, majd egy 1.It emits a key/value pair each time a word occurs of the word is followed by a 1. A kimenet rendezése megtörténik, mielőtt elküldi azt a redukáló felé.The output is sorted before sending it to reducer.
  • A szűkítő összesíti ezeket az egyes szavakat, és egyetlen kulcs/érték párokat bocsát ki, amely a szót az előfordulások összege követve tartalmazza.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.

A MapReduce több nyelven is megvalósítható.MapReduce can be implemented in various languages. A Java a leggyakoribb implementáció, és a jelen dokumentumban bemutató célokra szolgál.Java is the most common implementation, and is used for demonstration purposes in this document.

Fejlesztési nyelvekDevelopment languages

A Java és a Java virtuális gép alapú nyelvek vagy keretrendszerek közvetlenül MapReduce-feladatokként futtathatók.Languages or frameworks that are based on Java and the Java Virtual Machine can be ran directly as a MapReduce job. A dokumentumban használt példa egy Java MapReduce alkalmazás.The example used in this document is a Java MapReduce application. A nem Java nyelveken, például a C#, a Python vagy az önálló végrehajtható fájlok esetében a Hadoop streaminghasználatát kell használnia.Non-Java languages, such as C#, Python, or standalone executables, must use Hadoop streaming.

A Hadoop stream a leképező és a redukáló adatátvitelt az STDIN és az STDOUT fölé továbbítja.Hadoop streaming communicates with the mapper and reducer over STDIN and STDOUT. A leképező és a redukáló adatokat tartalmazó sort olvas az STDIN-ből, és a kimenetet az STDOUT értékre írja.The mapper and reducer read data a line at a time from STDIN, and write the output to STDOUT. A leképező és a szűkítő által beolvasott vagy kibocsátott soroknak a TAB karakterrel tagolt kulcs/érték párok formátumában kell szerepelniük: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]

További információ: Hadoop streaming.For more information, see Hadoop Streaming.

Az Hadoop streaming HDInsight-vel való használatát bemutató példákért tekintse meg a következő dokumentumot:For examples of using Hadoop streaming with HDInsight, see the following document:

További lépésekNext steps