Flink數據傾斜理解
數據傾斜原理 數據傾斜就是數據的分布嚴重不均,流入部分算子的數據明顯多余其他算子,造成這部分算子壓力過(guò)大。 影響 單點(diǎn)問(wèn)題 數據集中在某些分區上(Subtask),導致數據嚴重不平衡。 GC 頻繁 過(guò)多的數據集中在某些 JVM(TaskManager),使得JVM 的內存資源短缺,導致頻繁 GC。 吞吐下降、延遲增大 數據單點(diǎn)和頻繁 GC 導致吞吐下降、延遲增大。 系統崩潰 嚴重情況下,過(guò)長(cháng)的 GC 導致 TaskManager 失聯(lián),系統崩潰。 Flink數據傾斜問(wèn)題定位 定位反壓 定位反壓有2種方式:Flink Web UI 自帶的反壓監控(直接方式)、Flink Task Metrics(間接方式)。通過(guò)監控反壓的信息 ,可以獲取到數據處理瓶頸的 Subtask。 確定數據傾斜 Flink Web UI 自帶Subtask 接收和發(fā)送的數據量。當 Subtasks 之間處理的數據量有較大的差距,則該 Subtask 出現數據傾斜。 Flink 如何處理常見(jiàn)數據傾斜 數據源 source 消費不均勻 解決思路:通過(guò)調整并發(fā)度,解決數據源消費不均勻或者數據源反壓的情況。 例如kaf....