Spark抽取多分表資料效能

2021-10-17 03:18:19 字數 773 閱讀 8111

使用spark.read.jdbc讀取表後註冊成臨時表,再將表union all起來可不形成寬依賴,將多張分表合併成總表的job放在乙個stage中

從而可以根據任務啟用資源的調整(主要是core數)將從mysql抽數的任務並行處理

下圖為任務執行的的dag圖,可以看到128個分表雖然在**中是迴圈讀,但是實際上分成了1個stage中的128個task並行執行

下面為驗證:

由於測試環境資源有限,分別進行了如下三種資源調整測試效率(也只是觀察趨勢,具體生產環境配置還需要測試調整)

num-executors:1 executor-cores: 1 executor-memory 1g (單執行緒序列執行)

num-executors:4 executor-cores: 4 executor-memory 1g (16併發執行)

num-executors:4 executor-cores: 8 executor-memory 1g (32併發執行)

Spark抽取MySQL分表優化

從mysql抽取hive表 mysql中有128張分表 原抽數邏輯sql為 select concat good sn,wh code as goodsid,max ship price exchange rate as shipprice,max ship fee exchange rate as...

Spark效能優化指南 資料傾斜

調優概述 有的時候,我們可能會遇到大資料計算中乙個最棘手的問題 資料傾斜,此時spark作業的效能會比期望差很多。資料傾斜調優,就是使用各種技術方案解決不同型別的資料傾斜問題,以保證spark作業的效能。資料傾斜發生時的現象 絕大多數task執行得都非常快,但個別task執行極慢。比如,總共有100...

spark效能調優 資料傾斜

1.資料傾斜發生時的現象 絕大多數task執行得都非常快,但個別task執行極慢。比如,總共有1000個task,997個task都在1分鐘之內執行完了,但是剩餘兩三個task卻要一兩個小時。這種情況很常見。原本能夠正常執行的spark作業,某天突然報出oom 記憶體溢位 異常,觀察異常棧,是我們寫...