[devfest] apache spark casos de uso e escalabilidade

28
Flavio Clésio, Movile Eiti Kimura, Movile APACHE SPARK: CASOS DE USO E ESCALABILIDADE #Devfest2017

Upload: eiti-kimura

Post on 22-Jan-2018

119 views

Category:

Software


1 download

TRANSCRIPT

Flavio Clésio, MovileEiti 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 SQLSTRUCTURED STREAMINGSPARK 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.html17

• 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

24http://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 [email protected]

[email protected]

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-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