Flavio Clésio, Movile
Eiti Kimura, Movile
APACHE SPARK: CASOS DE USO E
ESCALABILIDADE
#Devfest2017
2
Flávio Clésio
• Core Machine Learning at Movile
• Me. Engenharia de Produção (Inteligência Computacional em NPLs) - (UNINOVE)
• Especialista em Engenharia de Banco de Dados (UNICAMP)
• Professor no Mackenzie (Curso Pós-Grad. em Ciência de Dados)
• Professor no Grupo Kroton (Curso Pós-Grad. em Gestão Estratégica)
• Speaker no Strata Hadoop World Singapore (2016)
• Speaker no Spark Summit Europe (2017)
• Blogger no Mineração de Dados - http://mineracaodedados.wordpress.com
flavioclesio
SOBRE NÓS
SOBRE NÓS
3
• Coordenador de TI e Arquiteto de Software na Movile
• Mestre em Engenharia Elétrica
• Apache Cassandra MVP (2014/2015 and 2015/2016)
• Apache Cassandra Contributor (2015)
• Cassandra Summit Speaker (2014 and 2015)
• Speaker no Strata Hadoop World Singapore (2016)
• Speaker no Spark Summit Europe (2017)
Eiti Kimura
eitikimura
NOSSOS NEGÓCIOS
6
LÍDER EM MOBILE MARKETPLACES
● Introdução ao Apache Spark
● Funcionamento do Apache Spark
● Spark SQL
● Spark Structured Streaming
● Spark MLLib
● Casos de Uso
● Limitações
● Considerações Finais
Agenda
7
Evolução: Google Trends
8
Apache Hadoop
Apache Spark
Interesse ao longo do tempo
O que é Apache Spark?
9
Apache Spark™ is a fast and general engine
for large-scale data processing.
Em que o Apache Spark é usado?
10
● Processos de ETL
● Consultas Interativas (SQL)
● Análise de dados avançada
● Machine Learning/Deep Learning
● Streaming sobre grandes datasets
Como o Apache Spark funciona?
11
Como o Apache Spark funciona?
12
Como o Apache Spark funciona?
13
SPARK SQL
STRUCTURED STREAMING
SPARK MLLIB 14
Spark SQL
15
• Complemento ao Hadoop/Apache Hive
• Batch Processing para Analytics
• Camada de BI para Reporting
• Compatibilidade de Conectores para SGBD
• Operações Untyped / SQL ANSI
Spark Structured Streaming
16
• Nova API de alto nível
• Desenvolvimento de aplicações contínuas
• Junção de dados contínua com conteúdo estático
• Integrações com diversas fontes de dados (Kafka)
• Tolerante a falhas (check-points)
• Tratamento de eventos desordenados (Watermark)
https://databricks.com/blog/2016/07/28/structured-streaming-in-apache-spark.html
17
• Classificação: Regressão Logística, Árvores de Decisão,
Random Forest, GBT, MLP, SVM, Naive Bayes
• Regressão: Linear, GLM, Árvore de Decisão, Survival
Regression, GBR, Isotonic Regression
• Recomendação: Alternating Least Squares (ALS)
• Clustering: K-Means, Gaussian Mixture Model (GMM)
• Patterns: Itens Frequentes, Regras de Associação
Spark MLLib - Algoritmos
18
Considerações Finais
Limitações do Spark
20
● Necessidade muito grande de investimento em memória RAM
● Footprint de memória pode ser um pesadelo em pipelines de
ML intensivos, em especial em hiper-parametrizações pouco
seletivas
● Com MapReduce alguns algoritmos complexos são inviáveis
para a implementação, devido à comunicação entre os nós
para monitorar estados intermediários e interações
Definição de casos de uso
21
Casos de Uso
22
Casos de Uso
23
24
http://bit.ly/spark-ml-case
PREVENTING REVENUE LEAKAGE AND
MONITORING DISTRIBUTED SYSTEMS WITH
MACHINE LEARNING
github.com/eitikimura/spark-cases
http://bit.ly/apres-devfest-2017
http://bit.ly/playlist-spark-summit
OBRIGADO!
eitikimura eiti.kimura@movile.com
flavio.clesio@movile.comflavioclesio
Material sobre Apache Spark
Jacek Laskowski
26
Consultor Independente
http://www.gitbook.com/@jaceklaskowski
Mastering Apache Spark 2 (Spark 2.2+)
Spark Structured Streaming (Apache Spark 2.2+)
Aplicações interessantes com Spark - https://www.quora.com/What-are-some-interesting-applications-of-Apache-Spark
300Tb no Apache SPark em produção -
https://spark-summit.org/eu-2017/events/lessons-learned-developing-and-managing-massive-300tb-apache-spark-pipelines-in-pr
oduction/
BenchML - https://github.com/szilard/benchm-ml
Haddop x Spark x Flink - https://data-flair.training/blogs/hadoop-vs-spark-vs-flink-comparison/
Map Reduce Core Paper -
https://github.com/eartsar/RIT-BigData/blob/master/docs/Presentation%20PDFs/nips06-mapreducemulticore.pdf
Data Intensive Processing MapReduce -
https://www.amazon.com/Data-Intensive-Processing-MapReduce-Synthesis-Technologies/dp/1608453421/
Map Reduce Core Paper -
https://github.com/eartsar/RIT-BigData/blob/master/docs/Presentation%20PDFs/nips06-mapreducemulticore.pdf
Referências
27
Referências
28
Data Intensive Processing MapReduce -
https://www.amazon.com/Data-Intensive-Processing-MapReduce-Synthesis-Technologies/dp/1608453421/
Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing:
https://www2.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-82.html
Apache Spark officially sets a new record in large-scale sorting -
https://databricks.com/blog/2014/11/05/spark-officially-sets-a-new-record-in-large-scale-sorting.html
Spark SKLearn- https://github.com/databricks/spark-sklearn
Elephas - https://github.com/maxpumperla/elephas
Deep Learning Pipelines in Spark - https://github.com/databricks/spark-deep-learning
Distributed Keras - https://github.com/cerndb/dist-keras

