ufuc celebi – stream & batch processing in one system

104
Ufuk Celebi [email protected] Flink Forward October 13, 2015 Stream & Batch Processing in One System Apache Flink’s Streaming Data Flow Engine

Upload: flink-forward

Post on 16-Apr-2017

5.799 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Ufuc Celebi – Stream & Batch Processing in one System

Ufuk Celebi [email protected]

Flink Forward October 13, 2015

Stream & Batch Processing in One System

Apache Flink’s Streaming Data Flow Engine

Page 2: Ufuc Celebi – Stream & Batch Processing in one System

System Architecture

DeploymentLocal (Single JVM) · Cluster (Standalone, YARN)

DataStream API Unbounded Data

DataSet API Bounded Data

Runtime Distributed Streaming Data Flow

Libraries Machine Learning · Graph Processing · SQL-like API

1

Page 3: Ufuc Celebi – Stream & Batch Processing in one System

User

DeploymentLocal (Single JVM) · Cluster (Standalone, YARN)

DataStream API Unbounded Data

DataSet API Bounded Data

Runtime Distributed Streaming Data Flow

Libraries Machine Learning · Graph Processing · SQL-like API

1

Page 4: Ufuc Celebi – Stream & Batch Processing in one System

System

DeploymentLocal (Single JVM) · Cluster (Standalone, YARN)

DataStream API Unbounded Data

DataSet API Bounded Data

Runtime Distributed Streaming Data Flow

Libraries Machine Learning · Graph Processing · SQL-like API

1

Page 5: Ufuc Celebi – Stream & Batch Processing in one System

TodayJourney from APIs to

Parallel Execution

A look behind the scenes. You don’t have to worry about this.

Page 6: Ufuc Celebi – Stream & Batch Processing in one System

Components

JobManager MasterClient

TaskManager Worker

TaskManager Worker

TaskManager Worker

TaskManager Worker

User System

