Flink 任务间数据交换 Flink Remote Shuffle

Apache 2.0
Java
跨平台
2021-12-01
罗奇奇

Flink Remote Shuffle 是一种批场景下利用外部服务完成任务间数据交换的 Shuffle 实现,本文后续将详细介绍 Flink Remote Shuffle 研发的背景,以及 Flink Remote Shuffle 的设计与使用。

重要特性

  1. 存储计算分离:存储计算分离使计算资源与存储资源可以独立伸缩,计算资源可以在计算完成后立即释放,Shuffle 稳定性不再受计算稳定性影响。

  2. 支持多种部署模式:支持 Kubernetes、Yarn 以及 Standalone 环境下部署。

  3. 采用了类似 Flink Credit-Based 流量控制机制,实现了零拷贝数据传输,最大限度的使用受管理的内存 (managed memory) 以避免 OOM,提高了系统稳定性与性能。

  4. 实现了包括负载均衡、磁盘 IO 优化、数据压缩、连接复用、小包合并等诸多优化,实现了优秀的性能与稳定性表现。

  5. 支持 Shuffle 数据正确性校验,能够容忍 Shuffle 进程乃至物理节点重启。

  6. 结合 FLIP-187: Flink Adaptive Batch Job Scheduler[11] 可支持动态执行优化,如动态决定算子并发度。

设计思路与原理介绍

参阅此文章:https://www.oschina.net/news/171564/flink-remote-shuffle-open-source

 

加载中

暂无资讯

暂无问答

暂无博客

返回顶部
顶部