qcon rio 2015 - data lakes workshop

112
DATA LAKES COM HADOOP E SPARK AGILE ANALYTICS NA PRÁTICA Ricardo Wendell [email protected] João Paulo [email protected]

Upload: joao-paulo-leonidas-fernandes-dias-da-silva

Post on 27-Jan-2017

177 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: Qcon Rio 2015 - Data Lakes Workshop

DATA LAKES COM HADOOP E SPARK

AGILE ANALYTICS NA PRÁTICA

Ricardo Wendell [email protected]

João Paulo [email protected]

Page 2: Qcon Rio 2015 - Data Lakes Workshop

AGENDA

Introdução

Data Warehousing e projetos tradicionais

Arquiteturas de Data Lake

Hadoop e Spark

Tópicos relacionados

Conclusão2

Page 3: Qcon Rio 2015 - Data Lakes Workshop

INTRODUÇÃO

3

Page 4: Qcon Rio 2015 - Data Lakes Workshop

4Fonte: http://socialtimes.com/one-minute-internet-infographic_b147855

Page 5: Qcon Rio 2015 - Data Lakes Workshop

5

BIG DATA

Page 6: Qcon Rio 2015 - Data Lakes Workshop

6

BIG DATAV V V V

Page 7: Qcon Rio 2015 - Data Lakes Workshop

7

VOLUME

“DADOS EM REPOUSO”

Page 8: Qcon Rio 2015 - Data Lakes Workshop

8

VOLUME2.5 QUINTILHÕES DE BYTES GERADOS POR DIA!

Page 9: Qcon Rio 2015 - Data Lakes Workshop

9

VELOCIDADE

“DADOS EM MOVIMENTO”

Page 10: Qcon Rio 2015 - Data Lakes Workshop

10

VARIEDADE

“DADOS EM MUITOS FORMATOS”

Page 11: Qcon Rio 2015 - Data Lakes Workshop

11

VERACIDADE

“DADOS EM DÚVIDA”

Page 12: Qcon Rio 2015 - Data Lakes Workshop

12

DATA SCIENCE

Page 13: Qcon Rio 2015 - Data Lakes Workshop

13

Page 14: Qcon Rio 2015 - Data Lakes Workshop

14Fonte: http://www.shoesofprey.com/blog/pic/ahFzfnNob2Vzb2ZwcmV5LWhyZHIWCxINQmxvZ0ltYWdlRGF0YRiWxuoJDA.jpg

Page 15: Qcon Rio 2015 - Data Lakes Workshop

15Fonte: http://ecx.images-amazon.com/images/I/81D5CBkXL6L._SL1500_.jpg

Page 16: Qcon Rio 2015 - Data Lakes Workshop

16Fonte: http://www.portalgildabonfim.com.br/site/wp-content/uploads/2014/02/beneficios-da-castanha-do-para-na-barra-de-cereal.png

Page 17: Qcon Rio 2015 - Data Lakes Workshop

17

Page 18: Qcon Rio 2015 - Data Lakes Workshop

OPORTUNIDADES

18

VAREJO FINANÇAS SAÚDE MOBILE ONGS FÁBRICAS

Page 19: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

20

DATA SCIENTIST

DATA ENGINEER

Page 21: Qcon Rio 2015 - Data Lakes Workshop

21Fonte: https://www.flickr.com/photos/marsdd/2986989396

Page 22: Qcon Rio 2015 - Data Lakes Workshop

22Fonte: http://www.forbes.com/sites/danwoods/2014/08/28/why-you-should-hire-a-robot-to-write-for-you/

Page 23: Qcon Rio 2015 - Data Lakes Workshop

23

O S E M N

Page 24: Qcon Rio 2015 - Data Lakes Workshop

24

O S E M N

Page 25: Qcon Rio 2015 - Data Lakes Workshop

ABORDAGENS TRADICIONAIS

25

Page 26: Qcon Rio 2015 - Data Lakes Workshop

DATAWAREHOUSE MULTI-CAMADAS GENÉRICO

26

Page 27: Qcon Rio 2015 - Data Lakes Workshop

ANALYTICS TRADICIONAL

27

Page 28: Qcon Rio 2015 - Data Lakes Workshop

DATA WAREHOUSING E BI

28

Page 29: Qcon Rio 2015 - Data Lakes Workshop

ABORDAGENS TRADICIONAIS

29

Page 30: Qcon Rio 2015 - Data Lakes Workshop

ABORDAGENS TRADICIONAIS

30

Grande foco em TI!

Page 31: Qcon Rio 2015 - Data Lakes Workshop

“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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

34

2012

Page 35: Qcon Rio 2015 - Data Lakes Workshop

35

HOJE

Page 36: Qcon Rio 2015 - Data Lakes Workshop

DATA LAKES E AGILE ANALYTICS

36

Page 37: Qcon Rio 2015 - Data Lakes Workshop

37

Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html

Page 38: Qcon Rio 2015 - Data Lakes Workshop

38

Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html

Page 39: Qcon Rio 2015 - Data Lakes Workshop

39

Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html

Page 40: Qcon Rio 2015 - Data Lakes Workshop

40

Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html

Page 41: Qcon Rio 2015 - Data Lakes Workshop

ARQUITETURA LAMBDA

41

Page 42: Qcon Rio 2015 - Data Lakes Workshop

42

ARQUITETURA LAMBDA

Page 43: Qcon Rio 2015 - Data Lakes Workshop

