Big Data Tool: Map-Reduce

Escritor | 17:40 Leave a Comment

Visão global

No último par de artigos , eu discuti Hadoop / Big Data e seus benefícios .Sabemos como Big Data está evoluindo e do ecossistema Hadoop pode ser útil para fazer análises sobre uma enorme quantidade de dados / meias / estruturados un.
Vamos discutir várias ferramentas que são os principais drivers para alcançar o objetivo, a análise de dados média em Big Data. Depois de ler este artigo, você vai conhecer os caminhos fundamentais para usar algumas das ferramentas de Big Data importantes que pertencem a diferentes comunidades de desenvolvedores.

Ferramentas Big Data / Hadoop

No mundo Big Data dentro do ecossistema Hadoop, existem muitas ferramentas disponíveis para processar os dados constantes no HDFS. Tal como acontece com o framework Hadoop, essas ferramentas também são parte de código aberto como o Hive, Pig, escrevendo programa Map-Reduce usando Java, HBase, Phoenix, e muitos mais. Todas estas ferramentas cobrir diferentes partes da comunidade de desenvolvedores; por exemplo: os desenvolvedores Java, SQL programadores ou programadores Non Jan & SQL e assim por diante.
No último artigo, discutimos várias ferramentas do ecossistema Hadoop. Nesta série de artigos vamos discutir três ferramentas importantes: Escrevendo Map-Reduce em Java, Hive, e Porco. Essas três ferramentas pertencem a diferentes pilhas de tecnologia:
  • Programador Java / Desenvolvedor: As pessoas que pertencem a esta tecnologia pode processar dados através do desenvolvimento de Map-Reduce programas em Java.
  • SQL Programador / Desenvolvedor: As pessoas que pertencem a esta tecnologia pode processar dados usando HIVE-QL Script e outras Linguagens De Consulta Estruturada.
  • Não JAVA ou SQL Programador / Desenvolvedor: Pessoas whobelong a esta tecnologia pode processar os dados usando um script PIG.
Essas três ferramentas pertencem a diferentes comunidades de desenvolvedores que ampliam a oportunidade de a maior parte da comunidade de desenvolvedores para alavancar o framework Hadoop para processamento de dados no mundo Big Data.

Compreender o Framework Map-Reduce

