我有一个spark应用程序,它从csv文件加载数据,调用Drools引擎,使用flatmap并将结果保存到输出文件(.csv)
以下是两个测试用例:
1)当我运行此应用程序时, 2 Worker nodes 具有相同的配置(8个核心)应用程序需要 5.2 minutes 来完成:
-
执行人数:133
-
核心总数:16
-
已用内存:2GB(每个执行程序1GB)
-
可用内存:30GB
2)当我运行此应用程序时, 3 Worker nodes 具有相同的配置(8个核心)应用程序需要 7.6 minutes 来完成:
-
执行人数:266
-
核心总数:24
-
已用内存:3GB(每个执行程序1GB)
-
可用内存:45GB
Expected result
添加一个具有相同配置的工作节点后,应该花费更少的时间 .
Actual Result
添加一个具有相同配置的工作节点后,需要更多时间 .
我在 standalone 模式下使用 spark-submit
命令运行应用程序 .
在这里,我想了解为什么增加工作节点不会提高性能,这是不是正确的期望?
EDIT
在查看了stackoverflow上的其他类似问题之后,我尝试使用 spark.dynamicAllocation.enabled=true
运行应用程序,但是它进一步降低了性能 .