簡體   English   中英

插入查詢在Apache Spark中花費太多時間

[英]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報告數據

AWR圖片1

AWR圖片2

您可以嘗試以下設置嗎?

執行者核心: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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM