SlideShare a Scribd company logo
1 of 31
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

More Related Content

What's hot

An Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops ManagerAn Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops ManagerMongoDB
 
PostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_CheatsheetPostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_CheatsheetLucian Oprea
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxNeoClova
 
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013Jaime Crespo
 
Introduction to Spark Internals
Introduction to Spark InternalsIntroduction to Spark Internals
Introduction to Spark InternalsPietro Michiardi
 
Apache Spark Performance tuning and Best Practise
Apache Spark Performance tuning and Best PractiseApache Spark Performance tuning and Best Practise
Apache Spark Performance tuning and Best PractiseKnoldus Inc.
 
Adventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree EngineAdventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree EngineAltinity Ltd
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseSeveralnines
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsCommand Prompt., Inc
 
PostgreSQL Tutorial For Beginners | Edureka
PostgreSQL Tutorial For Beginners | EdurekaPostgreSQL Tutorial For Beginners | Edureka
PostgreSQL Tutorial For Beginners | EdurekaEdureka!
 
Advanced Ops Manager Topics
Advanced Ops Manager TopicsAdvanced Ops Manager Topics
Advanced Ops Manager TopicsMongoDB
 
pandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Pythonpandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for PythonWes McKinney
 
Monitoramento de Banco de dados SQL Server com Zabbix
Monitoramento de Banco de dados SQL Server com ZabbixMonitoramento de Banco de dados SQL Server com Zabbix
Monitoramento de Banco de dados SQL Server com ZabbixGustavo Henrique
 
MariaDB Administrator 교육
MariaDB Administrator 교육 MariaDB Administrator 교육
MariaDB Administrator 교육 Sangmo Kim
 

What's hot (20)

An Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops ManagerAn Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops Manager
 
Hive
HiveHive
Hive
 
PostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_CheatsheetPostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_Cheatsheet
 
Apache hive introduction
Apache hive introductionApache hive introduction
Apache hive introduction
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptx
 
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
 
Hadoop
HadoopHadoop
Hadoop
 
Introduction to Spark Internals
Introduction to Spark InternalsIntroduction to Spark Internals
Introduction to Spark Internals
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Apache Spark Performance tuning and Best Practise
Apache Spark Performance tuning and Best PractiseApache Spark Performance tuning and Best Practise
Apache Spark Performance tuning and Best Practise
 
Catalyst optimizer
Catalyst optimizerCatalyst optimizer
Catalyst optimizer
 
Adventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree EngineAdventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree Engine
 
Redis introduction
Redis introductionRedis introduction
Redis introduction
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash Course
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System Administrators
 
PostgreSQL Tutorial For Beginners | Edureka
PostgreSQL Tutorial For Beginners | EdurekaPostgreSQL Tutorial For Beginners | Edureka
PostgreSQL Tutorial For Beginners | Edureka
 
Advanced Ops Manager Topics
Advanced Ops Manager TopicsAdvanced Ops Manager Topics
Advanced Ops Manager Topics
 
pandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Pythonpandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Python
 
Monitoramento de Banco de dados SQL Server com Zabbix
Monitoramento de Banco de dados SQL Server com ZabbixMonitoramento de Banco de dados SQL Server com Zabbix
Monitoramento de Banco de dados SQL Server com Zabbix
 
MariaDB Administrator 교육
MariaDB Administrator 교육 MariaDB Administrator 교육
MariaDB Administrator 교육
 

Viewers also liked

Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...Sensedia
 
REST - padrões e melhores práticas
REST - padrões e melhores práticasREST - padrões e melhores práticas
REST - padrões e melhores práticasSensedia
 
Open API Strategy, by Sensedia
Open API Strategy, by SensediaOpen API Strategy, by Sensedia
Open API Strategy, by SensediaSensedia
 
Soa Next Steps/Passos de Adoção SOA
Soa Next Steps/Passos de Adoção SOASoa Next Steps/Passos de Adoção SOA
Soa Next Steps/Passos de Adoção SOASensedia
 
Soa Em Tempos De Crise
Soa Em Tempos De CriseSoa Em Tempos De Crise
Soa Em Tempos De CriseSensedia
 
Governança de Serviços Automatizada na Prática
Governança de Serviços Automatizada na PráticaGovernança de Serviços Automatizada na Prática
Governança de Serviços Automatizada na PráticaSensedia
 
SOA e APIs: O que muda e o que segue!
SOA e APIs: O que muda e o que segue!SOA e APIs: O que muda e o que segue!
SOA e APIs: O que muda e o que segue!Sensedia
 
Construindo APIs Mobile
Construindo APIs MobileConstruindo APIs Mobile
Construindo APIs MobileSensedia
 
