Flink Remote ShuffleFlink 任務(wù)間數(shù)據(jù)交換
Flink Remote Shuffle 是一種批場(chǎng)景下利用外部服務(wù)完成任務(wù)間數(shù)據(jù)交換的 Shuffle 實(shí)現(xiàn),本文后續(xù)將詳細(xì)介紹 Flink Remote Shuffle 研發(fā)的背景,以及 Flink Remote Shuffle 的設(shè)計(jì)與使用。
重要特性
-
存儲(chǔ)計(jì)算分離:存儲(chǔ)計(jì)算分離使計(jì)算資源與存儲(chǔ)資源可以獨(dú)立伸縮,計(jì)算資源可以在計(jì)算完成后立即釋放,Shuffle 穩(wěn)定性不再受計(jì)算穩(wěn)定性影響。
-
支持多種部署模式:支持 Kubernetes、Yarn 以及 Standalone 環(huán)境下部署。
-
采用了類似 Flink Credit-Based 流量控制機(jī)制,實(shí)現(xiàn)了零拷貝數(shù)據(jù)傳輸,最大限度的使用受管理的內(nèi)存 (managed memory) 以避免 OOM,提高了系統(tǒng)穩(wěn)定性與性能。
-
實(shí)現(xiàn)了包括負(fù)載均衡、磁盤 IO 優(yōu)化、數(shù)據(jù)壓縮、連接復(fù)用、小包合并等諸多優(yōu)化,實(shí)現(xiàn)了優(yōu)秀的性能與穩(wěn)定性表現(xiàn)。
-
支持 Shuffle 數(shù)據(jù)正確性校驗(yàn),能夠容忍 Shuffle 進(jìn)程乃至物理節(jié)點(diǎn)重啟。
-
結(jié)合 FLIP-187: Flink Adaptive Batch Job Scheduler[11] 可支持動(dòng)態(tài)執(zhí)行優(yōu)化,如動(dòng)態(tài)決定算子并發(fā)度。
設(shè)計(jì)思路與原理介紹
參閱此文章:https://www.oschina.net/news/171564/flink-remote-shuffle-open-source
