Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / NextProductToBuy

Post on 17-Jul-2015

890 views 5 download

Transcript of Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / NextProductToBuy

Spark Meetup chez ViadeoMercredi 4 février 2015

• 19h-19h45 : Présentation de la technologie Spark et exemple de nouveaux cas métiers pouvant être traités par du BigData temps réel. Cédric Carbone - Cofondateur d'Influans – cedric@influans.com -Spark vs HadoopMapReduce-Spark Streaming vs Storm -Le Machine Learning avec Spark -Use case métier : NextProductToBuy

• 19h45-20h : Extension de Spark (Tachyon / Spark JobServer). Jonathan Lamiel - Talend Labs – jlamiel@talend.com-La mémoire partagée de Spark avec Tachyon -Rendre Spark Interactif avec Spark JobServer

• 20h-21h : Big Data analytics avec Spark & Cassandra. DuyHai DOAN - Technical Advocate at DataStax – duy_hai.doan@datastax.comApache Spark is a general data processing framework which allows you perform data processing tasks in memory. Apache Cassandra is a highly available and massively scalable NoSQL data-store. By combining Spark flexible API and Cassandra performance, we get an interesting combo for both real-time and batch processing.

Map Reduce

➜ Map() : parse inputs and generate 0 to n <key, value>

➜ Reduce() : sums all values of the same key and generate a <key, value>

WordCount Example

➜ Each map take a line as an input and break into words

• It emits a key/value pair of the word and 1

➜ Each Reducer sums the counts for each word

• It emits a key/value pair of the word and sum

Map Reduce

Hadoop MapReduce v1

Hadoop MapReduce v1

Hadoop MapReduce v1

MapReduce v1

Not good for low-latency jobs on smallest dataset

MapReduce v1

Good for off-line batch jobs on massive data

Hadoop 1

➜ Batch ONLY

• High latency jobs

HDFS (Redundant, Reliable Storage)

MapReduce1Cluster Resource Management + Data Processing

BATCH

HIVEQuery

PigScripting

CascadingAccelerate Dev.

Hadoop2 : Big Data

Operating System

➜ Customers want to store ALL DATA in one place and interact with it in MULTIPLE WAYS

• Simultaneously & with predictable levels of service

• Data analysts and real-time applications

HDFS (Redundant, Reliable Storage)

MapReduce1Data Processing

BATCH

YARN (Cluster Resource Management)

OtherData Processing

Hadoop2 : Big Data

Operating System

➜ Customers want to store ALL DATA in one place and interact with it in MULTIPLE WAYS

• Simultaneously & with predictable levels of service

• Data analysts and real-time applications

HDFS (Redundant, Reliable Storage)

BATCH INTERACTIVE STREAMING GRAPH ML IN-MEMORYONLINE SEARCH

YARN (Cluster Resource Management)

Hadoop2 : Big Data

Operating System

➜ Customers want to store ALL DATA in one place and interact with it in MULTIPLE WAYS

• Simultaneously & with predictable levels of service

• Data analysts and real-time applications

HDFS (Redundant, Reliable Storage)

YARN (Cluster Resource Management)

BATCH(MapReduce)

INTERACTIVE(Tez)

STREAMING(Storm, SamzaSpark Streaming)

GRAPH(Giraph,GraphX)

MachineLearning(MLLIb)

In-Memory(Spark)

ONLINE(Hbase HOYA)

OTHER(ElasticSearch)

https://spark.apache.org

Apache Spark™ is a fast and general engine for large-scale data processing.

The most active project

0

50

100

150

200

250

Patches

MapReduce Storm

Yarn Spark

0

5000

10000

15000

20000

25000

30000

35000

40000

45000

Lines Added

MapReduce Storm

Yarn Spark

Spark won the

Daytona GraySort contest!

Run programs up to 100x faster than HadoopMapReduce in memory, or 10x faster on disk.

Sort on disk 100TB of data 3x faster than HadoopMapReduce using 10x fewer machines.

RDD & Operation

Resilient Distributed Datasets (RDDs)

Operations

➜ Transformations (e.g. map, filter, groupBy)

➜ Actions (e.g. count, collect, save)

Spark

scala> val textFile = sc.textFile("README.md")

➜ textFile: spark.RDD[String] = spark.MappedRDD@2ee9b6e3

scala> textFile.count()

➜ res0: Long = 126

scala> textFile.first()

➜ res1: String = # Apache Spark

scala> val linesWithSpark = textFile.filter(line =>

line.contains("Spark"))

➜ linesWithSpark: spark.RDD[String]=spark.FilteredRDD@7dd4

scala>

textFile.filter(line=>line.contains("Spark")).count()

➜ res3: Long = 15

Streaming

Streaming

Storm

Storm

Storm vs Spark

Spark Streaming Storm Storm Trident

Processing model Micro batches Record-at-a-time Micro batches

Thoughput ++++ ++ ++++

Latency Second Sub-second Second

Reliability Models Exactly once At least once Exactly once

Embedded Hadoop Distro HDP, CDH, MapR HDP HDP

Support Databricks N/A N/A

Community ++++ ++ ++

Spark Storm

Scope Batch, Streaming, Graph, ML, SQL Streaming only

Machine Learning Library (Mllib)

Collaborative Filtering

Collaborative Filtering

(learning)

Collaborative Filtering

(learning)

Collaborative Filtering

(learning)

Collaborative Filtering :

Let’s use the model

Collaborative Filtering :

similar behaviors

Collaborative Filtering

Prediction

Netflix Prize (2009)

Netflix is a provider of on-demand Internet streaming media

Input Data

UserID::MovieID::Rating::Timestamp1::1193::5::9783007601::661::3::9783021091::914::3::978301968Etc…

2::1357::5::9782987092::3068::4::9782990002::1537::4::978299620

The result

1 ; Lyndon Wilson ; 4.608531808535918 ; 858 ; Godfather, The (1972)1 ; Lyndon Wilson ; 4.596556961095434 ; 318 ; Shawshank Redemption, The (1994)1 ; Lyndon Wilson ; 4.575789377957803 ; 527 ; Schindler's List (1993)1 ; Lyndon Wilson ; 4.549694932928024 ; 593 ; Silence of the Lambs, The (1991)1 ; Lyndon Wilson ; 4.46311974037361 ; 919 ; Wizard of Oz, The (1939)2 ; Benjamin Harrison ; 4.99545499047152 ; 318 ; Shawshank Redemption, The (1994)2 ; Benjamin Harrison ; 4.94255532354725 ; 356 ; Forrest Gump (1994)2 ; Benjamin Harrison ; 4.80168679606128 ; 527 ; Schindler's List (1993)2 ; Benjamin Harrison ; 4.7874247577586795 ; 1097 ; E.T. the Extra-Terrestrial (1982)2 ; Benjamin Harrison ; 4.7635998147872325 ; 110 ; Braveheart (1995)3 ; Richard Hoover ; 4.962687467351026 ; 110 ; Braveheart (1995)3 ; Richard Hoover ; 4.8316542374095315 ; 318 ; Shawshank Redemption, The (1994)3 ; Richard Hoover ; 4.7307103243995385 ; 356 ; Forrest Gump (19

Real Time Big Data

Use Case

Next Product To Buy

➜ Right Person

➜ Right Product

➜ Right Price

➜ Right Time

➜ Right Channel

Questions?

Cédric Carbone

cedric@influans.com

@carbone

www.hugfrance.fr

hug-france-orga@googlegroups.com

@hugfrance