Spark Structured Streaming源码扩展--(六)流式Shuffle支持多分区及侧边输出

一、概述

上一篇文章,我们介绍了Spark Continous连续处理模式,已有流式shuffle的实现,分析了绑定的物理计划和内部创建的writer、reader。
在本文,我们将介绍如何扩展Spark Continous流式shuffle源码,以支持多个下游分区、侧边输出、自动分析侧边输出的依赖、删除ReceiverEpochMarker机制提高并发性能等原理。

Spark 流处理源码版本迭代较快,为了避免应用扩展功能与Spark源码过于耦合,增加Spark版本升级难度,拟在DataSourceV2Strategy处,增加策略的绑定,实现的大部分逻辑仍放在应用层代码org.apache.spark包路径下。

二、核心实现:CoordinatorEndpoint及SlaveEndpoint端点

在下图中DataCleanRDD表示数据清理数据(即Shuffle前数据), 通过我们设计的shuffle数据流向,被分发到api聚合流、host聚合流各分区对应queue中:
(除下图流式数据分发外,流式Dataset#repartition方法也可以通过DataSourceV2Strategy直接绑定这个shuffle策略,流式group by算子执行前的shuffle操作同理)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值