本讲内容:
a. Spark Streaming中的空RDD处理
b. Spark Streaming程序的停止
注:本讲内容基于Spark 1.6.1版本(在2016年5月来说是Spark最新版本)讲解
上节回顾
上一讲中,我们要给大家解密park Streaming两个比较高级的特性,资源动态申请和动态控制消费速率原理
默认情况下,Spark是先分配好资源,然后在进行计算,也就是粗粒度的资源分配
粗粒度的好处:资源是提前给分配好的,所以计算任务的时候,直接使用这些资源
粗粒度的缺点:从Spark Streaming的角度讲,有高峰值和低峰值,高峰和低峰的时候,需要的资源是不一样的;如果按照高峰值的角度去分配,低峰值的时候,有大量的资源的浪费
资源的动态分配是由一个定时器,不断的扫描Executor的情况,例如:有段时间之内,Executor没收到任何任务,所以会把这个Executor移除掉
动态资源调整的时候,最好不要设置太多的Core,Core设置的太多,假如资源调整太过频繁的话,是比较麻烦的(Core 的个数一般设置为奇数:3、5、7)
Spark Streaming要进行处理资源的动态调整,就是Executor的动态调整
Spark Streaming是Batch Duration的方式执行的,这个Batch Duration里需要很多资源,下一个Batch Duration里不需要那么多资源,可能想调整资源的时候,还没来得及调整完资源,当前的这个Batc