Discretized Streams An Efficient and Fault-Tolerant Model for - - PowerPoint PPT Presentation

discretized streams
SMART_READER_LITE
LIVE PREVIEW

Discretized Streams An Efficient and Fault-Tolerant Model for - - PowerPoint PPT Presentation

Discretized Streams An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters Matei Zaharia, Tathagata Das, Haoyuan Li, Scott Shenker, Ion Stoica UC BERKELEY Motivation Many important applications need to


slide-1
SLIDE 1

Discretized Streams

An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters

Matei Zaharia, Tathagata Das, Haoyuan Li, Scott Shenker, Ion Stoica

UC ¡BERKELEY ¡

slide-2
SLIDE 2

Motivation

  • Many important applications need to process

large data streams arriving in real time

– User activity statistics (e.g. Facebook’s Puma) – Spam detection – Traffic estimation – Network intrusion detection

  • Our target: large-scale apps that must run on

tens-hundreds of nodes with O(1 sec) latency

slide-3
SLIDE 3

Challenge

  • To run at large scale, system has to be both:

– Fault-tolerant: recover quickly from failures and stragglers – Cost-efficient: do not require significant hardware beyond that needed for basic processing

  • Existing streaming systems don’t have both

properties

slide-4
SLIDE 4

Traditional Streaming Systems

  • “Record-at-a-time” processing model

– Each node has mutable state – For each record, update state & send new records

mutable state node 1 node 3 input records push node 2 input records

slide-5
SLIDE 5

Traditional Streaming Systems

Fault tolerance via replication or upstream backup:

node 1 node 3 node 2 node 1’ node 3’ node 2’

synchronization

node 1 node 3 node 2 standby input input input input

slide-6
SLIDE 6

Traditional Streaming Systems

Fault tolerance via replication or upstream backup:

node 1 node 3 node 2 node 1’ node 3’ node 2’

synchronization

node 1 node 3 node 2 standby input input input input

Fast recovery, but 2x hardware cost Only need 1 standby, but slow to recover

slide-7
SLIDE 7

Traditional Streaming Systems

Fault tolerance via replication or upstream backup:

node 1 node 3 node 2 node 1’ node 3’ node 2’

synchronization

node 1 node 3 node 2 standby input input input input

Neither approach tolerates stragglers

slide-8
SLIDE 8

Observation

  • Batch processing models for clusters (e.g.

MapReduce) provide fault tolerance efficiently

– Divide job into deterministic tasks – Rerun failed/slow tasks in parallel on other nodes

  • Idea: run a streaming computation as a series
  • f very small, deterministic batches

– Same recovery schemes at much smaller timescale – Work to make batch size as small as possible

slide-9
SLIDE 9

Discretized Stream Processing

t = 1: t = 2:

stream 1 stream 2 batch operation pull input … … input

immutable dataset (stored reliably) immutable dataset (output or state); stored in memory without replication

slide-10
SLIDE 10

Parallel Recovery

  • Checkpoint state datasets periodically
  • If a node fails/straggles, recompute its dataset

partitions in parallel on other nodes

map input dataset

Faster recovery than upstream backup, without the cost of replication

  • utput dataset
slide-11
SLIDE 11

How Fast Can It Go?

  • Prototype built on the Spark in-memory computing

engine can process 2 GB/s (20M records/s) of data on 50 nodes at sub-second latency

60 ter c c 0.5 1 1.5 2 2.5 3 20 40 60 Cluster Throughput (GB/s) # of Nodes in Cluster

WordCount

1 sec 2 sec 0.5 1 1.5 2 2.5 3 20 40 60 Cluster Throughput (GB/s) # of Nodes in Cluster

Grep

1 sec 2 sec

Max throughput within a given latency bound (1 or 2s)

slide-12
SLIDE 12

How Fast Can It Go?

  • Recovers from failures within 1 second

Failure Happens 0.0 0.5 1.0 1.5 2.0 15 30 45 60 75 Interval Processing Time (s) Time (s)

Sliding WordCount on 10 nodes with 30s checkpoint interval

slide-13
SLIDE 13

Programming Model

  • A discretized stream (D-stream) is a sequence
  • f immutable, partitioned datasets

– Specifically, resilient distributed datasets (RDDs), the storage abstraction in Spark

  • Deterministic transformations operators produce

new streams

slide-14
SLIDE 14

API

  • LINQ-like language-integrated API in Scala
  • New “stateful” operators for windowing

pageViews = readStream("...", "1s")

  • nes = pageViews.map(ev => (ev.url, 1))

counts = ones.runningReduce(_ + _) t = 1: t = 2:

pageViews

  • nes

counts

map reduce . . .

= RDD = partition

Scala function literal

sliding = ones.reduceByWindow( “5s”, _ + _, _ - _)

Incremental version with “add” and “subtract” functions

slide-15
SLIDE 15

Other Benefits of Discretized Streams

  • Consistency: each record is processed atomically
  • Unification with batch processing:

– Combining streams with historical data

  • pageViews.join(historicCounts).map(...)

– Interactive ad-hoc queries on stream state

  • pageViews.slice(“21:00”, “21:05”).topK(10)
slide-16
SLIDE 16

Conclusion

  • D-Streams forgo traditional streaming wisdom

by batching data in small timesteps

  • Enable efficient, new parallel recovery scheme
  • Let users seamlessly intermix streaming, batch

and interactive queries

slide-17
SLIDE 17

Related Work

  • Bulk incremental processing (CBP

, Comet)

– Periodic (~5 min) batch jobs on Hadoop/Dryad – On-disk, replicated FS for storage instead of RDDs

  • Hadoop Online

– Does not recover stateful ops or allow multi-stage jobs

  • Streaming databases

– Record-at-a-time processing, generally replication for FT

  • Parallel recovery (MapReduce, GFS, RAMCloud, etc)

– Hwang et al [ICDE’07] have a parallel recovery protocol for streams, but only allow 1 failure & do not handle stragglers

slide-18
SLIDE 18

Timing Considerations

  • D-streams group input into intervals based on

when records arrive at the system

  • For apps that need to group by an “external”

time and tolerate network delays, support:

– Slack time: delay starting a batch for a short fixed time to give records a chance to arrive – Application-level correction: e.g. give a result for time t at time t+1, then use later records to update incrementally at time t+5

slide-19
SLIDE 19

D-Streams vs. Traditional Streaming

Concern Discretized Streams Record-at-a-time Systems Latency 0.5–2s 1-100 ms Consistency Yes, batch-level Not in msg. passing systems; some DBs use waiting Failures Parallel recovery Replication or upstream bkp. Stragglers Speculation Typically not handled Unification with batch Ad-hoc queries from Spark shell, join w. RDD Not in msg. passing systems; in some DBs