implementando soluções em big data com apache hadoop/hive
DESCRIPTION
Palestra ministrada no uaijugclodday, link http://www.uaijugcloudday.com.br/TRANSCRIPT
![Page 1: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/1.jpg)
Implementando soluções em Big Data com Apache Hadoop/Hive
Carlos Eduardo [email protected]
http://carloseduardoxp.wordpress.com
“A melhor maneira de fugir do seu problema é resolvê-lo” – Robert Anthony
![Page 2: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/2.jpg)
Quem sou?
• Professor Efetivo no IFTM Campus Uberlândia-Centro;
• Projetos bem sucedidos em alguns dos principais clientes de Uberlândia e região.
![Page 3: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/3.jpg)
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
![Page 4: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/4.jpg)
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.
![Page 5: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/5.jpg)
Novos ventos – era da informação
• Sistemas convencionais de armazenamento e processamento de dados não são suficientes.
![Page 6: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/6.jpg)
Novos ventos – era da informação
• Novas técnicas foram criadas e “white papers” publicados.
![Page 7: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/7.jpg)
Big Data
• Termo usado para referenciar conjuntos de dados com características extremas.
![Page 8: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/8.jpg)
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.
![Page 9: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/9.jpg)
Big Data - Velocidade
Pesquisas com “Search Assist” (terabytes de log por dia):
• Solução convencional: 26 dias;
• Solução noSql(Hadoop): 20 minutos.
![Page 10: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/10.jpg)
Big Data - Variedade
Suporta nativamente:
• Dados estruturados;
• Dados semi Estruturados;
• Dados não estruturados.
![Page 11: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/11.jpg)
Alternativas?
• Data Warehouse;
• Arquiteturas MPP;
• Soluções noSql como Apache Hadoop.
![Page 12: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/12.jpg)
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.
![Page 13: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/13.jpg)
Apache Hadoop
“Até 2018, metade dos dados a serem processados no mundo, serão feitos pelo Hadoop”.
![Page 14: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/14.jpg)
Hadoop - módulos
![Page 15: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/15.jpg)
ArmazenamentoHDFS
• Sistema de Arquivos distribuído;
• Projetado para processar em lote;
• Altamente tolerante a falhas.
![Page 16: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/16.jpg)
ArmazenamentoHDFS
• Estrutura mestre/escravo.
![Page 17: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/17.jpg)
Processamento MapReduce
• “Dividir para conquistar”;
• Abstrai a computação paralela em apenas duas funções: map e reduce;
![Page 18: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/18.jpg)
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}
![Page 19: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/19.jpg)
Processamento MapReduce
• Divide o arquivo de entrada em blocos;
• Copia o programa que contém as funções Map e Reduce para o cluster
![Page 20: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/20.jpg)
Processamento MapReduce
• O mestre orquestra os escravos e atribui a cada um uma tarefa map ou reduce
![Page 21: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/21.jpg)
Processamento MapReduce
• Cada escravo que executa a tarefa map lê um conteúdo do bloco, definido pelo processo mestre;
• Resultado em memória.
![Page 22: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/22.jpg)
Processamento MapReduce
• Periodicamente os pares intermediários são gravados em arquivos;
• O processo mestre os encaminha para os escravos que realizam reduce;
![Page 23: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/23.jpg)
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.
![Page 24: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/24.jpg)
Processamento MapReduce
• Executa a função de redução, gerando um arquivo de saída para cada nó escravo que executou a redução.
![Page 25: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/25.jpg)
Processamento MapReduce
![Page 26: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/26.jpg)
Processamento MapReduce - WordCount
• Problema da contagem da frequência das palavras, em uma base de documentos.
![Page 27: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/27.jpg)
Processamento MapReduce - WordCount
![Page 28: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/28.jpg)
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
![Page 29: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/29.jpg)
Problemas...
• Programar diretamente com Map/Reduce não é intuitivo;
• Relativa complexidade de comandos para executar consultas nos arquivos.
![Page 30: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/30.jpg)
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).
![Page 31: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/31.jpg)
Apache Hive
![Page 32: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/32.jpg)
Consulta Hive WordCount
![Page 33: Implementando soluções em Big Data com Apache Hadoop/Hive](https://reader031.vdocuments.site/reader031/viewer/2022020101/558e9dd11a28ab53528b4685/html5/thumbnails/33.jpg)
Dúvidas?