第17课:Spark Streaming资源动态申请和动态控制消费速率原理剖析
本期内容:
1,Spark Streaming资源动态分配
2,Spark Streaming动态控制消费速率
Spark Streaming处理数据有高峰期和低峰期,如果处理不同的时期资源占用一样的话,在低峰值就会存在资源的浪费。
在SparkContext中可以通过设置spark.dynamicAllocation.enabled来开启资源动态分配。
读取配置文件中spark.dynamicAllocation.enabled和spark.executor.instances的值。
ExecutorAllocationManager类中可以设置Executor最大个数和最小个数,初始个数。
实现资源动态分配的原理是定时器每隔固定的周期不断去扫描Executor的情况,正在运行的Stage中的Task信息,如果一段时间内某个Executor上的没有一个Task任务运行,就可能把这个Executor移除掉。如果需要增加Executor则让Worker启动Executor。
转载于:https://my.oschina.net/u/928448/blog/685211