DATA LAKES
COM HADOOP E SPARK
AGILE ANALYTICS NA PRÁTICA
Ricardo Wendell
rwendell@thoughtworks.com
João Paulo
jsilva@thoughtworks.com
AGENDA
Introdução
Data Warehousing e projetos tradicionais
Arquiteturas de Data Lake
Hadoop e Spark
Tópicos relacionados
Conclusão
2
INTRODUÇÃO
3
4Fonte: http://socialtimes.com/one-minute-internet-infographic_b147855
5
BIG DATA
6
BIG DATA
V V V V
7
VOLUME
“DADOS EM REPOUSO”
8
VOLUME2.5 QUINTILHÕES
DE BYTES GERADOS POR DIA!
9
VELOCIDADE
“DADOS EM MOVIMENTO”
10
VARIEDADE
“DADOS EM MUITOS FORMATOS”
11
VERACIDADE
“DADOS EM DÚVIDA”
12
DATA SCIENCE
13
14Fonte: http://www.shoesofprey.com/blog/pic/ahFzfnNob2Vzb2ZwcmV5LWhyZHIWCxINQmxvZ0ltYWdlRGF0YRiWxuoJDA.jpg
15Fonte: http://ecx.images-amazon.com/images/I/81D5CBkXL6L._SL1500_.jpg
16Fonte: http://www.portalgildabonfim.com.br/site/wp-content/uploads/2014/02/beneficios-da-castanha-do-para-na-barra-de-cereal.png
17
OPORTUNIDADES
18
VAREJO FINANÇAS SAÚDE MOBILE ONGS FÁBRICAS
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
20
DATA SCIENTIST


DATA ENGINEER
21Fonte: https://www.flickr.com/photos/marsdd/2986989396
22Fonte: http://www.forbes.com/sites/danwoods/2014/08/28/why-you-should-hire-a-robot-to-write-for-you/
23
O S E M N
24
O S E M N
ABORDAGENS
TRADICIONAIS
25
DATAWAREHOUSE MULTI-CAMADAS GENÉRICO
26
ANALYTICS TRADICIONAL
27
DATA WAREHOUSING E BI
28
ABORDAGENS TRADICIONAIS
29
ABORDAGENS TRADICIONAIS
30
Grande foco em TI!
“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
Diferenciação
O que aconteceu?
Descritivo
Por que aconteceu?
Diagnóstico
O que irá acontecer?
Preditivo Como podemos
fazer acontecer?
Prescritivo
Valor
Complexidade
Valor
Complexidade
Diferenciação
O que aconteceu?
Descritivo
Por que aconteceu?
Diagnóstico
O que irá acontecer?
Preditivo Como podemos
fazer acontecer?
Prescritivo
DATA SCIENCE
BI TRADICIONAL
34
2012
35
HOJE
DATA LAKES
E AGILE ANALYTICS
36
37
Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
38
Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
39
Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
40
Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
ARQUITETURA LAMBDA
41
42
ARQUITETURA LAMBDA
43
ARQUITETURA LAMBDA
44
ARQUITETURA LAMBDA
45
PIPELINE DE DADOS ADAPTATIVO
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
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
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
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écnicos
49
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
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
52Fonte: http://martinfowler.com/bliki/DataLake.html
53
54
AGILE ANALYTICS
55
O S E M N
Data Scientist
Data Engineer
Delivery Team
DESCOBRIR ENTREGAREXPERIMENTAR
HIPÓTESE
PROTÓTIPO
PESQUISA
Ideias
Coletar feedack
CONSUMERS
AGILE ANALYTICS
56
57
Conhecimento
acionável
Data
Science
Data
Engineering
Entrega
Contínua
Aprendizado
Lean
Insights
acionáveis=
MÉTODOS TRADICIONAIS E AGILE ANALYTICS
58
PARALELISMO
59
PARALELISMO: DUAS ABORDAGENS
Task Parallel programming
Data parallel programming
60
||-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
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
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
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
65
Objetivo
Tornar disponível online seu arquivo de 11
milhões de artigos, desde 1851
Tarefa
Converter 4TB de imagens TIFF para PDFs
66
Solução
Amazon Elastic Compute Cloud (EC2) e
Simple Storage System (S3)
Tempo ?
Custo ?
67
Solução
Amazon Elastic Compute Cloud (EC2) e
Simple Storage System (S3)
Em menos de 24h
por cerca de $240
HADOOP
68
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
HADOOP
70Fonte: http://hortonworks.com/blog/apache-hadoop-2-is-ga/
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
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
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 1
2
2
24 5
3
3 4 4
55
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
MAP REDUCE
75
MAP SORT / SHUFFLE REDUCE
Fonte: https://mm-tom.s3.amazonaws.com/blog/MapReduce.png
MAP REDUCE: EXEMPLO
76Fonte: https://www.ibm.com/developerworks/community/blogs/bigdata-br/entry/infosphere_biginsights_notas_sobre_hadoop_mapreduce?lang=en
HANDS ON
77
https://goo.gl/quFE6K
78
79
SPARK
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
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
82
ONDE SPARK SE ENCAIXA NO ECOSSISTEMA HADOOP?
83
SPARK E MODOS DE GERENCIAMENTO DO CLUSTER
Standalone
Apache Mesos
Hadoop YARN
84
SPARK E ARMAZENAMENTO
HDFS
HBase
Cassandra
JDBC data sources
* Qualquer fonte de dados que ofereça um InputFormat Hadoop…
85
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
COMPARANDO COM MAPREDUCE…
87
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
RDD: RESILIENT DISTRIBUTED DATASET
Lazily evaluated
Proporciona um reuso de dados eficiente
Várias operações para processamento de dados
89
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
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
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
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
TESTANDO…
94
BENCHMARK DE ORDENAÇÃO DE PETABYTES
95
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
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
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
HANDS ON
99
IMPALA
100
CLOUDERA IMPALA
101
HANDS ON
102
AVANÇANDO…
103
Zoo
keeper
YARN / Mesos
Sqoop
Map
Reduce
Hive Impala
Hue
Cloudera
TABELA PERIÓDICA DO HADOOP
HDFS
Spark
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
NETFLIX ANALYTICS PIPELINE
106
NETFLIX VISION
107
LINKEDIN
108
E MAIS UM EXEMPLO…
109
CONCLUSÃO
110
111
PENSE GRANDE
COMECE PEQUENO
OBRIGADO!
João Paulo
<jsilva@thoughtworks.com>
Ricardo Wendell
<rwendell@thoughtworks.com>

