博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第16课:Spark Streaming源码解读之数据清理内幕彻底解密
阅读量:7023 次
发布时间:2019-06-28

本文共 945 字,大约阅读时间需要 3 分钟。

hot3.png

本期内容:

1,Spark Streaming数据清理原因和现象

2,Spark Streaming数据清理代码解析

 

因为RDD是由DStream产生的,对RDD的操作都是基于对DStream的操作,DStream负责RDD的生命周期。我们一般会调用DStream的foreachRDD操作,进行输出到HDFS的操作。foreachRDD操作会实例化ForEachDStream对象。

 

 

在ForEachDStream的generateJob方法中,调用了传入的方法foreachFunc,作用在这个BatchTime生成的RDD。

 

 

在JobGenerator类中处理消息的函数processEvent中,当接收到清除元数据消息,则调用clearMetadata方法,当接收到清除checkpoint数据,则调用clearCheckpointData方法。

 

 

clearMetadata方法中,先清除DStreamGraph的metadata信息,然后根据是否进行checkpoin操作,或是发送DoCheckpoint消息,或是清除掉ReceiverTracker和InputInfoTracker上之前的数据。

 

 

DStreamGraph的clearMetadata方法会遍历并调用所有OutputStream的clearMetadata方法,把之前persist的RDD进行unpersist操作,从generatedRDDs中清除掉,如果是BlockRDD的话,还会调用removeBlocks方法来移除,最后删除它的依赖dependencies.foreach(_.clearMetadata(time))。

 

 

当前Batch完成后会发送ClearMetadata消息。

 

onBatchCompletion方法是被handleJobComplation方法调用的。

 

handleJobComplation方法是接收到JobCompleted消息时调用的。

 

在JobHandler的执行过程中,先会发送JobStarted消息,然后调用job的run方法,最后发送JobCompleted消息。

 

转载于:https://my.oschina.net/u/928448/blog/684500

你可能感兴趣的文章
二分查找
查看>>
HDU ACM 1163 Eddy's digital Roots
查看>>
ARCGIS 数据格式
查看>>
C语言创建文件
查看>>
一道简单的数学题
查看>>
为什么 执行typeof null时会返回字符串“object”?
查看>>
JavaScript关于闭包的理解和实例
查看>>
jquery-ui-widget
查看>>
VC Error spawning cl.exe
查看>>
IIS连接数据库:数据库连接出错,请检查连接字串
查看>>
centos7救援模式--rescue模式
查看>>
C++ 输出到文本文件
查看>>
sql Lloader
查看>>
使用python学习【机器学习】需要安装的库~
查看>>
第一次作业+105032014098
查看>>
Codeforces 832B: Petya and Exam
查看>>
axios链接带参数_VUE升级(全面解析vuecil3/vuecil4的vue.config.js等常用配置,配置axios)...
查看>>
vue warning如何去掉_详解vue组件三大核心概念
查看>>
qt mysql md5加密_Qt 给密码进行MD5加密
查看>>
用java swing做连连看_java基于swing实现的连连看代码
查看>>