Hadoop MapReduce para Big Data

Para entender completamente as capacidades do Hadoop MapReduce, é importante diferenciar entre MapReduce

(O algoritmo) e uma implementação de MapReduce. Hadoop MapReduce é uma implementação do algoritmo desenvolvido e mantido pelo projeto Apache Hadoop.

É útil pensar sobre essa implementação como um MapReduce motor, porque isso é exatamente como ele funciona. Você fornecer a entrada (combustível), o motor converte a entrada em saída rápida e eficiente, e você terá as respostas que precisa.

Hadoop MapReduce inclui várias etapas, cada uma com um importante conjunto de acções que contribuam para chegar ao seu objetivo de conseguir as respostas que precisa a partir de dados grandes. O processo começa com uma solicitação do usuário para executar um programa MapReduce e continua até que os resultados são escritos de volta para o HDFS.

image0.jpg

HDFS e MapReduce executar o seu trabalho em nós em um cluster hospedado em racks de servidores de commodities. Para simplificar a discussão, o diagrama mostra apenas dois nós.

Prepare-se os grandes dados

Quando um cliente solicita um programa MapReduce para executar, o primeiro passo é o de localizar e ler o ficheiro de entrada contendo os dados brutos. O formato de arquivo é completamente arbitrária, mas os dados devem ser convertidos em algo que o programa pode processar. Esta é a função de InputFormat e RecordReader. InputFormat decide como o arquivo vai ser quebrado em pedaços menores para processar usando uma função chamada InputSplit.

Em seguida, atribui um RecordReader para transformar os dados brutos para processamento pelo mapa. Vários tipos de RecordReaders são fornecidos com Hadoop, oferecendo uma ampla variedade de opções de conversão. Este recurso é uma das maneiras que Hadoop administra a enorme variedade de tipos de dados encontrados em problemas de dados grandes.

Deixe o mapa de dados grande começar

Seus dados estão agora em uma forma aceitável para mapear. Para cada par de entrada, um exemplo distinto do mapa é chamada a processar os dados. Mas o que ele faz com a saída processado, e como você pode manter o controle delas?

Mapa tem dois recursos adicionais para resolver as questões. Porque mapa e reduzir a necessidade de trabalhar em conjunto para processar seus dados, o programa necessita de recolher a saída dos mapeadores independentes e passá-lo para os redutores. Esta tarefa é realizada por um OutputCollector. Uma função Reporter também fornece informações recolhidas a partir de tarefas mapa para que você saiba quando ou se as tarefas mapa estão completos.

Todo este trabalho está sendo realizado em vários nós do cluster Hadoop simultaneamente. Você pode ter casos em que a saída de certos processos de mapeamento precisa ser acumulada antes dos redutores pode começar. Ou, alguns dos resultados intermediários podem necessitar de ser processado antes da redução.

Além disso, alguns dos essa saída pode estar em um nó diferente do nó onde os redutores para que a produção específica será executado. A recolha e arrastar de resultados intermediários são realizadas por um partitioner e uma espécie. As tarefas mapa vai entregar os resultados para uma partição específica como entradas para as tarefas de redução.

Depois de todas as tarefas mapa estiverem concluídas, os resultados intermediários estão reunidos na partição e um embaralhamento ocorre, classificando a saída para processamento ideal, reduzir.

Reduzir e combinam-se para big data

Para cada par de saída, reduzir é chamado para executar sua tarefa. De forma semelhante para mapear, reduzir reúne sua saída, enquanto todas as tarefas estão processando. Reduzir não pode começar até que todo o mapeamento é feito. A saída de redução é também uma chave e um valor. Enquanto isso for necessário para reduzir a fazer o seu trabalho, ele pode não ser o formato de saída mais eficaz para a sua aplicação.

Hadoop fornece um recurso OutputFormat, e ele funciona muito bem como InputFormat. OutputFormat leva o par de valores-chave e organiza a saída para gravar no HDFS. A última tarefa é realmente escrever os dados para HDFS. Isto é executado por RecordWriter, e que funciona de forma semelhante ao RecordReader excepto em sentido inverso. Leva os dados OutputFormat e escreve-o HDFS na forma necessária para os requisitos do programa.

A coordenação de todas estas actividades foi gerido em versões anteriores do Hadoop por um agendador de tarefas. Este programador era rudimentar, e como a mistura de postos de trabalho mudou e cresceu, ficou claro que uma abordagem diferente era necessário. A deficiência primária no antigo programador foi a falta de gestão de recursos. A última versão do Hadoop tem esta nova capacidade.

Hadoop MapReduce é o coração do sistema Hadoop. Ele fornece todos os recursos necessários para quebrar os dados grandes em partes gerenciáveis, processar os dados em paralelo em seu cluster distribuído, e, em seguida, tornar os dados disponíveis para o consumo do usuário ou processamento adicional. E ele faz todo este trabalho de uma forma altamente resistente, tolerante a falhas. Isto é apenas o começo.

menu