Qu’est-ce qu’Apache Hadoop dans Azure HDInsight ?What is Apache Hadoop in Azure HDInsight?

Apache Hadoop était l’infrastructure open source d’origine de traitement et d’analyse distribués des jeux de données volumineuses sur des clusters.Apache Hadoop was the original open-source framework for distributed processing and analysis of big data sets on clusters. L’écosystème Hadoop comprend des logiciels et des utilitaires associés, notamment Apache Hive, Apache HBase, Spark, Kafka et bien d’autres encore.The Hadoop ecosystem includes related software and utilities, including Apache Hive, Apache HBase, Spark, Kafka, and many others.

Azure HDInsight est un service cloud d’analytique complètement managé, exhaustif et open source pour les entreprises.Azure HDInsight is a fully managed, full-spectrum, open-source analytics service in the cloud for enterprises. Le type de cluster Apache Hadoop dans Azure HDInsight vous permet d’utiliser HDFS, la gestion de ressources YARN et un modèle de programmation MapReduce simple pour traiter et analyser des lots de données en parallèle.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.

Pour voir les piles de composants de technologie Hadoop disponibles sur HDInsight, consultez Composants et versions disponibles avec HDInsight.To see available Hadoop technology stack components on HDInsight, see Components and versions available with HDInsight. Pour plus d’informations sur Hadoop dans HDInsight, consultez la rubrique Page de fonctionnalités Azure pour HDInsight.To read more about Hadoop in HDInsight, see the Azure features page for HDInsight.

Qu’est-ce que MapReduce ?What is MapReduce

Apache Hadoop MapReduce est une infrastructure logicielle qui permet d’écrire des tâches traitant d’importantes quantités de données.Apache Hadoop MapReduce is a software framework for writing jobs that process vast amounts of data. Les données d’entrée sont fractionnées en blocs indépendants.Input data is split into independent chunks. Chaque bloc est traité en parallèle sur les nœuds de votre cluster.Each chunk is processed in parallel across the nodes in your cluster. Une tâche MapReduce se compose de deux fonctions :A MapReduce job consists of two functions:

  • Mappeur : il consomme les données d’entrée, les analyse (généralement avec les opérations de tri et de filtre) et émet des tuples (paires clé-valeur).Mapper: Consumes input data, analyzes it (usually with filter and sorting operations), and emits tuples (key-value pairs)

  • Raccord de réduction : il consomme les tuples émis par le Mappeur et effectue une opération de synthèse qui crée un résultat plus petit, combiné à partir des données du Mappeur.Reducer: Consumes tuples emitted by the Mapper and performs a summary operation that creates a smaller, combined result from the Mapper data

Un exemple de tâche MapReduce de comptage de mots de base est illustré dans le diagramme suivant :A basic word count MapReduce job example is illustrated in the following diagram:

HDI.WordCountDiagram

Le résultat de ce travail indique le nombre d’occurrences de chaque mot dans le texte.The output of this job is a count of how many times each word occurred in the text.

  • Le mappeur prend chaque ligne du texte saisi en tant qu'entrée, et la divise en mots.The mapper takes each line from the input text as an input and breaks it into words. Il émet une paire clé/valeur pour chaque occurrence de mot ou si le mot est suivi d’un 1.It emits a key/value pair each time a word occurs of the word is followed by a 1. Le résultat est trié avant d'être envoyé au raccord de réduction.The output is sorted before sending it to reducer.
  • Ce dernier calcule la somme du compte de mots, puis émet une seule paire clé/valeur contenant le mot défini, suivi par la somme de ses occurrences.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 peut être implémenté dans plusieurs langues.MapReduce can be implemented in various languages. Java est l'implémentation la plus courante. Ce langage est utilisé à titre d’exemple dans ce document.Java is the most common implementation, and is used for demonstration purposes in this document.

Langues de développementDevelopment languages

Les langages ou infrastructures basés sur Java et la Machine virtuelle Java peuvent être exécutés directement comme une tâche MapReduce.Languages or frameworks that are based on Java and the Java Virtual Machine can be ran directly as a MapReduce job. L’exemple utilisé dans ce document est une application Java MapReduce.The example used in this document is a Java MapReduce application. Les langages autres que Java, comme C#, Python ou des exécutables autonomes, doivent utiliser la diffusion en continu Hadoop.Non-Java languages, such as C#, Python, or standalone executables, must use Hadoop streaming.

La diffusion en continu Hadoop communique avec le mappeur et le raccord de réduction via STDIN et STDOUT.Hadoop streaming communicates with the mapper and reducer over STDIN and STDOUT. Le mappeur et le raccord de réduction lisent les données ligne par ligne depuis STDIN et écrivent la sortie dans STDOUT.The mapper and reducer read data a line at a time from STDIN, and write the output to STDOUT. Chaque ligne lue ou émise par le mappeur et le raccord de réduction doit être au format d’une paire clé / valeur, délimitée par un caractère de tabulation :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]

Pour plus d’informations, consultez Diffusion en continu Hadoop.For more information, see Hadoop Streaming.

Pour obtenir des exemples d’utilisation de diffusion en continu Hadoop avec HDInsight, consultez le document suivant :For examples of using Hadoop streaming with HDInsight, see the following document:

Étapes suivantesNext steps