本期內容:spa
1,Spark Streaming資源動態分配資源
2,Spark Streaming動態控制消費速率spark
Spark Streaming處理數據有高峯期和低峯期,若是處理不一樣的時期資源佔用同樣的話,在低峯值就會存在資源的浪費。io
在SparkContext中能夠經過設置spark.dynamicAllocation.enabled來開啓資源動態分配。原理
讀取配置文件中spark.dynamicAllocation.enabled和spark.executor.instances的值。配置
ExecutorAllocationManager類中能夠設置Executor最大個數和最小個數,初始個數。定時器
實現資源動態分配的原理是定時器每隔固定的週期不斷去掃描Executor的狀況,正在運行的Stage中的Task信息,若是一段時間內某個Executor上的沒有一個Task任務運行,就可能把這個Executor移除掉。若是須要增長Executor則讓Worker啓動Executor。im