Repositorio SOA
Repositorio SOARepositorio SOA
Repositorio SOASensedia
 
Indicadores para APIs
Indicadores para APIsIndicadores para APIs
Indicadores para APIsSensedia
 
Construção de APIs para apps móveis
Construção de APIs para apps móveisConstrução de APIs para apps móveis
Construção de APIs para apps móveisSensedia
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveFlavio Fonte, PMP, ITIL
 
Case Sensedia Catho
Case Sensedia CathoCase Sensedia Catho
Case Sensedia CathoSensedia
 
Mapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e AplicaçõesMapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e AplicaçõesGuilherme Araújo
 
Case Sensedia B2W
Case Sensedia B2WCase Sensedia B2W
Case Sensedia B2WSensedia
 
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoopBigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadooptdc-globalcode
 

Viewers also liked (20)

Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
 
REST - padrões e melhores práticas
REST - padrões e melhores práticasREST - padrões e melhores práticas
REST - padrões e melhores práticas
 
Open API Strategy, by Sensedia
Open API Strategy, by SensediaOpen API Strategy, by Sensedia
Open API Strategy, by Sensedia
 
Soa Next Steps/Passos de Adoção SOA
Soa Next Steps/Passos de Adoção SOASoa Next Steps/Passos de Adoção SOA
Soa Next Steps/Passos de Adoção SOA
 
Soa Em Tempos De Crise
Soa Em Tempos De CriseSoa Em Tempos De Crise
Soa Em Tempos De Crise
 
Governança de Serviços Automatizada na Prática
Governança de Serviços Automatizada na PráticaGovernança de Serviços Automatizada na Prática
Governança de Serviços Automatizada na Prática
 
SOA e APIs: O que muda e o que segue!
SOA e APIs: O que muda e o que segue!SOA e APIs: O que muda e o que segue!
SOA e APIs: O que muda e o que segue!
 
Construindo APIs Mobile
Construindo APIs MobileConstruindo APIs Mobile
Construindo APIs Mobile
 
Repositorio SOA
Repositorio SOARepositorio SOA
Repositorio SOA
 
Indicadores para APIs
Indicadores para APIsIndicadores para APIs
Indicadores para APIs
 
Construção de APIs para apps móveis
Construção de APIs para apps móveisConstrução de APIs para apps móveis
Construção de APIs para apps móveis
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hive
 
Treinamento hadoop - dia1
Treinamento hadoop - dia1Treinamento hadoop - dia1
Treinamento hadoop - dia1
 
Treinamento hadoop - dia4
Treinamento hadoop - dia4Treinamento hadoop - dia4
Treinamento hadoop - dia4
 
Case Sensedia Catho
Case Sensedia CathoCase Sensedia Catho
Case Sensedia Catho
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Treinamento Hadoop - dia2
Treinamento Hadoop - dia2Treinamento Hadoop - dia2
Treinamento Hadoop - dia2
 
Mapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e AplicaçõesMapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e Aplicações
 
Case Sensedia B2W
Case Sensedia B2WCase Sensedia B2W
Case Sensedia B2W
 
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoopBigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoop
 

Similar to Hadoop - Primeiros passos

Apache2+PHP5+PostgreSQL no Linux
Apache2+PHP5+PostgreSQL no LinuxApache2+PHP5+PostgreSQL no Linux
Apache2+PHP5+PostgreSQL no LinuxVictor Eloy
 
Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Felipe Schimith Batista
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
Hadoop java tdc 2014
Hadoop java   tdc 2014Hadoop java   tdc 2014
Hadoop java tdc 2014Aldrin Leal
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passosrhpinotti
 
Project HA
Project HAProject HA
Project HAKarpv
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Getup Cloud
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHPAugusto das Neves
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetosFrancisco Santos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetosFer Nando
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetosFabiano Rodrigues
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotationeduardo dias
 
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...Anyssa Ferreira
 

Similar to Hadoop - Primeiros passos (20)

Apache2+PHP5+PostgreSQL no Linux
Apache2+PHP5+PostgreSQL no LinuxApache2+PHP5+PostgreSQL no Linux
Apache2+PHP5+PostgreSQL no Linux
 
Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6
 
I educar-manual-de-instalaao
I educar-manual-de-instalaaoI educar-manual-de-instalaao
I educar-manual-de-instalaao
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Php01
Php01Php01
Php01
 
Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 
Hadoop java tdc 2014
Hadoop java   tdc 2014Hadoop java   tdc 2014
Hadoop java tdc 2014
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passos
 
Project HA
Project HAProject HA
Project HA
 
MigraçãO
MigraçãOMigraçãO
MigraçãO
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
 
Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
 
Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
 

More from Sensedia

Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaSensedia
 
