Spark Streaming揭秘 Day16 数据清理机制

Spark Streaming揭秘 Day16

数据清理机制

今天主要来讲下Spark的数据清理机制,我们都知道,Spark是运行在jvm上的,虽然jvm本身就有对象的自动回收工作,但是,如果自己不进行管理的,由于运行过程中大量产生对象,内存很快就会耗尽。我们可以认为数据清理就是SparkStreaming自己的"GC"。

从DStream开始

RDD是在DStream中产生的,RDD的操作也是在DStream中进行的,所以DStream会负责RDD数据的生命周期。

在DStream中,数据保存一般会有三个部分

首先,前面也反复提到,在DStream中,数据会按照Batch Duration保存在generatedRDDs,也会按照Batch Duration来进行删除
Snip20160527_34

其次,如果执行了cache操作,还会产生persist的数据
Snip20160527_35

最后,在Driver上也会有元数据的保存,释放RDD时,也要考虑。

JobGenerator

从上面的描述,我们可以知道数据是按照Batch Duration产生,所以也会按照Batch Duration来进行清理,那么研究数据清理机制,就可以从定期器着手。

在定时器的回调方法中,我们可以很明显的看到数据清理的核心方法ClearMetadata
Snip20160527_36

这个方法,最终会调用DStream上的clearMetadata方法。
我们可以看到,这个方法主要进行三方面清理:
1.将数据从generatedRDDs中移除。
2.先清理cache,再清理block,block清理是调用了spark core的功能。
3.对依赖的DStream也会进行清理。
Snip20160527_38

需要注意的是,在这个方法中,允许自定义rememberDuration,这个参数可以设置为Duration的整数倍,可以支持跨Batch清理。

Snip20160527_39

JobScheduler

最后一个问题,清理是被什么时候触发的?

首先,在JobHandler运行结束时,最后会触发JobCompleted事件。
Snip20160527_41

其中,会调用onBatchCompletion操作。
Snip20160527_42

最终,会执行上述提到的ClearMetadata方法。
Snip20160527_40

至此,我们了解了数据清理的主要流程和逻辑。

欲知后事如何,且听下回分解

DT大数据每天晚上20:00YY频道现场授课频道68917580

转载于:https://www.cnblogs.com/dt-zhw/p/5536482.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark Streaming数据新旧版反压机制是指在流处理过程中,Spark Streaming 通过不同的机制来控制数据的流动,以避免数据积压和处理延迟过大的问题,确保处理任务的高效运行。 其中,数据新旧版反压机制Spark Streaming 中比较重要的一种反压机制。它主要是通过控制数据生成和处理的速率来实现的。具体来说,对于一个 Spark Streaming 应用程序而言,其接收到的数据分为两种类型,即新数据和旧数据。新数据是指当前批次中的数据,而旧数据则是指之前批次中未被处理的数据。在数据处理过程中,新数据的优先级要高于旧数据,因为新数据更具有时效性。因此,Spark Streaming 会通过一些机制来控制新数据的生成速率,以确保数据处理的及时性。 具体来说,Spark Streaming 会通过动态调整批次间隔的方式,来控制新数据的生成速率。当新数据积压过多时,Spark Streaming 会自动缩短批次间隔,以加快数据处理速度,从而保证新数据的及时性。而当新数据相对较少时,则会相应地增加批次间隔,以降低数据处理的频率,从而避免资源浪费和任务过度压力。 同时,为了保证旧数据的处理,Spark Streaming 也会采取一些措施,如启用数据缓存和数据预取等机制,来减少旧数据的积压和处理延迟。通过这些措施的配合,Spark Streaming 可以实现高效的数据处理和反压控制,从而提高应用程序的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值