背景介紹
Shuffle 演進
隨著B站業務的飛速發展,數據規模呈指數級增長,計算集群也逐步從單機房擴展到多機房部署模式。多個業務線依托大數據平臺驅動核心業務,大數據系統的高效性與穩定性成為公司業務發展的重要基石。如圖1,目前在大數據基礎架構下,我們主要采用 Spark、Flink、Presto 以及 Hive 作為計算引擎支撐各類復雜業務場景需求,離線計算集群基本每天運行30+萬左右的 Spark 作業,包括任務調度平臺的 ETL 任務、Kyuubi 提交的 Adhoc 作業等,其作業的 Shuffle 數據規模能夠達到30PB以上,同時單個作業的 Shuffle 量最大規模有幾百TB。同時 Shuffle 算子作為大數據計算引擎中間數據處理最重要的算子,Shuffle 的穩定性關系著線上大量離線作業的可靠性和性能。因此,對于海量的 Shuffle 中間數據和復雜多變的計算環境來說,保證 Shuffle 數據處理的穩定性對線上作業的穩定性和運行效率尤為重要。
圖1:B站大數據基礎架構圖