Spark Streaming的Exactly-One的事务处理和不重复输出详解

本篇博文组织形式如下:
一:Exactly-One的事务处理
二:输出不重复

一:Exactly-One的事务处理
一:Exactly-One的事务处理
1. 什么是事务处理:
a) 能够处理且只被处理一次。例如,银行转账,A转给B,A有且仅转一次。
b) 能够输出,且只能够输出一次。而B接收转账,且直接收一次。

2.  事务处理会不会失败呢?

可能性不大,Spark是批处理的方式来进行流处理Batch Interval的方式,Spark应用程序启动的时候为我们分配了资源,而且在计算的时候也会动态的分配资源。

3.  WAL机制:

写文件的时候,先通过WAL写入到文件系统中,然后再通过Executor存储到内存或者磁盘中。但是假设数据没有写成功的话,后面一定不会存储到Executor中,这样的话,Executor此时就不会向Driver汇报,那么这些数据一定不会被计算。因此,WAL也并不是一定就可以保证数据安全。

4.  Executor接收数据是一条一条接收的,Receiver会将数据在内存中积累到一定程度的时候才会写入到WAL或者说写入到磁盘中。但是如果还没有积累到一定程度,Receiver崩溃了咋办?

5.  InputDStream的真正产生是在:Driver端产生的。Receiver不断的接收数据,Receiver为了保证安全性,他会不断的通过容错的方式进行处理(把数据写进磁盘,写进内存同时有副本的方式,或者说WAL),
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值