我们在下面的硬件上运行用JAVA编写的SPARK应用程序:
-
一个主节点
-
两个工作节点(每个节点具有502.5 GB可用内存和88个内核(CPU)) .
使用 ./spark-submit
命令的以下配置:
--executor-memory=30GB --driver-memory=20G --executor-cores=5 --driver-cores=5
我们正在使用 SPARK cluster manager .
处理1000万个数据需要 13 minutes .
我们没有共享应用程序代码的自由 .
有人建议配置调整我们的应用程序以获得更好的性能?
如果您需要任何其他细节,请告诉我 .
我们正在使用 SPARK 2.3.0
EDIT
我们的数据包含127列和1000万行 . spark启动了32个具有上述配置的 Actuator . 我们正在flatmap函数中进行外部应用程序调用 .
do you think if hardware resources are not enough?
1 回答
如果您使用的是Spark独立群集,则可以尝试将
--executor-cores=5
设置设置为较低的设置,如果您的操作不是CPU密集型,则可以使用更多的执行程序 . 同时尝试将--total-executor-cores
设置为88(或者您想要给出的最大核心数,此参数控制您将拥有的执行程序数),以便您可以更好地控制 .