更多关注spark streaming源码分析之流程详解
DStreamGraph的作用是什么呢?
- DStreamGraph通过持有所有的inputstream和outputstream,划分提交job
- 清理,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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。