Flink Remote ShuffleFlink 任务间数据交换
Flink Remote Shuffle 是一种批场景下利用外部服务完成任务间数据交换的 Shuffle 实现,本文后续将详细介绍 Flink Remote Shuffle 研发的背景,以及 Flink Remote Shuffle 的设计与使用。
重要特性
-
存储计算分离:存储计算分离使计算资源与存储资源可以独立伸缩,计算资源可以在计算完成后立即释放,Shuffle 稳定性不再受计算稳定性影响。
-
支持多种部署模式:支持 Kubernetes、Yarn 以及 Standalone 环境下部署。
-
采用了类似 Flink Credit-Based 流量控制机制,实现了零拷贝数据传输,最大限度的使用受管理的内存 (managed memory) 以避免 OOM,提高了系统稳定性与性能。
-
实现了包括负载均衡、磁盘 IO 优化、数据压缩、连接复用、小包合并等诸多优化,实现了优秀的性能与稳定性表现。
-
支持 Shuffle 数据正确性校验,能够容忍 Shuffle 进程乃至物理节点重启。
-
结合 FLIP-187: Flink Adaptive Batch Job Scheduler[11] 可支持动态执行优化,如动态决定算子并发度。
设计思路与原理介绍
参阅此文章:https://www.oschina.net/news/171564/flink-remote-shuffle-open-source
评论