第17课:Spark Streaming资源动态申请和动态控制消费速率原理剖析

本期内容:

1,Spark Streaming资源动态分配

2,Spark Streaming动态控制消费速率

 

Spark Streaming处理数据有高峰期和低峰期,如果处理不同的时期资源占用一样的话,在低峰值就会存在资源的浪费。

在SparkContext中可以通过设置spark.dynamicAllocation.enabled来开启资源动态分配。

 

第17课:Spark Streaming资源动态申请和动态控制消费速率原理剖析

读取配置文件中spark.dynamicAllocation.enabled和spark.executor.instances的值。

第17课:Spark Streaming资源动态申请和动态控制消费速率原理剖析

ExecutorAllocationManager类中可以设置Executor最大个数和最小个数,初始个数。

第17课:Spark Streaming资源动态申请和动态控制消费速率原理剖析

实现资源动态分配的原理是定时器每隔固定的周期不断去扫描Executor的情况,正在运行的Stage中的Task信息,如果一段时间内某个Executor上的没有一个Task任务运行,就可能把这个Executor移除掉。如果需要增加Executor则让Worker启动Executor。

 

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