第21课:Spark Streaming中动态Batch Size深入及RateController

本期内容:

1,动态Batch Size深入

2,RateController解析

 

Spark Streaming中采用的模型如下,基本思想是按照100ms的批次发送数据给Controller,刚开始Controller直接转给JobGenerator,JobGenerator在生成Job,交给JobProcessor来处理,JobProcessor将job统计信息发送给Controller,Controller接收到统计信息,会动态改变Batch Size来给Job发送数据。

 

第21课:Spark Streaming中动态Batch Size深入及RateController

RateController的子类有ReceiverRateController、DirectKafkaRateController。

第21课:Spark Streaming中动态Batch Size深入及RateController

ReceiverRateController会向receiverTracker发送UpdateReceiverRateLimit消息。

第21课:Spark Streaming中动态Batch Size深入及RateController第21课:Spark Streaming中动态Batch Size深入及RateController

 

    ReceiverTracker接收到UpdateReceiverRateLimit消息后,向ReceiverSupervisorImpl转发UpdateRateLimit消息。

 

第21课:Spark Streaming中动态Batch Size深入及RateController

    ReceiverSupervisorImpl接收到UpdateRateLimit消息后,调用BlockGenerator的updateRate方法,来控制数据的接收速度。

第21课:Spark Streaming中动态Batch Size深入及RateController

    BlockGenerator继承自RateLimiter。

第21课:Spark Streaming中动态Batch Size深入及RateController

第21课:Spark Streaming中动态Batch Size深入及RateController第21课:Spark Streaming中动态Batch Size深入及RateController

转载于:https://my.oschina.net/u/928448/blog/689404