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