Mais conteúdo relacionado

PDF
Arquitetura do Framework Apache Hadoop 2.6
PDF
Data Lakes com Hadoop e Spark: Agile Analytics na prática
PDF
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
PDF
Hadoop - Primeiros passos
PPTX
Proposta de arquitetura Hadoop
PPTX
Hadoop - Mãos à massa! Qcon2014
PDF
Big Data - O que é o hadoop, map reduce, hdfs e hive
Arquitetura do Framework Apache Hadoop 2.6
Data Lakes com Hadoop e Spark: Agile Analytics na prática
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Hadoop - Primeiros passos
Proposta de arquitetura Hadoop
Hadoop - Mãos à massa! Qcon2014
Big Data - O que é o hadoop, map reduce, hdfs e hive

Mais procurados (15)

PDF
TDC 2014 - Hadoop Hands ON
PDF
Arquiteturas, Tecnologias e Desafios para Análise de BigData
PPSX
Recuperação de dados em HD Samsung
PPTX
Machine learning com Apache Spark
ODP
Seminário Hadoop
PDF
SAN: Storage Area Network
PPTX
ENIC/UFPB 2009. Arquitetura de Segurança Baseada em Security Paterns Para o O...
PDF
No sql o_que_e_isso.key
PDF
PDF
Web Seminário sobre Varnish+Nginx+Apache
ODP
No sql std
PPTX
Uma Proposta de Arquitetura de Alto Desempenho para Sistemas PACS Baseada em ...
PDF
Curso de Performance and Tuning - Linux
PPTX
Azure Weekend 2016 - Bancos de Dados no Azure
TDC 2014 - Hadoop Hands ON
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Recuperação de dados em HD Samsung
Machine learning com Apache Spark
Seminário Hadoop
SAN: Storage Area Network
ENIC/UFPB 2009. Arquitetura de Segurança Baseada em Security Paterns Para o O...
No sql o_que_e_isso.key
Web Seminário sobre Varnish+Nginx+Apache
No sql std
Uma Proposta de Arquitetura de Alto Desempenho para Sistemas PACS Baseada em ...
Curso de Performance and Tuning - Linux
Azure Weekend 2016 - Bancos de Dados no Azure
Anúncio

Destaque (20)

