spark streaming源码分析之DStreamGraph 详解

更多关注spark streaming源码分析之流程详解

DStreamGraph的作用是什么呢?
  1. DStreamGraph通过持有所有的inputstream和outputstream,划分提交job
  2. 清理,spark streaming中一直接收数据,会不会把内存撑爆?checkpoint的data什么时候清理?什么时候更新?
//1. add input/output DS
def addInputStream(inputStream: InputDStream[_]) {
    this.synchronized {
      inputStream.setGraph(this)
      inputStreams += inputStream
    }
  }
//output 同上
//2. 调用持有的output ds实例提交作业
def generateJobs(time: Time): Seq[Job] = {
.....
    val jobs = this.synchronized {
      outputStreams.flatMap { outputStream =>
        val jobOption = outputStream.generateJob(time)
        jobOption.foreach(_.setCallSite(outputStream.creationSite))
        jobOption
      }
    }
    jobs
  }
//3.清理,spark streaming中一直接收数据,会不会把内存撑爆?checkpoint的data什么时候清理?什么时候更新?等等见博客:

def clearMetadata(time: Time)

def updateCheckpointData(time: Time)

def clearCheckpointData(time: Time)

def restoreCheckpointData() 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容