O que é Apache Hadoop em Azure HDInsight?What is Apache Hadoop in Azure HDInsight?

O Apache Hadoop era a arquitetura de código aberto original para processamento distribuído e análise de conjuntos de macrodados em clusters.Apache Hadoop was the original open-source framework for distributed processing and analysis of big data sets on clusters. O ecossistema Hadoop inclui software e utilitários relacionados, incluindo Apache Hive, Apache HBase, Spark, Kafka, e muitos outros.The Hadoop ecosystem includes related software and utilities, including Apache Hive, Apache HBase, Spark, Kafka, and many others.

Azure HDInsight é um serviço de análise totalmente gerido, de espectro completo e de código aberto na nuvem para empresas.Azure HDInsight is a fully managed, full-spectrum, open-source analytics service in the cloud for enterprises. O tipo de cluster Apache Hadoop em Azure HDInsight permite-lhe utilizar HDFS, gestão de recursos YARN e um modelo de programação mapReduce simples para processar e analisar dados de lote em paralelo.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.

Para ver os componentes da pilha tecnológica do Hadoop disponíveis no HDInsight, veja Componentes e versões disponíveis com o HDInsight.To see available Hadoop technology stack components on HDInsight, see Components and versions available with HDInsight. Para ler mais sobre o Hadoop no HDInsight, veja a página de funcionalidades do Azure para o HDInsight.To read more about Hadoop in HDInsight, see the Azure features page for HDInsight.

O que é MapReduceWhat is MapReduce

Apache Hadoop MapReduce é um quadro de software para escrever trabalhos que processam grandes quantidades de dados.Apache Hadoop MapReduce is a software framework for writing jobs that process vast amounts of data. Os dados de entrada são divididos em pedaços independentes.Input data is split into independent chunks. Cada pedaço é processado em paralelo através dos nós do seu aglomerado.Each chunk is processed in parallel across the nodes in your cluster. Um trabalho mapreduce consiste em duas funções:A MapReduce job consists of two functions:

  • Mapper: Consome dados de entrada, analisa-os (geralmente com operações de filtragem e triagem) e emite tuples (pares de valores-chave)Mapper: Consumes input data, analyzes it (usually with filter and sorting operations), and emits tuples (key-value pairs)

  • Redutor: Consome tuples emitidos pelo Mapper e executa uma operação sumária que cria um resultado mais pequeno e combinado a partir dos dados do MapperReducer: Consumes tuples emitted by the Mapper and performs a summary operation that creates a smaller, combined result from the Mapper data

Um exemplo de trabalho de contagem de palavras básica MapReduce é ilustrado no seguinte diagrama:A basic word count MapReduce job example is illustrated in the following diagram:

O HDI. WordCountDiagram

A saída deste trabalho é uma contagem de quantas vezes cada palavra ocorreu no texto.The output of this job is a count of how many times each word occurred in the text.

  • O mapper toma cada linha a partir do texto de entrada como uma entrada e quebra-a em palavras.The mapper takes each line from the input text as an input and breaks it into words. Emite um par chave/valor cada vez que uma palavra ocorre da palavra é seguida por um 1.It emits a key/value pair each time a word occurs of the word is followed by a 1. A saída é ordenada antes de enviá-la para redutor.The output is sorted before sending it to reducer.
  • O redutor soma que estes indivíduos contam para cada palavra e emite um único par chave/valor que contém a palavra seguida pela soma das suas ocorrências.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 pode ser implementado em várias línguas.MapReduce can be implemented in various languages. Java é a implementação mais comum, e é usada para fins de demonstração neste documento.Java is the most common implementation, and is used for demonstration purposes in this document.

Línguas de desenvolvimentoDevelopment languages

Línguas ou quadros baseados em Java e na Máquina Virtual java podem ser dirigidos diretamente como um trabalho MapReduce.Languages or frameworks that are based on Java and the Java Virtual Machine can be ran directly as a MapReduce job. O exemplo usado neste documento é uma aplicação Java MapReduce.The example used in this document is a Java MapReduce application. As línguas não-Java, tais como C#, Python ou executáveis autónomos, devem utilizar o streaming hadoop.Non-Java languages, such as C#, Python, or standalone executables, must use Hadoop streaming.

O streaming hadoop comunica com o mapper e redutor sobre STDIN e STDOUT.Hadoop streaming communicates with the mapper and reducer over STDIN and STDOUT. O mapper e o redutor lê dados uma linha de cada vez a partir de STDIN, e escrever a saída para STDOUT.The mapper and reducer read data a line at a time from STDIN, and write the output to STDOUT. Cada linha lida ou emitida pelo mapper e pelo redutor deve estar no formato de um par chave/valor, delimitado por um caractere de separador: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]

Para mais informações, consulte o Hadoop Streaming.For more information, see Hadoop Streaming.

Para exemplos de utilização do streaming hadoop com HDInsight, consulte o seguinte documento:For examples of using Hadoop streaming with HDInsight, see the following document:

Passos seguintesNext steps