Case Sensedia Simpress
Case Sensedia SimpressCase Sensedia Simpress
Case Sensedia SimpressSensedia
 
Case Sensedia Cielo
Case Sensedia CieloCase Sensedia Cielo
Case Sensedia CieloSensedia
 
Case Cnova Page
Case Cnova PageCase Cnova Page
Case Cnova PageSensedia
 
Case Cnova-en
Case Cnova-enCase Cnova-en
Case Cnova-enSensedia
 
Case Simpress
Case SimpressCase Simpress
Case SimpressSensedia
 
Caso de Estudo CNova
Caso de Estudo CNovaCaso de Estudo CNova
Caso de Estudo CNovaSensedia
 
Open Banking Platform - Intro
Open Banking Platform - IntroOpen Banking Platform - Intro
Open Banking Platform - IntroSensedia
 
Modelo Canônico: Vilão ou Mocinho?
Modelo Canônico: Vilão ou Mocinho?Modelo Canônico: Vilão ou Mocinho?
Modelo Canônico: Vilão ou Mocinho?Sensedia
 
O poder das APIs
O poder das APIsO poder das APIs
O poder das APIsSensedia
 
Estratégia de APIs Abertas
Estratégia de APIs AbertasEstratégia de APIs Abertas
Estratégia de APIs AbertasSensedia
 
2o workshop governanca soa na pratica
2o workshop governanca soa na pratica2o workshop governanca soa na pratica
2o workshop governanca soa na praticaSensedia
 
Integração ensemble e governança repository
Integração ensemble e governança repositoryIntegração ensemble e governança repository
Integração ensemble e governança repositorySensedia
 
Webinar: Maturidade e Roadmap SOA
Webinar: Maturidade e Roadmap SOAWebinar: Maturidade e Roadmap SOA
Webinar: Maturidade e Roadmap SOASensedia
 
Governança SOA
Governança SOAGovernança SOA
Governança SOASensedia
 

More from Sensedia (15)

Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha Básica
 
Case Sensedia Simpress
Case Sensedia SimpressCase Sensedia Simpress
Case Sensedia Simpress
 
Case Sensedia Cielo
Case Sensedia CieloCase Sensedia Cielo
Case Sensedia Cielo
 
Case Cnova Page
Case Cnova PageCase Cnova Page
Case Cnova Page
 
Case Cnova-en
Case Cnova-enCase Cnova-en
Case Cnova-en
 
Case Simpress
Case SimpressCase Simpress
Case Simpress
 
Caso de Estudo CNova
Caso de Estudo CNovaCaso de Estudo CNova
Caso de Estudo CNova
 
Open Banking Platform - Intro
Open Banking Platform - IntroOpen Banking Platform - Intro
Open Banking Platform - Intro
 
Modelo Canônico: Vilão ou Mocinho?
Modelo Canônico: Vilão ou Mocinho?Modelo Canônico: Vilão ou Mocinho?
Modelo Canônico: Vilão ou Mocinho?
 
O poder das APIs
O poder das APIsO poder das APIs
O poder das APIs
 
Estratégia de APIs Abertas
Estratégia de APIs AbertasEstratégia de APIs Abertas
Estratégia de APIs Abertas
 
2o workshop governanca soa na pratica
2o workshop governanca soa na pratica2o workshop governanca soa na pratica
2o workshop governanca soa na pratica
 
Integração ensemble e governança repository
Integração ensemble e governança repositoryIntegração ensemble e governança repository
Integração ensemble e governança repository
 
Webinar: Maturidade e Roadmap SOA
Webinar: Maturidade e Roadmap SOAWebinar: Maturidade e Roadmap SOA
Webinar: Maturidade e Roadmap SOA
 
Governança SOA
Governança SOAGovernança SOA
Governança SOA
 

Hadoop - Primeiros passos

  • 2. 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
  • 3. 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
  • 5. Objetivo Apresentar os primeiros passos para configurar e executar um job MapReduce em Single-Node Cluster no Hadoop.
  • 6.  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
  • 7.  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.
  • 9. 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
  • 10. 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.
  • 11.  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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. Formatar o hadoop filesystem para inicializar as pastas para o HDFS e o MapReduce:  $ hadoop namenode -format Passo 5: Formatando o HDFS FileSystem
  • 16.  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.
  • 18.  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.
  • 19.  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
  • 20.  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]
  • 21.  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
  • 22.  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
  • 23.  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
  • 24.  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
  • 25.  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
  • 26.  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
  • 27.  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
  • 28. 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
  • 29. 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
  • 30.  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
  • 31. Obrigado! Fillipe Massuda • Consultor SOA fillipe.massuda@sensedia.com @fimassuda sensedia.com/br