Kafka spark - cassandra
date post
12-Jan-2017Category
Technology
view
255download
0
Embed Size (px)
Transcript of Kafka spark - cassandra
KafkaSpark(Cassandra)
24 Avril 2015
Key-Value
Hadoop
Oracle User TrackingLogs HTTP
Mtriques Mtiers
Search Social GraphData
Warehouse Recommendations
Key-Value
Hadoop
Oracle User TrackingLogs HTTP
Mtriques Mtiers
Search Social GraphData
Warehouse Recommendations
Key-Value
Hadoop
Oracle User TrackingLogs HTTP
Mtriques Mtiers
Search Social GraphData
Warehouse Recommendations
Key-Value
Hadoop
Oracle User TrackingLogs HTTP
Mtriques Mtiers
Search Social GraphData
Warehouse Recommendations
KAFKA
Broker de messagesType publish/subscribe
Broker de messages logsType publish/subscribe
log squence de messages en append-only ordonns dans le temps
Producer
Producer
Producer
Consumer
Consumer
Consumer
KAFKA
Broker de messagesType publish/subscribe
ScalableUn Cluster Kafka est
compos de plusieurs noeuds et partitionne
les donnes
Producer
Producer
Producer
NOEUD 1
NOEUD 2
NOEUD 3
KAFKA
PerformantDes centaines de MO/s
et des milliers de clients simultans
PersistentLes messages sont
stocks, en ordre, sur le disque et repliqus
dans le cluster
On typical server hardware today, completely random memory access on a range much larger than cache size can be an order of magnitude or more slower than purely sequential access
Les producers envoient des messages des topicsex: 6play.web, shopper.ws
Les topics sont distribus en partitions
Chaque Message se voit attribuer un numro, loffset
Topiccompos de 3 partitions
Les partitions sont distribus sur les noeuds
Les messages consomms ne sont pas supprims
Des consumers peuvent lire plus lentement que dautre, voir rejouer les
messages
Le broker na pas connaissance des consumers
Les consumers sont responsables de suivre leur avances dans le flot de
messages
A retenir:
Kafka est un broker de message durable, performant et scalable
800 milliards de messagessoit 175 Terabytes ajouts650 Terabytes de messages consomms
Kafka @ Linkedin
800 milliards de messagessoit 175 Terabytes ajouts650 Terabytes de messages consommschaque jour
Kafka @ Linkedin
800 milliards de messagessoit 175 Terabytes ajouts650 Terabytes de messages consommschaque jour
13 millions de msg /s en pointesoit 2,75Gb /s
1100 brokers60 Clusters
Kafka @ Linkedin
Garantie de dliverabilitZookeeper
Rebalancing / RepartitionRplication
Patterns de consommation
Garantie de dliverabilitZookeeper
Rebalancing / RepartitionRplication
Patterns de consommation
Framework de calcul distribu >> Hadoop et Map/reduce
Effectuer des traitements de masse sur un gros volume de donnes en
utilisant des machines de commodit
Analyticstop 10 des vidos visionnes par les femmes de 25 30 ansen province connecte via facebook depuis un mobile entre 12H et 14H
ETL
Merge de 4 bases de donnesjointes avec les 100 derniers fichiers CSVaggrgation sur 10 jourset sortie en JSON sur S3
Extract, Transform, Load
Analyse de Graphs
Qui connat lhomme qui a vu lhomme qui a vu lhomme qui a vu lours ?
Machine Learning
Recommandations de contenusSegmentation / Clustering
ClassificationPublicits cibles
Descente de gradientetc...
Performant car tout en mmoire
Contrairement Hadoop/MR qui stocke sur disque les rsultats intermdiaires
Spark manipule et transforme des RDD
Resilient Distributed Dataset
Collections immuables dobjets
distribus entre plusieurs machines
PHP
is
a
popular
general-purpose
scripting
language
well-suited
for
web development
RDD de strings RDD de Int
11
32
3
5
987
65
423
8
203
99
noeud 1
noeud 2
noeud 3
RDD de Int
11
32
3
5
987
65
423
8
203
99
noeud 1
noeud 2
noeud 3
On applique des transformations et des actions
sur les RDD
map()flatMap()reduceByKey()filter()groupByKeys()join()union()
RDD de Int
11
32
3
5
987
65
423
8
203
99
noeud 1
noeud 2
noeud 3
On applique des transformations et des actions
sur les RDD
top()take()collect()takeOrdered()foreach()saveAsTextFile()
RDD de Int
11
32
3
5
987
65
423
8
203
99
noeud 1
noeud 2
noeud 3
1038
488
310
1836
reduce(a, b: a + b)
file = spark.textFile("hdfs://...")
counts = file.flatMap(lambda line: line.split(" ")) \ .map(lambda word: (word, 1)) \ .reduceByKey(lambda a, b: a + b)
counts.saveAsTextFile("hdfs://...")
Word Count Python
streaming - micro batch - batch
Spark Spark Streaming
r-utilisation du codeVS storm + MapReduce
Spark Spark Streaming
streaming - micro batch - batchtemps rel < 1 min min
heures
Spark Streaming
Le flux de donnes continu est dcoup en RDD de 10s
t0 t1 t2 t3
RDD
10s 10s 10s 10s
RDD RDD RDD
Driver / Worker nodesStratgie de shufflingBroadcastingBlinkDBTachyonYarn / Mesos / Standalone
Driver / Worker nodesStratgie de shufflingBroadcastingBlinkDBTachyonYarn / Mesos / Standalone
A retenir:
Spark est un framework pour traiter dimportants volumes de donnes grande chelle
en batch ET streaming
Logs HTTP
Beacons Utilisateurs
BDD Utilisateurs
DashBoards
BDD Retargeting
Twitter
BigQuery - Druid - Samza - Storm - S4 - Apache TEZ ...