PDF
160921 - YPN Final Copy
PPT
Lacquer ceiling design suggestion | Euroceil IND - UAE
PPTX
Exposicion de tics
PDF
دليل العضوية المهنية للشبكة الاقليمية للمسؤولية الاجتماعية
PPTX
Teaser Institucional Marquise
PDF
الدليل التعريفي بالشبكة الإقليمية للمسؤولية الاجتماعية
PDF
Pré-processamento em Big Data
PDF
Manual cassandra NoSQL
PPTX
All things py
PPTX
Making Big Data a First Class citizen in the enterprise
PPTX
Apache Cassandra - Base de datos
PPTX
Fast Data:The Rebirth of Streaming Analytics
PPTX
The Cassandra Platform - Christos Diou
PPTX
Nosql y cassandra
PPT
Instalacion,Configuracion y Creacion de Una Base de Datos en Apache Cassandra...
PPTX
Hadoop, SQL & NoSQL: No Longer an Either-or Question
PPTX
Apache cassandra
PPTX
Manual apache cassandra y comandos en la shell
PPTX
Hadoop MapReduce Streaming and Pipes
160921 - YPN Final Copy
Lacquer ceiling design suggestion | Euroceil IND - UAE
Exposicion de tics
دليل العضوية المهنية للشبكة الاقليمية للمسؤولية الاجتماعية
Teaser Institucional Marquise
الدليل التعريفي بالشبكة الإقليمية للمسؤولية الاجتماعية
Pré-processamento em Big Data
Manual cassandra NoSQL
All things py
Making Big Data a First Class citizen in the enterprise
Apache Cassandra - Base de datos
Fast Data:The Rebirth of Streaming Analytics
The Cassandra Platform - Christos Diou
Nosql y cassandra
Instalacion,Configuracion y Creacion de Una Base de Datos en Apache Cassandra...
Hadoop, SQL & NoSQL: No Longer an Either-or Question
Apache cassandra
Manual apache cassandra y comandos en la shell
Hadoop MapReduce Streaming and Pipes
Anúncio

Semelhante a Qcon Rio 2015 - Data Lakes Workshop (20)

PPTX
Arquitetura para solução Big Data – open source
PDF
Big data para programadores convencionais
PPTX
BIG DATA na UFSM
PDF
Tecnologias para mineração de dados nas nuvens
PDF
Filesystem distribuído com hadoop!!!
PDF
Treinamento hadoop - dia3
PDF
PHP e Redis
PPTX
Big data e ecossistema hadoop
PDF
Material Seminário NoSQL
PDF
Palestra DataFlow - II São Paulo Perl Workshop
PPTX
SQL Maniacs - SQL Server 2019 Big Data Clusters
PPTX
Sql maniacs sql server 2019 Big Data Clusters
PPTX
Meetup Tivir - Big Data Clusters
PDF
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
PDF
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
PPT
NoSQL & SQL
PPTX
Alta disponibilidade com bancos de dados relacionais no Azure
PPTX
BrunoSQLSaturday424
PDF
Semana Acadêmica ICET - Feevale - 12/04/2014
PDF
NoSQL Livre
Arquitetura para solução Big Data – open source
Big data para programadores convencionais
BIG DATA na UFSM
Tecnologias para mineração de dados nas nuvens
Filesystem distribuído com hadoop!!!
Treinamento hadoop - dia3
PHP e Redis
Big data e ecossistema hadoop
Material Seminário NoSQL
Palestra DataFlow - II São Paulo Perl Workshop
SQL Maniacs - SQL Server 2019 Big Data Clusters
Sql maniacs sql server 2019 Big Data Clusters
Meetup Tivir - Big Data Clusters
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL & SQL
Alta disponibilidade com bancos de dados relacionais no Azure
BrunoSQLSaturday424
Semana Acadêmica ICET - Feevale - 12/04/2014
NoSQL Livre

Mais de João Paulo Leonidas Fernandes Dias da Silva (7)

Último (13)

PPTX
Slide Gêneros textuais: resenha crítica.ppxt
PDF
Óptica geométrica - Vidal.pdfhuuuhhuui
PDF
Inicialização com as bibliotecas pandas e NumpyAula 02.pdf
PDF
DIAGNOSTICO DE AVARIAS EM AUTOMATISMOS INDUSTRIAIS.pdf
PDF
Previsão de Paradas em Máquinas Industriais
PDF
Introdução à ciência de dados Aula 01.pdf
PDF
Investigação Operacional história completa
PDF
01 Anticoag + fibrinol Abr 24 - prof MAISA DIA 020424.pdf
PDF
Planejamento de pesquisa - ANALISE DE DADOS
DOC
Saude Frutal qqqqqqqqqqqqqqqqqqqqqqqqqqq
PDF
POP-28-Administracao-de-medicacao-intramuscular.pdf
PPT
Aula 5 - Percepção e Tomada de Decisão Individual.ppt
PDF
712893401-Geografia-em-perspectiva-3.pdf
Slide Gêneros textuais: resenha crítica.ppxt
Óptica geométrica - Vidal.pdfhuuuhhuui
Inicialização com as bibliotecas pandas e NumpyAula 02.pdf
DIAGNOSTICO DE AVARIAS EM AUTOMATISMOS INDUSTRIAIS.pdf
Previsão de Paradas em Máquinas Industriais
Introdução à ciência de dados Aula 01.pdf
Investigação Operacional história completa
01 Anticoag + fibrinol Abr 24 - prof MAISA DIA 020424.pdf
Planejamento de pesquisa - ANALISE DE DADOS
Saude Frutal qqqqqqqqqqqqqqqqqqqqqqqqqqq
POP-28-Administracao-de-medicacao-intramuscular.pdf
Aula 5 - Percepção e Tomada de Decisão Individual.ppt
712893401-Geografia-em-perspectiva-3.pdf

Qcon Rio 2015 - Data Lakes Workshop