data lakes com hadoop e spark: agile analytics na prática
TRANSCRIPT
![Page 1: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/1.jpg)
DATA LAKES COM HADOOP E SPARK
AGILE ANALYTICS NA PRÁTICA
Ricardo Wendell [email protected]
João Paulo [email protected]
![Page 2: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/2.jpg)
AGENDA
Introdução
Data Warehousing e projetos tradicionais
Arquiteturas de Data Lake
Hadoop e Spark
Tópicos relacionados
Conclusão2
![Page 3: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/3.jpg)
INTRODUÇÃO
3
![Page 4: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/4.jpg)
4Fonte: http://socialtimes.com/one-minute-internet-infographic_b147855
![Page 5: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/5.jpg)
5
BIG DATA
![Page 6: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/6.jpg)
6
BIG DATAV V V V
![Page 7: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/7.jpg)
7
VOLUME
“DADOS EM REPOUSO”
![Page 8: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/8.jpg)
8
VOLUME2.5 QUINTILHÕES DE BYTES GERADOS POR DIA!
![Page 9: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/9.jpg)
9
VELOCIDADE
“DADOS EM MOVIMENTO”
![Page 10: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/10.jpg)
10
VARIEDADE
“DADOS EM MUITOS FORMATOS”
![Page 11: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/11.jpg)
11
VERACIDADE
“DADOS EM DÚVIDA”
![Page 12: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/12.jpg)
12
DATA SCIENCE
![Page 13: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/13.jpg)
13
![Page 14: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/14.jpg)
14Fonte: http://www.shoesofprey.com/blog/pic/ahFzfnNob2Vzb2ZwcmV5LWhyZHIWCxINQmxvZ0ltYWdlRGF0YRiWxuoJDA.jpg
![Page 15: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/15.jpg)
15Fonte: http://ecx.images-amazon.com/images/I/81D5CBkXL6L._SL1500_.jpg
![Page 16: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/16.jpg)
16Fonte: http://www.portalgildabonfim.com.br/site/wp-content/uploads/2014/02/beneficios-da-castanha-do-para-na-barra-de-cereal.png
![Page 17: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/17.jpg)
17
![Page 18: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/18.jpg)
OPORTUNIDADES
18
VAREJO FINANÇAS SAÚDE MOBILE ONGS FÁBRICAS
![Page 19: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/19.jpg)
OPORTUNIDADES
19
VAREJO FINANÇAS SAÚDE MOBILE ONGS FÁBRICAS
Security/Fraud Analytics
Audio/Image/Video Analytics
Text Analytics
Sensor Data Analytics (IoT)
Marketing Analytics
![Page 20: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/20.jpg)
20
DATA SCIENTIST
DATA ENGINEER
![Page 21: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/21.jpg)
21Fonte: https://www.flickr.com/photos/marsdd/2986989396
![Page 22: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/22.jpg)
22Fonte: http://www.forbes.com/sites/danwoods/2014/08/28/why-you-should-hire-a-robot-to-write-for-you/
![Page 23: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/23.jpg)
23
O S E M N
![Page 24: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/24.jpg)
24
O S E M N
![Page 25: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/25.jpg)
ABORDAGENS TRADICIONAIS
25
![Page 26: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/26.jpg)
DATAWAREHOUSE MULTI-CAMADAS GENÉRICO
26
![Page 27: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/27.jpg)
ANALYTICS TRADICIONAL
27
![Page 28: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/28.jpg)
DATA WAREHOUSING E BI
28
![Page 29: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/29.jpg)
ABORDAGENS TRADICIONAIS
29
![Page 30: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/30.jpg)
ABORDAGENS TRADICIONAIS
30
Grande foco em TI!
![Page 31: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/31.jpg)
“Data warehousing e BI são os maiores gastos no orçamento de CIOs, e têm tido
limitado valor para os negócios.”
— Jeff Smith, CIO da IBM
31
![Page 32: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/32.jpg)
Difere
nciação
O que aconteceu?
DescritivoPor que aconteceu?
Diagnóstico
O que irá acontecer?
Preditivo Como podemos fazer acontecer?
PrescritivoVa
lor
Complexidade
![Page 33: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/33.jpg)
Valo
r
Complexidade
Difere
nciação
O que aconteceu?
DescritivoPor que aconteceu?
Diagnóstico
O que irá acontecer?
Preditivo Como podemos fazer acontecer?
Prescritivo
DATA SCIENCE
BI TRADICIONAL
![Page 34: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/34.jpg)
34
2012
![Page 35: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/35.jpg)
35
HOJE
![Page 36: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/36.jpg)
DATA LAKES E AGILE ANALYTICS
36
![Page 37: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/37.jpg)
37
Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
![Page 38: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/38.jpg)
38
Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
![Page 39: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/39.jpg)
39
Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
![Page 40: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/40.jpg)
40
Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
![Page 41: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/41.jpg)
ARQUITETURA LAMBDA
41
![Page 42: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/42.jpg)
42
ARQUITETURA LAMBDA
![Page 43: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/43.jpg)
43
ARQUITETURA LAMBDA
![Page 44: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/44.jpg)
44
ARQUITETURA LAMBDA
![Page 45: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/45.jpg)
45
PIPELINE DE DADOS ADAPTATIVO
![Page 46: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/46.jpg)
QUAL O NOSSO DESAFIO?
Dados contidos em múltiplos sistemas
Que são frequentemente armazenados em diferentes formatos
E idealmente ter uma fonte da verdade, de onde derivar os dados
46
![Page 47: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/47.jpg)
Pense em um datamart como uma loja de garrafas
de água: limpa, embalada e organizada para fácil
consumo; o lago de dados é um grande corpo de
água em um estado mais natural.
O conteúdo do lago de dados flui de uma fonte para preencher o lago, e vários usuários podem
vir examinar, mergulhar ou pegar amostras.
James Dixon, CTO of Pentaho
47
![Page 48: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/48.jpg)
An Enterprise Data Lake is an immutable data store of largely un-processed “raw” data, acting as a source for other
processing streams but also made directly available to a
significant number of internal, technical consumers using some
efficient processing engine. Examples include HDFS or HBase within a Hadoop, Spark or Storm processing framework. We
can contrast this with a typical system that collects raw data
into some highly restricted space that is only made available to
these consumers as the end result of a highly controlled ETL
process.
ThoughtWorks Tech Radar
48
![Page 49: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/49.jpg)
PROPRIEDADES DE DATA LAKES
A ingestão dos dados deve ser "push based", ou seja, os dados devem ser "empurrados" para o sistema ao invés de serem ingeridos periodicamente através de processamentos em lote
Os dados ingeridos devem ser armazenados na sua forma mais pura
A solução deve ser escalável horizontalmente, em termos de capacidade de armazenamento e processamento
Não serve ao usuário final, mas sim a usuários técnicos49
![Page 50: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/50.jpg)
OBJETIVOS DO DATA LAKE
Reduzir o custo da ingestão de novos tipos de dados
Diminuir o tempo que leva para que atualizações nos sistemas operacionais cheguem até os sistemas analíticos
Permitir o processamento de volumes de dados bem maiores que os sistemas de DW tradicionais
50
![Page 51: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/51.jpg)
OBJETIVOS DO DATA LAKE
Eliminar gargalos devido à falta de desenvolvedores especializados em ETL ou à excessivo up front design do modelo de dados
Empoderar desenvolvedores a criarem seus próprios pipelines de processamento de dados de uma maneira ágil — quando for preciso e da forma que for preciso — dentro de limites razoáveis
51
![Page 52: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/52.jpg)
52Fonte: http://martinfowler.com/bliki/DataLake.html
![Page 53: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/53.jpg)
53
![Page 54: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/54.jpg)
54
AGILE ANALYTICS
![Page 55: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/55.jpg)
55
O S E M N
![Page 56: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/56.jpg)
Data Scientist Data Engineer Delivery Team
DESCOBRIR ENTREGAREXPERIMENTAR
HIPÓTESE
PROTÓTIPO
PESQUISA
Ideias
Coletar feedack
CONSUMERS
AGILE ANALYTICS
56
![Page 57: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/57.jpg)
57
Conhecimento acionável
Data Science
Data Engineering
Entrega Contínua
Aprendizado Lean
Insights acionáveis=
![Page 58: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/58.jpg)
MÉTODOS TRADICIONAIS E AGILE ANALYTICS
58
![Page 59: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/59.jpg)
PARALELISMO
59
![Page 60: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/60.jpg)
PARALELISMO: DUAS ABORDAGENS
Task Parallel programming
Data parallel programming
60
![Page 61: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/61.jpg)
||-ISMO DE DADOS
Foco em distribuir os dados através de diferentes nós de computação paralela
Cada processador executa a mesma tarefa em diferentes fatias de dados distribuídos
Enfatiza a natureza distribuída dos dados, em oposição ao processamento
61
![Page 62: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/62.jpg)
EXEMPLO
define foo(array d)
if CPU = "a"
lower_limit := 1
upper_limit := round(d.length/2)
else if CPU = "b"
lower_limit := round(d.length/2) + 1
upper_limit := d.length
for i from lower_limit to upper_limit by 1
do_something_with(d[i])
end
62
![Page 63: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/63.jpg)
EXEMPLO
define foo(array d)
if CPU = "a"
lower_limit := 1
upper_limit := round(d.length/2)
else if CPU = "b"
lower_limit := round(d.length/2) + 1
upper_limit := d.length
for i from lower_limit to upper_limit by 1
do_something_with(d[i])
end
63
Acoplamento do código ao número de CPUs da máquina
Você precisa se preocupar em como dividir os dados através dos diferentes nós de computação
Você precisa se preocupar explicitamente em como acumular e consolidar a saída final a partir das
computações em paralelo
![Page 64: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/64.jpg)
COMO UM DESENVOLVEDOR…
Eu quero escrever meu código de tal maneira que ele possa ser executado em paralelo
Eu não quero escrever código baseado em quantas CPUs/máquinas tenho disponíveis no data center
Eu não quero me preocupar em como os dados de entrada devem ser divididos para a execução em paralelo
Eu não quero me preocupar em como a saída final deve ser acumulada e consolidada a partir das unidades rodando em paralelo
64
![Page 65: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/65.jpg)
65
Objetivo Tornar disponível online seu arquivo de 11 milhões de artigos, desde 1851
Tarefa Converter 4TB de imagens TIFF para PDFs
![Page 66: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/66.jpg)
66
Solução Amazon Elastic Compute Cloud (EC2) e Simple Storage System (S3)
Tempo ? Custo ?
![Page 67: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/67.jpg)
67
Solução Amazon Elastic Compute Cloud (EC2) e Simple Storage System (S3)
Em menos de 24h por cerca de $240
![Page 68: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/68.jpg)
HADOOP
68
![Page 69: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/69.jpg)
HADOOP
Framework para armazenamento e computação distribuída para processamento de dados em larga escala
Não impõe restrição aos formatos dos dados sendo processados
Projeto da Apache Software Foundation
Implementado em Java, suportado em todas as plataformas *nix, Windows
Objetivo: computação/armazenamento linearmente escalável usando hardware comum
69
![Page 70: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/70.jpg)
HADOOP
70Fonte: http://hortonworks.com/blog/apache-hadoop-2-is-ga/
![Page 71: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/71.jpg)
HDFS
Sistema de arquivos distribuído Cada arquivo pode estar espalhado por múltiplos nós Clientes podem acessar arquivos de qualquer nó, como se fosse local
Tolerância a falhas e alta disponibilidade
APIs Java/Scala Shell HDFS suporta vários comandos Interface web para navegar pelo sistema de arquivos
71
![Page 72: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/72.jpg)
HDFS: PRINCIPAIS CONCEITOS
Sistema de arquivos hierárquico - similar a Unix/Linux
Metadados de arquivos e diretórios
nome, owner, group owner, permissões, status
Arquivos divididos em blocos, que são distribuídos
72
![Page 73: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/73.jpg)
REPLICAÇÃO DE BLOCOS
73
name:/users/wendell/arquivo.data, copies:2, blocks:{1,3} name:/users/jpaulo/dados.gzip, copies:3, blocks:{2,4,5}
NAMENODE (MASTER)
DATANODES (SLAVES)
1 12
2 24 5
33 4 4
55
![Page 74: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/74.jpg)
PARA QUE CENÁRIOS HDFS NÃO É TÃO BOM ASSIM?
Aplicações de baixa latência
Muitos arquivos pequenos
Acesso aleatório
Updates de dados
Algoritmos iterativos
74
![Page 75: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/75.jpg)
MAP REDUCE
75
MAP SORT / SHUFFLE REDUCE
Fonte: https://mm-tom.s3.amazonaws.com/blog/MapReduce.png
![Page 76: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/76.jpg)
MAP REDUCE: EXEMPLO
76Fonte: https://www.ibm.com/developerworks/community/blogs/bigdata-br/entry/infosphere_biginsights_notas_sobre_hadoop_mapreduce?lang=en
![Page 77: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/77.jpg)
HANDS ON
77
![Page 78: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/78.jpg)
https://goo.gl/quFE6K
78
![Page 79: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/79.jpg)
79
SPARK
![Page 80: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/80.jpg)
PONTOS DE DOR COM MAPREDUCE
Latência
Limitado a fases de Map e Reduce
Não é trivial testar…
Pode resultar em fluxos complexos
Reuso de dados requer escrita no HDFS
80
![Page 81: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/81.jpg)
O QUE É APACHE SPARK?
Cluster Computing Engine
Abstrai o armazenamento e gerenciamento do cluster
Interface de dados unificada
Modelo de programação fácil
API em Scala, Python, Java, R
81
![Page 82: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/82.jpg)
82
![Page 83: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/83.jpg)
ONDE SPARK SE ENCAIXA NO ECOSSISTEMA HADOOP?
83
![Page 84: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/84.jpg)
SPARK E MODOS DE GERENCIAMENTO DO CLUSTER
Standalone
Apache Mesos
Hadoop YARN
84
![Page 85: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/85.jpg)
SPARK E ARMAZENAMENTO
HDFS
HBase
Cassandra
JDBC data sources
* Qualquer fonte de dados que ofereça um InputFormat Hadoop…
85
![Page 86: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/86.jpg)
EXEMPLO DE CONTADOR DE PALAVRAS
val file = sparkContext.textFile("input path")
val counts = file.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey((a, b) => a + b)
counts.saveAsTextFile("destination path")
86
![Page 87: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/87.jpg)
COMPARANDO COM MAPREDUCE…
87
![Page 88: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/88.jpg)
RDD: RESILIENT DISTRIBUTED DATASET
Coleção de objetos somente leitura
Particionados através de um conjunto de máquinas
Podem ser reconstruídos caso uma das partições seja perdida
Pode ser reutilizado
Pode ser cacheado em memória
88
![Page 89: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/89.jpg)
RDD: RESILIENT DISTRIBUTED DATASET
Lazily evaluated
Proporciona um reuso de dados eficiente
Várias operações para processamento de dados
89
![Page 90: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/90.jpg)
Conjunto de partições (“splits”) +
Lista de dependências de outros RDDs +
Função para computar uma partição, dadas suas dependências
90
INTERFACE DOS RDDS
![Page 91: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/91.jpg)
Transformações
Retorna um novo RDD com a transformação aplicada
Lazy
Podem ser encadeadas
Ações
Executam o DAG de transformações
91
OPERAÇÕES COM RDDS
![Page 92: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/92.jpg)
RDD: EXEMPLOS DE TRANSFORMAÇÕES
map(f : T ⇒ U) : RDD[T] ⇒ RDD[U]
filter(f : T ⇒ Bool) : RDD[T] ⇒ RDD[T]
flatMap(f : T ⇒ Seq[U]) : RDD[T] ⇒ RDD[U]
union() : (RDD[T],RDD[T]) ⇒ RDD[T]
join() : (RDD[(K, V)],RDD[(K, W)]) ⇒ RDD[(K, (V, W))]
groupByKey() : RDD[(K, V)] ⇒ RDD[(K, Seq[V])]
reduceByKey(f : (V,V) ⇒ V) : RDD[(K, V)] ⇒ RDD[(K, V)]
92
![Page 93: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/93.jpg)
count() : RDD[T] ⇒ Long
collect() : RDD[T] ⇒ Seq[T]
reduce(f : (T,T) ⇒ T) : RDD[T] ⇒ T
lookup(k : K) : RDD[(K, V)] ⇒ Seq[V]
93
RDD: EXEMPLOS DE AÇÕES
![Page 94: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/94.jpg)
TESTANDO…
94
![Page 95: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/95.jpg)
BENCHMARK DE ORDENAÇÃO DE PETABYTES
95
![Page 96: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/96.jpg)
SHUFFLE NÃO É OBRIGATÓRIO
Programas não ficam limitados a fases de map e reduce
Shuffle e sort não são mais obrigatórios entre fases
96
![Page 97: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/97.jpg)
IO REDUZIDO
Não é necessário IO de disco entre fases, devido ao pipeline de operações
Não há IO de rede a não ser que um shuffle seja necessário
97
![Page 98: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/98.jpg)
CACHEAMENTO DE DADOS EM MEMÓRIA
Cache opcional em memória
Engine do DAG pode aplicar otimizações, já que quando uma ação é chamada ele sabe todas as transformações a aplicar
98
![Page 99: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/99.jpg)
HANDS ON
99
![Page 100: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/100.jpg)
IMPALA
100
![Page 101: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/101.jpg)
CLOUDERA IMPALA
101
![Page 102: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/102.jpg)
HANDS ON
102
![Page 103: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/103.jpg)
AVANÇANDO…
103
![Page 104: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/104.jpg)
Zoo keeper
YARN / Mesos
Sqoop
Map Reduce Hive Impala
Hue
Cloudera
TABELA PERIÓDICA DO HADOOP
HDFS
Spark
![Page 105: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/105.jpg)
Zoo keeper
YARN / Mesos
Drill Spark SQL Tez
Oozie SqoopMahout Oryx
Map Reduce Hive Impala
H2O Lens Kylin
File Formats Avro,
Parquet, ORC
HBase
PIG
Cloudera Manager Hue Ambari
Cloudera Hortonworks MapR
TABELA PERIÓDICA DO HADOOP
HDFS
Presto
Falcon GiraphSinga Flume Storm Spark Streaming Samza Kafka Hama
Pivotal
Spark
REEF SamoaData Fu Crunch Book keeper Sentry Aurora Myriad Cascading
Phoenix
![Page 106: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/106.jpg)
NETFLIX ANALYTICS PIPELINE
106
![Page 107: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/107.jpg)
NETFLIX VISION
107
![Page 108: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/108.jpg)
108
![Page 109: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/109.jpg)
E MAIS UM EXEMPLO…
109
![Page 110: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/110.jpg)
CONCLUSÃO
110
![Page 111: Data Lakes com Hadoop e Spark: Agile Analytics na prática](https://reader030.vdocuments.site/reader030/viewer/2022020314/58764f451a28ab0d198b6581/html5/thumbnails/111.jpg)
111
PENSE GRANDECOMECE PEQUENO