• Save
[I Know How] Hadoop - Primeiros passos
Upcoming SlideShare
Loading in...5
×
 

[I Know How] Hadoop - Primeiros passos

on

  • 3,294 views

Você sabe como configurar o Hadoop? Esse é um passo-a-passo criado pelo consultor da Sensedia, Fillipe Massuda, para o Sensedia Knowledge Exchange Program, "I Know How". Se tiver alguma duvida ou ...

Você sabe como configurar o Hadoop? Esse é um passo-a-passo criado pelo consultor da Sensedia, Fillipe Massuda, para o Sensedia Knowledge Exchange Program, "I Know How". Se tiver alguma duvida ou queira saber mais detalhes, fale com a Sensedia ou procure diretamente o Fillipe, seus contatos estão na apresentação.

Statistics

Views

Total Views
3,294
Views on SlideShare
1,494
Embed Views
1,800

Actions

Likes
9
Downloads
0
Comments
0

7 Embeds 1,800

http://www.aqueleblogdesoa.com.br 1709
http://www.sensedia.com 46
http://sensedia.com 32
http://theoldreader.com 8
http://feeds.feedburner.com 3
http://webcache.googleusercontent.com 1
http://107.20.85.78 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    [I Know How] Hadoop - Primeiros passos [I Know How] Hadoop - Primeiros passos Presentation Transcript

    • HADOOPPrimeiros Passos Fillipe Massuda • Consultor SOA
    • Fillipe Massuda  Consultor SOA na Sensedia  Engenheiro da computação pela FEI com MBA em Arquitetura de TI pela FIAP  Especialista em implementação de arquitetura de referência SOA nas plataformas IBM e Oracle  Apaixonado por TI e novas tecnologias  Guitarrista amador aposentado e viciado em videogamefillipe.massuda@sensedia.com @fimassuda
    • Sobre a Sensedia  Empresa brasileira, sediada em Campinas com escritórios em São Paulo, Rio de Janeiro e EUA  Profundo conhecimento em:  SOA (Arquitetura Orientada a Serviços)  API (Application Programming Interfaces)  Posicionada como visionária no quadrante mágico em SOA do Gartner
    • Sobre a Sensedia
    • Objetivo Apresentar os primeiros passos para configurar e executar um job MapReduce em Single-Node Cluster no Hadoop.
    •  Para esta demonstração, o ambiente foi o seguinte: • Ubuntu 13.04 • JDK 1.6 • Apache Hadoop 1.1.2 (Stable)  Foram utilizadas as seguintes ferramentas de apoio: • Apache Maven 3.0.5 Ambiente
    •  O Hadoop possui 3 modos de operação:  Local (Standalone)  Pseudo-Distributed  Fully-Distributed Modos de Operação Neste apresentação será demonstrada a configuração e execução de um job no modo Pseudo-Distributed, também chamado Single-Node Cluster, no qual cada Hadoop daemon é rodado em um processo java separado.
    • Pseudo-Distributed Mode
    • A configuração do SSH é necessária para o Hadoop gerenciar seus nós. Por rodar tudo em localhost, podemos configurar sem senha de conexão.  Executar os seguintes comandos para criação da chave para conexão ssh ao localhost $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_Keys  Testar a conexão ssh para adicionar a máquina na lista de known_hosts $ ssh localhost Passo 1: Configuração do SSH
    • Configurar o arquivo de perfil para adicionar as variáveis de ambiente ao Path. Além disso, adicionar a pasta do Hadoop as variáveis (HADOOP_PREFIX) e verificar se JAVA_HOME também está configurada.  Configuração do .bashrc (Ubuntu) Passo 2: Configurando ~/.bashrc Lembrando que ao atualizar o .bashrc, o perfil deve ser carregado novamente, reiniciando o terminal ou executando  source ~/.bashrc  Nota: Em algumas versões a variável com a pasta do Hadoop pode ser configurada como HADOOP_HOME. Para esta versão, quando utilizado HADOOP_HOME, o aviso “$HADOOP_HOME is deprecated” era gerado, para evitar este aviso é necessário utilizar a variável HADOOP_PREFIX.
    •  Configurar o JAVA_HOME no arquivo $HADOOP_PREFIX/conf/hadoop- env.sh  Criar uma pasta para que o Hadoop utilize como base para os arquivos temporários  ex: $HADOOP_PREFIX/tmp Passo 3: Configuração do Hadoop
    • No arquivo core-site.xml configurar o nome padrão para o File System e a pasta base para os arquivos temporários:  $HADOOP_PREFIX/conf/core-site.xml Passo 4: Arquivos de configuração(1/3) <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/fillipe/dev/hadoop/tmp</value> </property> </configuration>  Nota: Para mais informações sobre as propriedades do arquivo core-site.xml, consultar o arquivo docs/core-default.html
    • Alterar no arquivo de configuração do HDFS, para adicionar o número do replicações:  $HADOOP_PREFIX/conf/hdfs-site.xml Passo 4: Arquivos de configuração(2/3) <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>  Nota: Para mais informações de configuração no arquivo hdfs-site.xml, consultar o arquivo docs/hdfs- default.html
    • Alterar no arquivo de configurações do MapReduce o host e a porta de execução do job tracker:  $HADOOP_PREFIX/conf/mapred-site.xml <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration> Passo 4: Arquivos de configuração(3/3)  Nota: Para mais informações de configuração no arquivo mapred-site.xml, consultar o arquivo docs/mapred-default.html
    • Formatar o hadoop filesystem para inicializar as pastas para o HDFS e o MapReduce:  $ hadoop namenode -format Passo 5: Formatando o HDFS FileSystem
    •  Inicializar os processos:  start-all.sh  Finalizar os processos:  stop-all.sh Passo 6: Inicialização dos Processos  Nota: Estes comandos irão inicializar ou finalizar os DataNodes, NameNodes, JobTrackers e TaskTrackers.
    • Map Reduce
    •  O job MapReduce que será utilizado, terá o objetivo de contar a quantidade de vezes que cada palavras aparece no documento de entrada, gerando um resumo na pasta de saída.  Os arquivos para o teste serão: Exemplo: Contador de Palavras file1.txt Hadoop MapReduce BigData Apache file2.txt Hadoop HDFS Namenode and Datanode MapReduce JobTracker and TaskTracker  Nota: Este exemplo está disponível no pacote do hadoop.
    •  A primeira etapa é desenvolver o Map que irá receber os arquivos de entrada, um por um, e retornará uma lista <chave, valor>. Map  Nota: Neste exemplo, a função map, retornará para o file1.txt como input, algo semelhante à:  file1.txt • Hadoop, 1 • MapReduce, 1 • BigData, 1 • Apache, 1
    •  A etapa de shuffle será realizado pelas próprias bibliotecas de MapReduce. A saída do map é a entrada do Shuffle e a saída do Shuffle é a entrada do Reduce.  Nesta etapa, a lista é agrupada e ordenada por chave. Shuffle  Saída do Map  file1.txt • Hadoop, 1 • MapReduce, 1 • BigData, 1 • Apache, 1  file2.txt • Hadoop, 1 • HDFS, 1 • Namenode, 1 • and, 1 • Datanode, 1 • MapReduce, 1 • JogTracker, 1 • and, 1 • TaskTracker, 1  Saída do Shuffle • Apache, [1] • BigData, [1] • Datanode, [1] • HDFS, [1] • Hadoop, [1,1] • JobTracker, [1] • MapReduce, [1,1] • Namenode, [1] • TaskTracker, [1] • and, [1,1]
    •  Nesta etapa a função reduce é executada para cada item da lista gerada pelo Shuffle. Reduce  Entrada • Apache, [1] • BigData, [1] • Datanode, [1] • HDFS, [1] • Hadoop, [1,1] • JobTracker, [1] • MapReduce, [1,1] • Namenode, [1] • TaskTracker, [1] • and, [1,1]  Saída • Apache, 1 • BigData, 1 • Datanode, 1 • HDFS, 1 • Hadoop, 2 • JobTracker, 1 • MapReduce, 2 • Namenode, 1 • TaskTracker, 1 • and, 2
    •  Por fim, devemos configurar a execução do job, informando ao Hadoop como tratar o input e output, as classes de tratamento do map e reduce, os tipos de variáveis e etc. Driver
    •  Inicialmente devemos copiar os arquivos para o HDFS.  Criar uma pasta dentro do HDFS para receber os arquivos:  hadoop fs –mkdir /user/input  Copiar os arquivos  hadoop fs –put file* /user/input Copiando os arquivos para o HDFS  Nota: Para uma lista com os possíveis comandos para serem executados no FS, executar hadoop fs -help
    •  Neste exemplo eu estou usando o maven para o gerenciamento de dependências e empacotamento do JAR.  Configuração de dependências no pom.xml  Basta rodar mvn package para gerar o arquivo JAR. Empacotando o JAR  Nota: Para mais informações sobre Apache Maven http://maven.apache.org
    •  Para executar o job, basta rodar o seguinte comando:  hadoop jar <Nome do Arquivo Jar> <Classe Main> <arg...> Executando o Job  Comando de exemplo: hadoop jar HadoopPrimeirosPassos-1.0- SNAPSHOT.jar WordCount /user/input /user/output
    •  Para verificar o resultado gerado pelo job, basta acessar o arquivo, na pasta de saída:  hadoop fs –cat /user/output/part-*  Copiar o arquivo de resultado para o diretório local:  hadoop fs –copyToLocal /user/output/part-* output.txt Analisando o Resultado
    •  O hadoop possui algumas interfaces web por padrão, como o NameNode Web UI, no qual é possível, através do browser, consultar informações referentes a saúde do cluster HDFS. http://localhost:50070 NameNode Web UI
    • JobTracker Web UI  Assim como no NameNode, podemos ter informações sobre o job a partir de uma interface web, como quais jobs estão rodando, quantos estão rodando, etc, através do JobTracker Web UI. http://localhost:50030
    • TaskTracker Web UI  Por fim, podemos ter informações sobre quais tasks estão rodando ou não, além de podermos consultar os logs, através do TaskTracker Web UI. http://localhost:50060
    •  Hadoop Single Node Setup http://hadoop.apache.org/docs/r1.1.2/single_node_setup.html  Introdução ao Hadoop http://www.aqueleblogdesoa.com.br/2013/05/introducao-ao-hadoop/  Código fonte disponível em: https://github.com/fimassuda/HadoopPrimeirosPassos Referências
    • Obrigado! Fillipe Massuda • Consultor SOA fillipe.massuda@sensedia.com @fimassuda sensedia.com/br