Map-Reduce, ou MR, é um framework escrito em Java para resolver um problema que será considerado como um trabalho no ambiente Hadoop. Há outros componentes envolvidos para executar um programa de MR e dão os resultados desejados.
Anatomia de MR ou do trabalho da MR programa: quadro MR definiu de trackers JobTracker & TaskTracker que ajudam a executar trabalhos de RM em todos os nós de cluster do Hadoop disponíveis separadamente, acompanhar o processamento e combinar a saída de trabalhos de RM para produzir os resultados desejados.BigData01
Figura 1 : O fluxo de execução Job MR
Aqui é o entendimento passo-a-passo do MR processamento do trabalho e JobTracker & TaskTracker responsabilidades:
Passo 1: O cliente envia um trabalho MR.
Passo 2: JobTracker recebe o trabalho de MR a partir do cliente e inclui as seguintes etapas:
Passo 2.1: JobTracker atribui JobID e local de trabalho em uma fila interna.
Passo 2.2: O agendador de tarefas pega o trabalho de uma fila e inicializa-lo, criando um objeto encapsulado com suas tarefas e outras informações, tais como o progresso de cada tarefa.
Passo 2.3: JobTracker usa um algoritmo de programação interna que determina qual a tarefa do trabalho deve ser processado em primeiro lugar.
Passo 2.4: JobTracker atribui tarefas aos TaskTracker, que está pronto para disponível para executar a tarefa.
Passo 3: TaskTracker tem um número fixo de slots para o seu mapa e reduzir a tarefa. Por padrão, existem dois slots para mapeamento e dois slots para a redução de tarefas.
Passo 3.1: TaskTracker primeiras cópias do frasco do sistema de arquivos compartilhados no sistema de arquivos rastreador tarefa local.
Passo 3.2: TaskTracker cria um diretório de trabalho local para a tarefa e unjars o conteúdo.
Passo 3.3: TaskTracker cria uma instância de TaskRunner para executar cada tarefa. Para cada tarefa, TaskRunner usa uma nova JVM, de modo que o mapa definido pelo usuário e reduzir funções não afetam outras tarefas.
Passo 3.3.1: Limpe, A ação de limpeza compromete a tarefa em que a saída de tarefas deve ser escrito; em outras palavras, a localização do ficheiro.
Passo 3.3.2: ações de instalação. A ação de configuração envolve a inicialização do trabalho com alguns parâmetros.
Passo 3.3.3: Aciona a execução da tarefa.
Passo 3.3.4: TaskRunner envia cada estado da tarefa para TaskTracker enviando o seu estatuto de bandeira.
Passo 3.4: TaskTracker envia uma pulsação a cada cinco segundos para JobTracker insinuar o status de todas as tarefas que lhe são atribuídas.
Passo 4: Depois JobTracker receber o status final de todos os postos de trabalho TraskTracker, segue-se a seguinte seqüência:
Passo 4.1: JobTracker combina todas as atualizações recebidas de TaskTracker.
Passo 4.2: Internamente actualiza o estado de JobID e gera a saída.
Passo 4.3: Retorna o status do trabalho para o cliente MR quando se pinga JobTracker.
Passo 5: O cliente Job recebe seu status que está concluído e o estado é impressa no console, para ser visto pelo usuário.
O conjunto anterior de etapas é útil para compreender o fluxo end-to-end de um MR Job. Há muitas outras opções disponíveis para alterar a prioridade de execução e ranhuras que podem ser configurados em mapred-site.xml e muitos mais.

Problema Amostra

Hoje, vamos aprender a escrever um primeiro programa MR para a solução de um problema:
Problema: Descubra quantas pessoas pertencem a cada estado.
Para fins de exemplo, eu preparei um arquivo users.txt com cinco colunas. Segue-se a estrutura do arquivo com dados de amostra preenchido:
<ID do usuário>, <usuário>, <cidade>, <estado>, <país>
1, John, Montgomery, Alabama, EUA
2, David, Phoenix, Arizona, EUA
3, Sarah, Sacramento, Califórnia, EUA
4, Anoop, Montgomery, Alabama, EUA
5, Marinda, Phoenix, Arizona, EUA
6, Maria, Sacramento, Califórnia, EUA
7, Jony, Phoenix, Arizona, EUA
8, Wilson, Montgomery, Alabama, EUA
9, Jina, Lincoln, Nebraska, EUA
10, James, Columbus, Ohio, EUA

Pré-requisito para o Programa MR

Para resolver o problema de exemplo anterior, há certas coisas que devem estar disponíveis e configurado corretamente para obter o resultado desejado. Eu vou te mostrar o que as ferramentas devem ser instalados ea configuração necessárias que devem estar no local como um pré-requisito para começar a escrever o seu primeiro programa de MR.
Ferramentas:
  1. Eclipse IDE (Qualquer versão mais recente)
  2. Java 1.6 ou 1.6 +
  3. Hadoop 1.2.1
Configurações:
Você pode obter todos os arquivos de configuração necessários após extrair o jar presentes na pasta / conf Hadoop_1.2.1:
  1. mapred-site.xml
    BigData02
    Figura 2 : Conteúdo do mapred-site.xml
  2. hdfs-site.xml
    BigData03
    Figura 3 : Conteúdo do hdfs-site.xml
  3. núcleo-site.xml
    BigData04
    Figura 4 : Conteúdo do core-site.xml
  4. hadoop-env.sh
    BigData05
    Figura 5 : Índice de hadoop-env.sh