43

ARQUITETURA LAMBDA

Page 44: Qcon Rio 2015 - Data Lakes Workshop

44

ARQUITETURA LAMBDA

Page 45: Qcon Rio 2015 - Data Lakes Workshop

45

PIPELINE DE DADOS ADAPTATIVO

Page 46: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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 53: Qcon Rio 2015 - Data Lakes Workshop

53

Page 54: Qcon Rio 2015 - Data Lakes Workshop

54

AGILE ANALYTICS

Page 55: Qcon Rio 2015 - Data Lakes Workshop

55

O S E M N

Page 56: Qcon Rio 2015 - Data Lakes Workshop

Data Scientist Data Engineer Delivery Team

DESCOBRIR ENTREGAREXPERIMENTAR

HIPÓTESE

PROTÓTIPO

PESQUISA

Ideias

Coletar feedack

CONSUMERS

AGILE ANALYTICS

56

Page 57: Qcon Rio 2015 - Data Lakes Workshop

57

Conhecimento acionável

Data Science

Data Engineering

Entrega Contínua

Aprendizado Lean

Insights acionáveis=

Page 58: Qcon Rio 2015 - Data Lakes Workshop

MÉTODOS TRADICIONAIS E AGILE ANALYTICS

58

Page 59: Qcon Rio 2015 - Data Lakes Workshop

PARALELISMO

59

Page 60: Qcon Rio 2015 - Data Lakes Workshop

PARALELISMO: DUAS ABORDAGENS

Task Parallel programming

Data parallel programming

60

Page 61: Qcon Rio 2015 - Data Lakes Workshop

||-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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

66

Solução Amazon Elastic Compute Cloud (EC2) e Simple Storage System (S3)

Tempo ? Custo ?

Page 67: Qcon Rio 2015 - Data Lakes Workshop

67

Solução Amazon Elastic Compute Cloud (EC2) e Simple Storage System (S3)

Em menos de 24h por cerca de $240

Page 68: Qcon Rio 2015 - Data Lakes Workshop

HADOOP

68

Page 69: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

HADOOP

70Fonte: http://hortonworks.com/blog/apache-hadoop-2-is-ga/

Page 71: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

MAP REDUCE

75

MAP SORT / SHUFFLE REDUCE

Fonte: https://mm-tom.s3.amazonaws.com/blog/MapReduce.png

Page 76: Qcon Rio 2015 - Data Lakes Workshop

MAP REDUCE: EXEMPLO

76Fonte: https://www.ibm.com/developerworks/community/blogs/bigdata-br/entry/infosphere_biginsights_notas_sobre_hadoop_mapreduce?lang=en

Page 77: Qcon Rio 2015 - Data Lakes Workshop

HANDS ON

77

Page 78: Qcon Rio 2015 - Data Lakes Workshop

https://goo.gl/quFE6K

78

Page 79: Qcon Rio 2015 - Data Lakes Workshop

79

SPARK

Page 80: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

82

Page 83: Qcon Rio 2015 - Data Lakes Workshop

ONDE SPARK SE ENCAIXA NO ECOSSISTEMA HADOOP?

83

Page 84: Qcon Rio 2015 - Data Lakes Workshop

SPARK E MODOS DE GERENCIAMENTO DO CLUSTER

Standalone

Apache Mesos

Hadoop YARN

84

Page 85: Qcon Rio 2015 - Data Lakes Workshop

SPARK E ARMAZENAMENTO

HDFS

HBase

Cassandra

JDBC data sources

* Qualquer fonte de dados que ofereça um InputFormat Hadoop…

85

Page 86: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

COMPARANDO COM MAPREDUCE…

87

Page 88: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

RDD: RESILIENT DISTRIBUTED DATASET

Lazily evaluated

Proporciona um reuso de dados eficiente

Várias operações para processamento de dados

89

Page 90: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

TESTANDO…

94

Page 95: Qcon Rio 2015 - Data Lakes Workshop

BENCHMARK DE ORDENAÇÃO DE PETABYTES

95

Page 96: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

HANDS ON

99

Page 100: Qcon Rio 2015 - Data Lakes Workshop

IMPALA

100

Page 101: Qcon Rio 2015 - Data Lakes Workshop

CLOUDERA IMPALA

101

Page 102: Qcon Rio 2015 - Data Lakes Workshop

HANDS ON

102

Page 103: Qcon Rio 2015 - Data Lakes Workshop

AVANÇANDO…

103

Page 104: Qcon Rio 2015 - Data Lakes Workshop

Zoo keeper

YARN / Mesos

Sqoop

Map Reduce Hive Impala

Hue

Cloudera

TABELA PERIÓDICA DO HADOOP

HDFS

Spark

Page 105: Qcon Rio 2015 - Data Lakes Workshop

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: Qcon Rio 2015 - Data Lakes Workshop

NETFLIX ANALYTICS PIPELINE

106

Page 107: Qcon Rio 2015 - Data Lakes Workshop

NETFLIX VISION

107

Page 108: Qcon Rio 2015 - Data Lakes Workshop

LINKEDIN

108

Page 109: Qcon Rio 2015 - Data Lakes Workshop

E MAIS UM EXEMPLO…

109

Page 110: Qcon Rio 2015 - Data Lakes Workshop

CONCLUSÃO

110

Page 111: Qcon Rio 2015 - Data Lakes Workshop

111

PENSE GRANDECOMECE PEQUENO