Apache Spark: Casos de uso e escalabilidade

  • 1.
    Flavio Clésio, Movile EitiKimura, Movile APACHE SPARK: CASOS DE USO E ESCALABILIDADE #Devfest2017
  • 2.
    2 Flávio Clésio • CoreMachine Learning at Movile • Me. Engenharia de Produção (Inteligência Computacional em NPLs) - (UNINOVE) • Especialista em Engenharia de Banco de Dados (UNICAMP) • Professor no Mackenzie (Curso Pós-Grad. em Ciência de Dados) • Professor no Grupo Kroton (Curso Pós-Grad. em Gestão Estratégica) • Speaker no Strata Hadoop World Singapore (2016) • Speaker no Spark Summit Europe (2017) • Blogger no Mineração de Dados - http://mineracaodedados.wordpress.com flavioclesio SOBRE NÓS
  • 3.
    SOBRE NÓS 3 • Coordenadorde TI e Arquiteto de Software na Movile • Mestre em Engenharia Elétrica • Apache Cassandra MVP (2014/2015 and 2015/2016) • Apache Cassandra Contributor (2015) • Cassandra Summit Speaker (2014 and 2015) • Speaker no Strata Hadoop World Singapore (2016) • Speaker no Spark Summit Europe (2017) Eiti Kimura eitikimura
  • 5.
  • 6.
    6 LÍDER EM MOBILEMARKETPLACES
  • 7.
    ● Introdução aoApache Spark ● Funcionamento do Apache Spark ● Spark SQL ● Spark Structured Streaming ● Spark MLLib ● Casos de Uso ● Limitações ● Considerações Finais Agenda 7
  • 8.
    Evolução: Google Trends 8 ApacheHadoop Apache Spark Interesse ao longo do tempo
  • 9.
    O que éApache Spark? 9 Apache Spark™ is a fast and general engine for large-scale data processing.
  • 10.
    Em que oApache Spark é usado? 10 ● Processos de ETL ● Consultas Interativas (SQL) ● Análise de dados avançada ● Machine Learning/Deep Learning ● Streaming sobre grandes datasets
  • 11.
    Como o ApacheSpark funciona? 11
  • 12.
    Como o ApacheSpark funciona? 12
  • 13.
    Como o ApacheSpark funciona? 13
  • 14.
  • 15.
    Spark SQL 15 • Complementoao Hadoop/Apache Hive • Batch Processing para Analytics • Camada de BI para Reporting • Compatibilidade de Conectores para SGBD • Operações Untyped / SQL ANSI
  • 16.
    Spark Structured Streaming 16 •Nova API de alto nível • Desenvolvimento de aplicações contínuas • Junção de dados contínua com conteúdo estático • Integrações com diversas fontes de dados (Kafka) • Tolerante a falhas (check-points) • Tratamento de eventos desordenados (Watermark)
  • 17.
  • 18.
    • Classificação: RegressãoLogística, Árvores de Decisão, Random Forest, GBT, MLP, SVM, Naive Bayes • Regressão: Linear, GLM, Árvore de Decisão, Survival Regression, GBR, Isotonic Regression • Recomendação: Alternating Least Squares (ALS) • Clustering: K-Means, Gaussian Mixture Model (GMM) • Patterns: Itens Frequentes, Regras de Associação Spark MLLib - Algoritmos 18
  • 19.
  • 20.
    Limitações do Spark 20 ●Necessidade muito grande de investimento em memória RAM ● Footprint de memória pode ser um pesadelo em pipelines de ML intensivos, em especial em hiper-parametrizações pouco seletivas ● Com MapReduce alguns algoritmos complexos são inviáveis para a implementação, devido à comunicação entre os nós para monitorar estados intermediários e interações
  • 21.
  • 22.
  • 23.
  • 24.
    24 http://bit.ly/spark-ml-case PREVENTING REVENUE LEAKAGEAND MONITORING DISTRIBUTED SYSTEMS WITH MACHINE LEARNING
  • 25.
  • 26.
    Material sobre ApacheSpark Jacek Laskowski 26 Consultor Independente http://www.gitbook.com/@jaceklaskowski Mastering Apache Spark 2 (Spark 2.2+) Spark Structured Streaming (Apache Spark 2.2+)
  • 27.
    Aplicações interessantes comSpark - https://www.quora.com/What-are-some-interesting-applications-of-Apache-Spark 300Tb no Apache SPark em produção - https://spark-summit.org/eu-2017/events/lessons-learned-developing-and-managing-massive-300tb-apache-spark-pipelines-in-pr oduction/ BenchML - https://github.com/szilard/benchm-ml Haddop x Spark x Flink - https://data-flair.training/blogs/hadoop-vs-spark-vs-flink-comparison/ Map Reduce Core Paper - https://github.com/eartsar/RIT-BigData/blob/master/docs/Presentation%20PDFs/nips06-mapreducemulticore.pdf Data Intensive Processing MapReduce - https://www.amazon.com/Data-Intensive-Processing-MapReduce-Synthesis-Technologies/dp/1608453421/ Map Reduce Core Paper - https://github.com/eartsar/RIT-BigData/blob/master/docs/Presentation%20PDFs/nips06-mapreducemulticore.pdf Referências 27
  • 28.
    Referências 28 Data Intensive ProcessingMapReduce - https://www.amazon.com/Data-Intensive-Processing-MapReduce-Synthesis-Technologies/dp/1608453421/ Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-82.html Apache Spark officially sets a new record in large-scale sorting - https://databricks.com/blog/2014/11/05/spark-officially-sets-a-new-record-in-large-scale-sorting.html Spark SKLearn- https://github.com/databricks/spark-sklearn Elephas - https://github.com/maxpumperla/elephas Deep Learning Pipelines in Spark - https://github.com/databricks/spark-deep-learning Distributed Keras - https://github.com/cerndb/dist-keras