SlideShare a Scribd company logo
1 of 28
Download to read offline
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/spark-cases-devfest
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-pipel
ines-in-production/
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
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
Referências
28

More Related Content

Similar to [DEVFEST] Apache Spark Casos de Uso e Escalabilidade

Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas DistribuídosPlanejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
luanrjesus
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
Paulo Bischof
 
Template_Faculdade_Apache Kafka.pdf
Template_Faculdade_Apache Kafka.pdfTemplate_Faculdade_Apache Kafka.pdf
Template_Faculdade_Apache Kafka.pdf
Valdir Adorni
 

Similar to [DEVFEST] Apache Spark Casos de Uso e Escalabilidade (20)

Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas DistribuídosPlanejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
 
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMRStream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...
Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...
Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...
 
Ferramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big DataFerramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big Data
 
[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
MySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLMySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQL
 
A importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big DataA importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big Data
 
Template_Faculdade_Apache Kafka.pdf
Template_Faculdade_Apache Kafka.pdfTemplate_Faculdade_Apache Kafka.pdf
Template_Faculdade_Apache Kafka.pdf
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
Cenário das Plataformas de Dados 2017/2018
Cenário das Plataformas de Dados 2017/2018Cenário das Plataformas de Dados 2017/2018
Cenário das Plataformas de Dados 2017/2018
 
Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6
 
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 

More from Eiti Kimura

More from Eiti Kimura (11)

[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
 
[Redis conf18] The Versatility of Redis
[Redis conf18] The Versatility of Redis[Redis conf18] The Versatility of Redis
[Redis conf18] The Versatility of Redis
 
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
 
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
 
Cassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsCassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of Seasons
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoTDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
 
Conhecendo Apache Cassandra @Movile
Conhecendo Apache Cassandra  @MovileConhecendo Apache Cassandra  @Movile
Conhecendo Apache Cassandra @Movile
 
Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso Prático
 
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços MóveisQConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
 

[DEVFEST] Apache Spark Casos de Uso e Escalabilidade

  • 1. Flavio Clésio, Movile Eiti Kimura, Movile APACHE SPARK: CASOS DE USO E ESCALABILIDADE #Devfest2017
  • 2. 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
  • 3. 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
  • 4.
  • 6. 6 LÍDER EM MOBILE MARKETPLACES
  • 7. ● 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
  • 8. Evolução: Google Trends 8 Apache Hadoop 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 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
  • 11. Como o Apache Spark funciona? 11
  • 12. Como o Apache Spark funciona? 12
  • 13. Como o Apache Spark funciona? 13
  • 15. 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
  • 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)
  • 18. • 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
  • 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. Definição de casos de uso 21
  • 24. 24 http://bit.ly/spark-ml-case PREVENTING REVENUE LEAKAGE AND MONITORING DISTRIBUTED SYSTEMS WITH MACHINE LEARNING
  • 26. 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+)
  • 27. 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-pipel ines-in-production/ 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. 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 Referências 28