Você precisa seguir os próximos passos para confirmar que Hadoop instalado e todas as configurações são colocados corretamente:
Passo 1: Abra um prompt de comando e navegue pela <-path instalado> /hadoop-1.2.1 caminho.
Passo 2: Execute o ./bin/start-all.sh comando para iniciar componentes do Hadoop (HDFS e MapReduce).
Passo 3: Você pode validar que HDFS e MapReduce estão funcionando corretamente, utilizando as seguintes URLs em um navegador:
hdfs: // localhost: 50070 / dfshealth.jsp
hdfs: // localhost: 50030 / jobtracker.jsp
Passo 4: Você pode parar HDFS e MapReduce, executando o followingcommand:
<-Path instalado> /hadoop-1.2.1/.bin/stop-all.sh

Map-Reduce Programa

Assim que estiver pronto com os pré-requisitos, vamos começar a escrever o primeiro programa de MR para resolver o problema anterior. Este programa MR conteria três arquivos:
  1. Programa Motorista
  2. Folders Programa
  3. Reduzir o Programa
Vamos abrir Eclipse e siga estes passos para criar os programas necessários:
BigData06
Figura 6 : Criando os programas necessários
Passo 1: Criar um novo espaço de trabalho com o nome de "Hadoop"
Passo 2: Crie um novo projeto Java "MRProgram" em Eclipse usando o ambiente JAVA construída sobre Java 1.6 e acima.
Passo 3: incluir as bibliotecas dependentes Hadoop para o projeto "MRProgram".
Passo 4: Criar uma pasta de entrada no projeto "MRProgram" e criar users.txt com os dados especificados na seção intitulada "Problema de exemplo".
Passo 5: Abra um .classpath do projeto "MRProgram", e certifique-se que tem os seguintes dados:
BigData07
Figura 7 : Examinando o caminho de classe
Passo 6: Faça um programa de driver, seu principal arquivo, que atua como um trabalho para apresentar o Mapper e programas de redução. Por exemplo: UserDriver.java.
BigData08
Figura 8 : O arquivo UserDriver.java
Passo 7: Faça um programa Mapper. Ele lê arquivo linha por linha, analisa cada linha separada por uma " , "(vírgula), e em seguida, ele grava os dados na forma de um par de chaves e valor e torna disponível para o programa redutor. No nosso caso, Key será o nome do estado e valor será de toda a linha.
A Figura 9 é o programa UserMapper.java:
BigData09
Figura 9 : O programa UserMapper.java
BigData10
Figura 10 : O programa UserMapper.java, depois de ser executado
Passo 8: Escreva um programa redutor. Ele lê saída mapeador, e os processos de cada chave e valor de mapeador. No nosso caso, temos que contar quantos usuários são de cada estado.
A Figura 11 é o programa redutor:
BigData11
Figura 11 : O programa Redutor
Passo 9: Execute o programa UserDriver.java em Eclipse. Ele irá executar programas tanto o cartógrafo e redutor e cria e pasta de saída com dois seguintes arquivos:
_SUCCESS: não _SUCCESS não contém nada.
Parte-r-0000: Parte-r-0000 contém a saída desejada do Programa MR.
BigData12
Figura 12 : Demonstrando Part-r-0000
A saída precedente é o resultado desejado, o que dá estado de contagem usuário sábio.
O diretório de saída deve ser suprimida antes de iniciar UserDriver.Java porque o trabalho MR não substituirá o diretório de saída existente e dá uma exceção.

Resumo

Neste artigo, nós falamos sobre as ferramentas de Big Data que são úteis na análise de dados.Discutimos os fundamentos do framework Map-Reduce e MR processamento do trabalho. A disponibilidade de Map = Reduzir proporcionou uma imensa oportunidade para a comunidade de desenvolvedores Java para entrar na dados e análises mundo. Nós escreveu um programa MR amostra para resolver o problema de amostra para compreender o requisito de ponta a ponta para o Programa de MR e a sua execução passo-a-passo.
No próximo artigo desta série, vamos falar sobre Hive e Pig.

Referências