Kafka spark - cassandra

Click here to load reader

  • date post

    12-Jan-2017
  • Category

    Technology

  • view

    255
  • download

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