Implementando soluções em Big
Data com Apache Hadoop/Hive
Carlos Eduardo Dantas
carloseduardodantas@iftm.edu.br
http://car...
Quem sou?
• Professor Efetivo no IFTM Campus
Uberlândia-Centro;
• Projetos bem sucedidos em alguns dos
principais clientes...
IFTM Campus Uberlândia
Centro
• Cursos técnicos, graduação e pós-
graduação gratuitos;
• Mini-cursos e eventos de curta du...
Novos ventos – era da
informação
• Volumes expressivos de dados gerados
diariamente (ordem de petabytes);
• Várias fontes ...
Novos ventos – era da
informação
• Sistemas convencionais de
armazenamento e processamento de
dados não são suficientes.
Novos ventos – era da
informação
• Novas técnicas foram criadas e “white
papers” publicados.
Big Data
• Termo usado para referenciar conjuntos
de dados com características extremas.
Big Data - Volume
• 40 bilhões de fotos;
• 350 milhões de usuários ativos;
• 250 milhões de uploads diários;
• 2008 – 200G...
Big Data - Velocidade
Pesquisas com “Search Assist” (terabytes de
log por dia):
• Solução convencional: 26 dias;
• Solução...
Big Data - Variedade
Suporta nativamente:
• Dados estruturados;
• Dados semi Estruturados;
• Dados não estruturados.
Alternativas?
• Data Warehouse;
• Arquiteturas MPP;
• Soluções noSql como Apache Hadoop.
Apache Hadoop
• Framework open-source escrito em Java;
• Armazena e processa conjuntos de dados
em larga escala;
• Distrib...
Apache Hadoop
“Até 2018, metade dos dados a serem
processados no mundo, serão feitos pelo
Hadoop”.
Hadoop - módulos
Armazenamento
HDFS
• Sistema de Arquivos distribuído;
• Projetado para processar em lote;
• Altamente tolerante a falhas.
Armazenamento
HDFS
• Estrutura mestre/escravo.
Processamento
MapReduce
• “Dividir para conquistar”;
• Abstrai a computação paralela em apenas
duas funções: map e reduce;
Processamento
MapReduce
• Map Funcional: map({1,2,3,4}, (* 2)) ->
{2,4,6,8}
• Reduce Funcional: reduce({2,4,6,8}, (*)) ->
...
Processamento MapReduce
• Divide o arquivo de entrada em blocos;
• Copia o programa que contém as funções
Map e Reduce par...
Processamento MapReduce
• O mestre orquestra os escravos e atribui a
cada um uma tarefa map ou reduce
Processamento MapReduce
• Cada escravo que executa a tarefa map lê
um conteúdo do bloco, definido pelo
processo mestre;
• ...
Processamento MapReduce
• Periodicamente os pares intermediários
são gravados em arquivos;
• O processo mestre os encaminh...
Processamento MapReduce
• Mestre envia ao processo escravo o
endereço dos arquivos intermediários;
• O processo escravo re...
Processamento MapReduce
• Executa a função de redução, gerando um
arquivo de saída para cada nó escravo que
executou a red...
Processamento MapReduce
Processamento
MapReduce - WordCount
• Problema da contagem da frequência das
palavras, em uma base de documentos.
Processamento
MapReduce - WordCount
Demais aplicações
• Indexação para busca de palavras em
páginas web;
• Organização de notícias;
• Processamento de imagens...
Problemas...
• Programar diretamente com Map/Reduce
não é intuitivo;
• Relativa complexidade de comandos para
executar con...
Apache Hive
• Executa tarefas de Map/Reduce em
arquivos físicos no HDFS;
• Linguagem de consulta ad hoc (HiveQL),
bastante...
Apache Hive
Consulta Hive WordCount
Dúvidas?
Próximos SlideShares
Carregando em…5
×

Implementando soluções em Big Data com Apache Hadoop/Hive

815 visualizações

Publicada em