public class WordCount {

public static void main(String[] args) throws Exception { // Flink’s entry point StreamExecutionEnvironment env = StreamExecutionEnvironment .getExecutionEnvironment();

DataStream<String> data = env.fromElements( "O Romeo, Romeo! wherefore art thou Romeo?", "Deny thy father and refuse thy name", "Or, if thou wilt not, be but sworn my love,", "And I'll no longer be a Capulet.");

// Split by whitespace to (word, 1) and sum up ones DataStream<Tuple2<String, Integer>> counts = data .flatMap(new SplitByWhitespace()) .keyBy(0) .timeWindow(Time.of(10, TimeUnit.SECONDS)) .sum(1);

counts.print();

// Today: What happens now? env.execute(); } }

2

Page 7: Ufuc Celebi – Stream & Batch Processing in one System

Components

JobManager MasterClient

TaskManager Worker

TaskManager Worker

TaskManager Worker

TaskManager Worker

User System

public class WordCount {

public static void main(String[] args) throws Exception { // Flink’s entry point StreamExecutionEnvironment env = StreamExecutionEnvironment .getExecutionEnvironment();

DataStream<String> data = env.fromElements( "O Romeo, Romeo! wherefore art thou Romeo?", "Deny thy father and refuse thy name", "Or, if thou wilt not, be but sworn my love,", "And I'll no longer be a Capulet.");

// Split by whitespace to (word, 1) and sum up ones DataStream<Tuple2<String, Integer>> counts = data .flatMap(new SplitByWhitespace()) .keyBy(0) .timeWindow(Time.of(10, TimeUnit.SECONDS)) .sum(1);

counts.print();

// Today: What happens now? env.execute(); } }

Submit Program

2

Page 8: Ufuc Celebi – Stream & Batch Processing in one System

Components

JobManager MasterClient

TaskManager Worker

TaskManager Worker

TaskManager Worker

TaskManager Worker

User System

public class WordCount {

public static void main(String[] args) throws Exception { // Flink’s entry point StreamExecutionEnvironment env = StreamExecutionEnvironment .getExecutionEnvironment();

DataStream<String> data = env.fromElements( "O Romeo, Romeo! wherefore art thou Romeo?", "Deny thy father and refuse thy name", "Or, if thou wilt not, be but sworn my love,", "And I'll no longer be a Capulet.");

// Split by whitespace to (word, 1) and sum up ones DataStream<Tuple2<String, Integer>> counts = data .flatMap(new SplitByWhitespace()) .keyBy(0) .timeWindow(Time.of(10, TimeUnit.SECONDS)) .sum(1);

counts.print();

// Today: What happens now? env.execute(); } }

Submit Program

Schedule

2

Page 9: Ufuc Celebi – Stream & Batch Processing in one System

Components

JobManager MasterClient

TaskManager Worker

TaskManager Worker

TaskManager Worker

TaskManager Worker

User System

public class WordCount {

public static void main(String[] args) throws Exception { // Flink’s entry point StreamExecutionEnvironment env = StreamExecutionEnvironment .getExecutionEnvironment();

DataStream<String> data = env.fromElements( "O Romeo, Romeo! wherefore art thou Romeo?", "Deny thy father and refuse thy name", "Or, if thou wilt not, be but sworn my love,", "And I'll no longer be a Capulet.");

// Split by whitespace to (word, 1) and sum up ones DataStream<Tuple2<String, Integer>> counts = data .flatMap(new SplitByWhitespace()) .keyBy(0) .timeWindow(Time.of(10, TimeUnit.SECONDS)) .sum(1);

counts.print();

// Today: What happens now? env.execute(); } }

Submit Program

Schedule

Execute

2

Page 10: Ufuc Celebi – Stream & Batch Processing in one System

Client

Translates the API code to a data flow graph called JobGraph and

submits it to the JobManager.

Source

Transform

Sink

public class WordCount {

public static void main(String[] args) throws Exception { // Flink’s entry point StreamExecutionEnvironment env = StreamExecutionEnvironment .getExecutionEnvironment();

DataStream<String> data = env.fromElements( "O Romeo, Romeo! wherefore art thou Romeo?", "Deny thy father and refuse thy name", "Or, if thou wilt not, be but sworn my love,", "And I'll no longer be a Capulet.");

// Split by whitespace to (word, 1) and sum up ones DataStream<Tuple2<String, Integer>> counts = data .flatMap(new SplitByWhitespace()) .keyBy(0) .timeWindow(Time.of(10, TimeUnit.SECONDS)) .sum(1);

counts.print();

// Today: What happens now? env.execute(); } }

Translate

3

Page 11: Ufuc Celebi – Stream & Batch Processing in one System

JobGraph

JobVertex IntermediateResult

Computation Data

4

Page 12: Ufuc Celebi – Stream & Batch Processing in one System

JobGraph

JobVertex IntermediateResult

JobVertex IntermediateResultProduce

Computation Data

4

Page 13: Ufuc Celebi – Stream & Batch Processing in one System

JobGraph

JobVertex IntermediateResult

JobVertex IntermediateResult

JobVertexIntermediateResult

Produce

Consume

Computation Data

4

Page 14: Ufuc Celebi – Stream & Batch Processing in one System

The JobGraph

Vertices and results are combined to a directed acyclic graph (DAG) representing the user program.

5

Source

Source

Sink

SinkJoin

Map

Page 15: Ufuc Celebi – Stream & Batch Processing in one System

JobGraph Translation• Translation includes optimizations like chaining:

f g

f · g

• DataSet API translation with cost-based optimization

6

Page 16: Ufuc Celebi – Stream & Batch Processing in one System

JobGraph

JobVertex Parameters • Parallelism • Code to run • Consumed result(s) • Connection pattern

JobGraph is common abstraction for both DataStream and DataSet API.

Result Parameters • Producer • Type

Runtime is agnostic to the respective API. It’s only a question of JobGraph parameterization.

7

Page 17: Ufuc Celebi – Stream & Batch Processing in one System

JobGraph

JobVertex Parameters • Parallelism • Code to run • Consumed result(s) • Connection pattern

JobGraph is common abstraction for both DataStream and DataSet API.

Result Parameters • Producer • Type

Runtime is agnostic to the respective API. It’s only a question of JobGraph parameterization.

7

Page 18: Ufuc Celebi – Stream & Batch Processing in one System

TaskManagerTaskManager

Coordination• Coordination between components via Akka Actors • Actors exchange asynchronous messages • Each actor has own isolated state

JobManager MasterClient

Actor SystemActor System

8 TaskManager

Page 19: Ufuc Celebi – Stream & Batch Processing in one System

System Components

JobManager MasterClient

TaskManager Worker

TaskManager Worker

TaskManager Worker

TaskManager Worker

User System

public class WordCount {

public static void main(String[] args) throws Exception { // Flink’s entry point StreamExecutionEnvironment env = StreamExecutionEnvironment .getExecutionEnvironment();

DataStream<String> data = env.fromElements( "O Romeo, Romeo! wherefore art thou Romeo?", "Deny thy father and refuse thy name", "Or, if thou wilt not, be but sworn my love,", "And I'll no longer be a Capulet.");

// Split by whitespace to (word, 1) and sum up ones DataStream<Tuple2<String, Integer>> counts = data .flatMap(new SplitByWhitespace()) .keyBy(0) .timeWindow(Time.of(10, TimeUnit.SECONDS)) .sum(1);

counts.print();

// Today: What happens now? env.execute(); } }

Submit Program

Page 20: Ufuc Celebi – Stream & Batch Processing in one System

JobManager• All coordination via JobManager (master):

• Scheduling programs for execution • Checkpoint coordination (Till’s talk later today) • Monitoring workers

Actor System

Scheduling

Checkpoint Coordination

9

Page 21: Ufuc Celebi – Stream & Batch Processing in one System

ExecutionGraph• Receive JobGraph and span out to ExecutionGraph

JobVertex Result JobVertex

10

Page 22: Ufuc Celebi – Stream & Batch Processing in one System

ExecutionGraph• Receive JobGraph and span out to ExecutionGraph

EV1

EV3

EV2

EV4

RP1

RP2

RP3

RP4

EV1

EV2

Point to PointJobVertex Result

ExecutionVertex (EV)ResultPartition (RP)

JobVertex

10

Page 23: Ufuc Celebi – Stream & Batch Processing in one System

ExecutionGraph• Receive JobGraph and span out to ExecutionGraph

EV1

EV3

EV2

EV4

RP1

RP2

RP3

RP4

EV1

EV2

All to AllJobVertex Result

ExecutionVertex (EV)ResultPartition (RP)

JobVertex

10

Page 24: Ufuc Celebi – Stream & Batch Processing in one System

TaskManager

Actor System

Task SlotTask SlotTask SlotTask Slot

• All data processing in TaskManager (worker): • Communicate with JobManager via Actor messages • Exchange data between themselves via dedicated

data connections • Expose task slots for execution

I/O Manager

Memory Manager

11

Page 25: Ufuc Celebi – Stream & Batch Processing in one System

Scheduling• Each ExecutionVertex will be executed one or more times • The JobManager maps Execution to task slots • Pipelined execution in same slot where applicable

12

p=4 p=4 p=3

All to allPointwise

TaskManager 1 TaskManager 2

Page 26: Ufuc Celebi – Stream & Batch Processing in one System

Scheduling

TaskManager 1 TaskManager 2

• Each ExecutionVertex will be executed one or more times • The JobManager maps Execution to task slots • Pipelined execution in same slot where applicable

p=4 p=4 p=3

All to allPointwise

12

Page 27: Ufuc Celebi – Stream & Batch Processing in one System

Scheduling

TaskManager 1 TaskManager 2

• Each ExecutionVertex will be executed one or more times • The JobManager maps Execution to task slots • Pipelined execution in same slot where applicable

p=4 p=4 p=3

All to allPointwise

12

Page 28: Ufuc Celebi – Stream & Batch Processing in one System

Scheduling

TaskManager 1 TaskManager 2

• Each ExecutionVertex will be executed one or more times • The JobManager maps Execution to task slots • Pipelined execution in same slot where applicable

p=4 p=4 p=3

All to allPointwise

12

Page 29: Ufuc Celebi – Stream & Batch Processing in one System

Scheduling

TaskManager 1 TaskManager 2

• Each ExecutionVertex will be executed one or more times • The JobManager maps Execution to task slots • Pipelined execution in same slot where applicable

p=4 p=4 p=3

All to allPointwise

12

Page 30: Ufuc Celebi – Stream & Batch Processing in one System

Scheduling

TaskManager 1 TaskManager 2

• Each ExecutionVertex will be executed one or more times • The JobManager maps Execution to task slots • Pipelined execution in same slot where applicable

p=4 p=4 p=3

All to allPointwise

12

Page 31: Ufuc Celebi – Stream & Batch Processing in one System

Scheduling• Scheduling happens from the sources • Later tasks are scheduled during runtime

• Depending on the result type

JobManager Master

Actor System

TaskManager Worker

Actor System

Submit Task

State Updates

13

Page 32: Ufuc Celebi – Stream & Batch Processing in one System

Execution• The ExecutionGraph tracks the state of each parallel

Execution • Asynchronous messages from the

TaskManager and Client Failed

FinishedCancellingCancelled

Created Scheduled RunningDeploying

14

Page 33: Ufuc Celebi – Stream & Batch Processing in one System

Task Execution• TaskManager receives Task per Execution • Task descriptor is limited to:

• Location of consumed results • Produced results • Operator & user code

User CodeOperator

Task

15

? ?

Page 34: Ufuc Celebi – Stream & Batch Processing in one System

Task ExecutionDataStream<Tuple2<String, Integer>> counts = data.flatMap(new SplitByWhitespace());

User Code

17

Page 35: Ufuc Celebi – Stream & Batch Processing in one System

Task ExecutionDataStream<Tuple2<String, Integer>> counts = data.flatMap(new SplitByWhitespace());

User Code

for (…) { out.collect(new Tuple2<>(w, 1));}

17

Page 36: Ufuc Celebi – Stream & Batch Processing in one System

Task ExecutionDataStream<Tuple2<String, Integer>> counts = data.flatMap(new SplitByWhitespace());

User Code

StreamTask withStreamFlatMap

operator

for (…) { out.collect(new Tuple2<>(w, 1));}

17

Page 37: Ufuc Celebi – Stream & Batch Processing in one System

Task ExecutionDataStream<Tuple2<String, Integer>> counts = data.flatMap(new SplitByWhitespace());

User Code

StreamTask withStreamFlatMap

operator

Task with one consumed and one produced

result

for (…) { out.collect(new Tuple2<>(w, 1));}

17

Page 38: Ufuc Celebi – Stream & Batch Processing in one System

Data Connections• Input Gates request input from local and remote

channels on first read

Task Result

ResultManager

TaskManager

ResultManager

TaskManager

NetworkManagerNetworkManager

Input Gate

18

Page 39: Ufuc Celebi – Stream & Batch Processing in one System

Data Connections• Input Gates request input from local and remote

channels on first read

Task Result

ResultManager

TaskManager

ResultManager

TaskManager

NetworkManagerNetworkManager

Input Gate

1.Initiate TCP connection

18

Page 40: Ufuc Celebi – Stream & Batch Processing in one System

Data Connections• Input Gates request input from local and remote

channels on first read

Task Result

ResultManager

TaskManager

ResultManager

TaskManager

NetworkManagerNetworkManager

Input Gate

2. Request1.Initiate TCP connection

18

Page 41: Ufuc Celebi – Stream & Batch Processing in one System

Data Connections• Input Gates request input from local and remote

channels on first read

Task Result

ResultManager

TaskManager

ResultManager

TaskManager

NetworkManagerNetworkManager

Input Gate

2. Request3. Send via

TCP

1.Initiate TCP connection

18

Page 42: Ufuc Celebi – Stream & Batch Processing in one System

Result Characteristics

vs.

vs.

Ephemeral Checkpointed

Pipelined Blocking

How and when to do data exchange?

How long to keep results around?

20

Page 43: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result

110101010100

Pipelined Results

21

Page 44: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result11010101

0100

Pipelined Results

21

Page 45: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result

110101010100

Pipelined Results

21

Page 46: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result Reduce

110101010100

Pipelined Results

21

Page 47: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result Reduce

110101010100

Pipelined Results

21

Page 48: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result Reduce

11010101

0100

Pipelined Results

21

Page 49: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result Reduce

11010101

0100

Pipelined Results

21

Page 50: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result Reduce

11010101

0100

Pipelined Results

21

Page 51: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result Reduce

11010101

0100

Pipelined Results

21

Page 52: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result Reduce

110101010100

Pipelined Results

21

Page 53: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result Reduce

11010101

0100

Pipelined Results

21

Page 54: Ufuc Celebi – Stream & Batch Processing in one System

Map Pipelined Result Reduce

110101010100

Pipelined Results

21

Page 55: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result

110101010100

Blocking Results

22

Page 56: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result11010101

0100

Blocking Results

22

Page 57: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result

110101010100

Blocking Results

22

Page 58: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result

11010101

0100

Blocking Results

22

Page 59: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result

11010101

0100

Blocking Results

22

Page 60: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result

110101010100

Blocking Results

22

Page 61: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result

110101010100

Blocking Results

22

Page 62: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result Reduce

110101010100

Blocking Results

22

Page 63: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result Reduce

110101010100

Blocking Results

22

Page 64: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result Reduce

110101010100

Blocking Results

22

Page 65: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result Reduce

11010101

0100

Blocking Results

22

Page 66: Ufuc Celebi – Stream & Batch Processing in one System

Map Blocking Result Reduce

110101010100

Blocking Results

22

Page 67: Ufuc Celebi – Stream & Batch Processing in one System

Batch Pipelines

Page 68: Ufuc Celebi – Stream & Batch Processing in one System

Batch Pipelines

Data exchange is mostly streamed

Page 69: Ufuc Celebi – Stream & Batch Processing in one System

Batch Pipelines

Data exchange is mostly streamed

Some operators block (e.g. sort, hash table)

Page 70: Ufuc Celebi – Stream & Batch Processing in one System

Recap

Client JobManager TaskManager

Communication Actor-only (coordination)

Actor-only (coordination)

Actor & Data Streams

Central Abstraction JobGraph ExecutionGraph Task

State Tracking – Completeprogram Single Task

23

Page 71: Ufuc Celebi – Stream & Batch Processing in one System

Thank You!

Page 72: Ufuc Celebi – Stream & Batch Processing in one System

Stream & Batch Processing

DataStream DataSet

JobGraph Chaining Chaining and cost-based optimisation

Intermediate Results Pipelined Pipelined and Blocking

Operators Stream operators Batch operators

User function Common interface formap, reduce, …

25

Page 73: Ufuc Celebi – Stream & Batch Processing in one System

Stream & Batch Processing• Stream and Batch programs are different

parameterizations of the JobGraph • Everything goes down to the same runtime • Streaming first, batch as special case

• Cost-based optimizer on translation • Blocking results for less resource fragmentation • But still profit from streaming

• DataSet and DataStream API are essentially all user code to the runtime

24

Page 74: Ufuc Celebi – Stream & Batch Processing in one System

Result Characteristics

vs.

vs.

Ephemeral Checkpointed

Pipelined Blocking

How and when to do data exchange?

How long to keep results around?

Page 75: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result

45

Ephemeral Results

110101010100

Page 76: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result

45

Ephemeral Results

110101010100

Page 77: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result

45

Ephemeral Results

110101010100

Page 78: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

110101010100

Page 79: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

110101010100

Page 80: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

11010101

0100

Page 81: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

11010101

0100

Page 82: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

11010101

0100

Page 83: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

11010101

0100

Page 84: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

1101

01010100

Page 85: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

1101

01010100

Page 86: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

1101

01010100

Page 87: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

11010101

0100

Page 88: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

11010101

0100

Page 89: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

11010101

0100

Page 90: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

11010101

0100

Page 91: Ufuc Celebi – Stream & Batch Processing in one System

Map Ephemeral Result Reduce

45

Ephemeral Results

11010101

0100

Page 92: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

110101010100

Page 93: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

110101010100

Page 94: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

110101010100

Page 95: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

110101010100

1101

Page 96: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

11010101

0100

1101

Page 97: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

11010101

0100

1101

Page 98: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

11010101

0100

11010101

Page 99: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

11010101010011010101

Page 100: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

110101010100

11010101

Page 101: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

110101010100

110101010100

Page 102: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

110101010100

110101010100

Page 103: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

110101010100

11010101

0100

Page 104: Ufuc Celebi – Stream & Batch Processing in one System

Map Checkpointed Result Reduce

46

Checkpointed Results

110101010100

110101010100