Copiado!

Introdução ao Azure HDInsight

Introdução

Os dados estão em todos os lugares; na verdade, estamos agora no universo de "grandes dados", onde os sistemas de computação precisam lidar com imensa quantidade de dados para determinar certos padrões de comportamento. Apache Hadoop é um framework, que é projetado para lidar com esses enormes quantidades de dados.

Ao fazer Hadoop disponível como um serviço, HDInsight pode ajudar a gerenciar, analisar e informar sobre big data. Apache Hadoop usa Hadoop Distributed File System (HDFS) para fornecer armazenamento de dados confiável. O modelo de programação MapReduce é usado para processar e analisar os dados em paralelo.

HDInsight fornece um ambiente simples, fácil, escalável e eficiente em termos de custo. Quando HDInsight implanta um cluster, uma segunda headnode é adicionado aos clusters para aumentar a disponibilidade do serviço (ao contrário de implantações Hadoop clássicos).


O ecossistema Hadoop / HDInsight é visualizado abaixo.
Hadoop / HDInsight Ecosystem
Hadoop / HDInsight Ecosystem

Como HDInsight Gerencia e armazena dados

HDInsight usa armazenamento Azure Blob como o sistema de arquivos padrão. Clusters Hadoop são otimizados para a execução de tarefas computacionais MapReduce e pode ser descartado uma vez que as tarefas sejam executadas.  
Para gerenciar os trabalhos do Hadoop, HDInsight usa Azure PowerShell.

Como Chegar Stared com Usando HDInsight


Para começar a usar HDInsight, visite o Portal de Gestão Azure emhttps://manage.windowsazure.com   e faça login.
Depois que você estiver conectado, você será presenteado com a página inicial da sua conta.
 Portal de Gestão Azure Homepage
 Portal de Gestão Azure Homepage
Clica no link HDInsight à esquerda.
HDInsight link
HDInsight link
Clique no link para "Criar um cluster HDinsight".
Criar um Cluster HDinsight
Criar um Cluster HDinsight
Forneça um nome de cluster e também especificar a senha para o "admin" função de usuário e clique em "Criar HDInsight Cluster".
Criar HDInsight Cluster
Criar HDInsight Cluster
Depois de enviar as informações, o processo de criação do cluster Hadoop começa, que pode ser visualizado como abaixo.
Processo Hadoop Cluster Criação
Processo Hadoop Cluster Criação
Pode levar até 10 minutos para concluir o provisionamento. Uma vez completo, o painel vai olhar como abaixo.
Provisionamento completo
Provisionamento completo
Clique na seta ao lado do nome do cluster e você será redirecionado para o painel de instrumentos HDInsight.
HEInsight Painel
HEInsight Painel
Aqui podemos acompanhar como nosso cluster Hadoop está realizando. Podemos ver que o meu caso particular está usando 24 núcleos de um total possível de 170 núcleos HDInsight.
Depois que o cluster HDInsight foi provisionado, podemos agendar nossos trabalhos MapReduce. Um trabalho de MapReduce precisa de um programa de MapReduce (arquivo .jar) e insumos (se aplicável).
Azure PowerShell pode ser usado para executar trabalhos.

Resumo

Neste artigo, nós demos uma visão geral de HDInsight.

Big Data Tool: Map-Reduce

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