gpt4 book ai didi

java - 在 Apache Spark 中插入查询花费太多时间

转载 作者:行者123 更新时间:2023-12-01 06:02:43 24 4
gpt4 key购买 nike

我正在将 Oracle 数据库与 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();

三个 Dataframe 中的每个都有 130 个分区。每个数据帧写入 3000 万行。

我使用130个核心,26个执行器(每个执行器有30GB内存),2台Worker机器(每台有88个虚拟核心和502.GB内存)

分析AWR报告后,我发现上述INSERT INTO查询在每个执行时间中花费最多。

我可以减少同样的量吗?

有什么办法可以提高性能吗?

编辑

此外,高水位线争用占数据库时间的 30%。

数据库机器有16核和264GB。

AWR 报告数据

AWR image 1

AWR image 2

最佳答案

您可以尝试以下设置吗?

executor cores: 25

cores per executor : 5

executer memory - 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.

关于java - 在 Apache Spark 中插入查询花费太多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54037542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com