Palestra ministrada no uaijugclodday, link http://www.uaijugcloudday.com.br/

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
815
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
19
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Implementando soluções em Big Data com Apache Hadoop/Hive

  1. 1. Implementando soluções em Big Data com Apache Hadoop/Hive Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br http://carloseduardoxp.wordpress.com “A melhor maneira de fugir do seu problema é resolvê-lo” – Robert Anthony
  2. 2. Quem sou? • Professor Efetivo no IFTM Campus Uberlândia-Centro; • Projetos bem sucedidos em alguns dos principais clientes de Uberlândia e região.
  3. 3. IFTM Campus Uberlândia Centro • Cursos técnicos, graduação e pós- graduação gratuitos; • Mini-cursos e eventos de curta duração abertos à comunidade; • http://www.iftm.edu.br
  4. 4. Novos ventos – era da informação • Volumes expressivos de dados gerados diariamente (ordem de petabytes); • Várias fontes heterogêneas, com milhões de usuários.
  5. 5. Novos ventos – era da informação • Sistemas convencionais de armazenamento e processamento de dados não são suficientes.
  6. 6. Novos ventos – era da informação • Novas técnicas foram criadas e “white papers” publicados.
  7. 7. Big Data • Termo usado para referenciar conjuntos de dados com características extremas.
  8. 8. Big Data - Volume • 40 bilhões de fotos; • 350 milhões de usuários ativos; • 250 milhões de uploads diários; • 2008 – 200GB de dados diários; • 2014 – 15TB de dados diários.
  9. 9. Big Data - Velocidade Pesquisas com “Search Assist” (terabytes de log por dia): • Solução convencional: 26 dias; • Solução noSql(Hadoop): 20 minutos.
  10. 10. Big Data - Variedade Suporta nativamente: • Dados estruturados; • Dados semi Estruturados; • Dados não estruturados.
  11. 11. Alternativas? • Data Warehouse; • Arquiteturas MPP; • Soluções noSql como Apache Hadoop.
  12. 12. Apache Hadoop • Framework open-source escrito em Java; • Armazena e processa conjuntos de dados em larga escala; • Distribui dados e processamento para múltiplos servidores, consolidando resultados.
  13. 13. Apache Hadoop “Até 2018, metade dos dados a serem processados no mundo, serão feitos pelo Hadoop”.
  14. 14. Hadoop - módulos
  15. 15. Armazenamento HDFS • Sistema de Arquivos distribuído; • Projetado para processar em lote; • Altamente tolerante a falhas.
  16. 16. Armazenamento HDFS • Estrutura mestre/escravo.
  17. 17. Processamento MapReduce • “Dividir para conquistar”; • Abstrai a computação paralela em apenas duas funções: map e reduce;
  18. 18. Processamento MapReduce • Map Funcional: map({1,2,3,4}, (* 2)) -> {2,4,6,8} • Reduce Funcional: reduce({2,4,6,8}, (*)) -> {384} • Logo: reduce (map({1,2,3,4}, (* 2)), (*)) - > {384}
  19. 19. Processamento MapReduce • Divide o arquivo de entrada em blocos; • Copia o programa que contém as funções Map e Reduce para o cluster
  20. 20. Processamento MapReduce • O mestre orquestra os escravos e atribui a cada um uma tarefa map ou reduce
  21. 21. Processamento MapReduce • Cada escravo que executa a tarefa map lê um conteúdo do bloco, definido pelo processo mestre; • Resultado em memória.
  22. 22. Processamento MapReduce • Periodicamente os pares intermediários são gravados em arquivos; • O processo mestre os encaminha para os escravos que realizam reduce;
  23. 23. Processamento MapReduce • Mestre envia ao processo escravo o endereço dos arquivos intermediários; • O processo escravo recupera remotamente o conjunto de pares e inicia o ordenamento e agrupamento.
  24. 24. Processamento MapReduce • Executa a função de redução, gerando um arquivo de saída para cada nó escravo que executou a redução.
  25. 25. Processamento MapReduce
  26. 26. Processamento MapReduce - WordCount • Problema da contagem da frequência das palavras, em uma base de documentos.
  27. 27. Processamento MapReduce - WordCount
  28. 28. Demais aplicações • Indexação para busca de palavras em páginas web; • Organização de notícias; • Processamento de imagens de satélites; • Processamento de linguagem natural do tradutor
  29. 29. Problemas... • Programar diretamente com Map/Reduce não é intuitivo; • Relativa complexidade de comandos para executar consultas nos arquivos.
  30. 30. Apache Hive • Executa tarefas de Map/Reduce em arquivos físicos no HDFS; • Linguagem de consulta ad hoc (HiveQL), bastante parecida com SQL; • As estruturas de tabelas não existem fisicamente (apenas nos arquivos de metadados do Hive).
  31. 31. Apache Hive
  32. 32. Consulta Hive WordCount
  33. 33. Dúvidas?

×