Qcon Rio 2015 - Data Lakes Workshop

183 visualizações

Publicada em

This presentation was presented by Ricardo Wendell and I in QCon Rio 2015. Here we talk about data lakes, agile analytics and how to implement it with Hadoop and Spark.

Publicada em: Dados e análise
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
183
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Qcon Rio 2015 - Data Lakes Workshop

  1. 1. DATA LAKES COM HADOOP E SPARK AGILE ANALYTICS NA PRÁTICA Ricardo Wendell rwendell@thoughtworks.com João Paulo jsilva@thoughtworks.com
  2. 2. AGENDA Introdução Data Warehousing e projetos tradicionais Arquiteturas de Data Lake Hadoop e Spark Tópicos relacionados Conclusão 2
  3. 3. INTRODUÇÃO 3
  4. 4. 4Fonte: http://socialtimes.com/one-minute-internet-infographic_b147855
  5. 5. 5 BIG DATA
  6. 6. 6 BIG DATA V V V V
  7. 7. 7 VOLUME “DADOS EM REPOUSO”
  8. 8. 8 VOLUME2.5 QUINTILHÕES DE BYTES GERADOS POR DIA!
  9. 9. 9 VELOCIDADE “DADOS EM MOVIMENTO”
  10. 10. 10 VARIEDADE “DADOS EM MUITOS FORMATOS”
  11. 11. 11 VERACIDADE “DADOS EM DÚVIDA”
  12. 12. 12 DATA SCIENCE
  13. 13. 13
  14. 14. 14Fonte: http://www.shoesofprey.com/blog/pic/ahFzfnNob2Vzb2ZwcmV5LWhyZHIWCxINQmxvZ0ltYWdlRGF0YRiWxuoJDA.jpg
  15. 15. 15Fonte: http://ecx.images-amazon.com/images/I/81D5CBkXL6L._SL1500_.jpg
  16. 16. 16Fonte: http://www.portalgildabonfim.com.br/site/wp-content/uploads/2014/02/beneficios-da-castanha-do-para-na-barra-de-cereal.png
  17. 17. 17
  18. 18. OPORTUNIDADES 18 VAREJO FINANÇAS SAÚDE MOBILE ONGS FÁBRICAS
  19. 19. 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. 20. 20 DATA SCIENTIST 
 DATA ENGINEER
  21. 21. 21Fonte: https://www.flickr.com/photos/marsdd/2986989396
  22. 22. 22Fonte: http://www.forbes.com/sites/danwoods/2014/08/28/why-you-should-hire-a-robot-to-write-for-you/
  23. 23. 23 O S E M N
  24. 24. 24 O S E M N
  25. 25. ABORDAGENS TRADICIONAIS 25
  26. 26. DATAWAREHOUSE MULTI-CAMADAS GENÉRICO 26
  27. 27. ANALYTICS TRADICIONAL 27
  28. 28. DATA WAREHOUSING E BI 28
  29. 29. ABORDAGENS TRADICIONAIS 29
  30. 30. ABORDAGENS TRADICIONAIS 30 Grande foco em TI!
  31. 31. “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
  32. 32. Diferenciação O que aconteceu? Descritivo Por que aconteceu? Diagnóstico O que irá acontecer? Preditivo Como podemos fazer acontecer? Prescritivo Valor Complexidade
  33. 33. 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. 34. 34 2012
  35. 35. 35 HOJE
  36. 36. DATA LAKES E AGILE ANALYTICS 36
  37. 37. 37 Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
  38. 38. 38 Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
  39. 39. 39 Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
  40. 40. 40 Fonte: http://martin.kleppmann.com/2015/05/27/logs-for-data-infrastructure.html
  41. 41. ARQUITETURA LAMBDA 41
  42. 42. 42 ARQUITETURA LAMBDA
  43. 43. 43 ARQUITETURA LAMBDA
  44. 44. 44 ARQUITETURA LAMBDA
  45. 45. 45 PIPELINE DE DADOS ADAPTATIVO
  46. 46. 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
  47. 47. 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
  48. 48. 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
  49. 49. 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
  50. 50. 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
  51. 51. 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
  52. 52. 52Fonte: http://martinfowler.com/bliki/DataLake.html
  53. 53. 53
  54. 54. 54 AGILE ANALYTICS
  55. 55. 55 O S E M N
  56. 56. Data Scientist Data Engineer Delivery Team DESCOBRIR ENTREGAREXPERIMENTAR HIPÓTESE PROTÓTIPO PESQUISA Ideias Coletar feedack CONSUMERS AGILE ANALYTICS 56
  57. 57. 57 Conhecimento acionável Data Science Data Engineering Entrega Contínua Aprendizado Lean Insights acionáveis=
  58. 58. MÉTODOS TRADICIONAIS E AGILE ANALYTICS 58
  59. 59. PARALELISMO 59
  60. 60. PARALELISMO: DUAS ABORDAGENS Task Parallel programming Data parallel programming 60
  61. 61. ||-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
  62. 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 62
  63. 63. 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
  64. 64. 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. 65. 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. 66. 66 Solução Amazon Elastic Compute Cloud (EC2) e Simple Storage System (S3) Tempo ? Custo ?
  67. 67. 67 Solução Amazon Elastic Compute Cloud (EC2) e Simple Storage System (S3) Em menos de 24h por cerca de $240
  68. 68. HADOOP 68
  69. 69. 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
  70. 70. HADOOP 70Fonte: http://hortonworks.com/blog/apache-hadoop-2-is-ga/
  71. 71. 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
  72. 72. 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
  73. 73. 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
  74. 74. 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
  75. 75. MAP REDUCE 75 MAP SORT / SHUFFLE REDUCE Fonte: https://mm-tom.s3.amazonaws.com/blog/MapReduce.png
  76. 76. MAP REDUCE: EXEMPLO 76Fonte: https://www.ibm.com/developerworks/community/blogs/bigdata-br/entry/infosphere_biginsights_notas_sobre_hadoop_mapreduce?lang=en
  77. 77. HANDS ON 77
  78. 78. https://goo.gl/quFE6K 78
  79. 79. 79 SPARK
  80. 80. 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
  81. 81. 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. 82. 82
  83. 83. ONDE SPARK SE ENCAIXA NO ECOSSISTEMA HADOOP? 83
  84. 84. SPARK E MODOS DE GERENCIAMENTO DO CLUSTER Standalone Apache Mesos Hadoop YARN 84
  85. 85. SPARK E ARMAZENAMENTO HDFS HBase Cassandra JDBC data sources * Qualquer fonte de dados que ofereça um InputFormat Hadoop… 85
  86. 86. 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
  87. 87. COMPARANDO COM MAPREDUCE… 87
  88. 88. 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
  89. 89. RDD: RESILIENT DISTRIBUTED DATASET Lazily evaluated Proporciona um reuso de dados eficiente Várias operações para processamento de dados 89
  90. 90. 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
  91. 91. 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
  92. 92. 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
  93. 93. 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
  94. 94. TESTANDO… 94
  95. 95. BENCHMARK DE ORDENAÇÃO DE PETABYTES 95
  96. 96. 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
  97. 97. 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
  98. 98. 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
  99. 99. HANDS ON 99
  100. 100. IMPALA 100
  101. 101. CLOUDERA IMPALA 101
  102. 102. HANDS ON 102
  103. 103. AVANÇANDO… 103
  104. 104. Zoo keeper YARN / Mesos Sqoop Map Reduce Hive Impala Hue Cloudera TABELA PERIÓDICA DO HADOOP HDFS Spark
  105. 105. 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
  106. 106. NETFLIX ANALYTICS PIPELINE 106
  107. 107. NETFLIX VISION 107
  108. 108. LINKEDIN 108
  109. 109. E MAIS UM EXEMPLO… 109
  110. 110. CONCLUSÃO 110
  111. 111. 111 PENSE GRANDE COMECE PEQUENO
  112. 112. OBRIGADO! João Paulo <jsilva@thoughtworks.com> Ricardo Wendell <rwendell@thoughtworks.com>

×