[英]Insert Into queries take too much time in Apache spark
我正在將Oracle Database與Apache Spark 2.3.0一起使用
在我的代碼中,我使用下面的spark命令在三個表中寫入最終輸出(經過所有處理)。
billableChargeKDF.write().mode("append").format("jdbc").option("url", connection).option("dbtable", "CI_BILL_CHG_K").save();
billableChargeDF.write().mode("append").format("jdbc").option("url", connection).option("dbtable", "CI_BILL_CHG").save();
billableChargeSqDF.write().mode("append").format("jdbc").option("url", connection).option("dbtable", "CI_BCHG_SQ").save();
三個數據幀中的每個都有130個分區。 每個數據幀正在寫入3000萬行。
我正在使用130個核,26個執行器(每個執行器具有30GB內存),2個工作機(每個具有88個虛擬核和502.GB內存)
分析AWR report
我發現上述INSERT INTO
查詢在每個執行時間中花費的時間最多。
無論如何我可以減少相同嗎?
無論如何,我可以提高性能嗎?
編輯
高水印爭用也是DB時間的30%。
DB機器具有16個內核和264GB。
AWR報告數據
您可以嘗試以下設置嗎?
執行者核心:25
每個執行者的核心數:5
執行器內存-35G
總共130個核心-讓我們留下一個核心,並為每個執行者分配5個核心,這意味着
125 Cores/5 => 25 Executors with 5 cores each.
1004 GB Memory => 1004/25 => 40.16 - (40.16 * 0.07 for system) =37.36 Lets assign 35G for each executor.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.