Hadoop mapreduce para big data

Para entender plenamente 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 de big data. 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.

Video: What is Big Data ,Big Data Explained Hadoop and MapReduce

HDFS e MapReduce realizar 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 dados grandes

Quando um cliente solicita um programa MapReduce para correr, o primeiro passo é localizar e ler o arquivo 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 o processamento usando uma função chamada InputSplit.

Em seguida, ele 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 big data.

Deixe o mapa de dados grande começar

Seus dados está 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 mantê-las?



Mapa tem dois recursos adicionais para abordar as questões. Porque mapa e reduzir a necessidade de trabalhar em conjunto para processar seus dados, o programa precisa coletar 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 saída específica será executado. A recolha e shuffling de resultados intermédios são realizados por um partio 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 estão completos, os resultados intermédios são reunidos na partição e um rearranjo ocorre, a saída de classificação de processamento óptima por reduzir.

Reduzir e combinar 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 reduzir 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.

Video: Project 2 - Big data Processing with Hadoop Map Reduce Framework

Hadoop fornece um recurso OutputFormat, e ele funciona muito bem como InputFormat. OutputFormat leva o par de valor-chave e organiza a saída para gravar em HDFS. A última tarefa é realmente gravar os dados HDFS. Isto é realizado por RecordWriter, e ele actua de modo 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 essas atividades 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 grandes dados em partes gerenciáveis, processar os dados em paralelo no 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.


Publicações relacionadas