我们正在以下硬件上运行用JAVA编写的SPARK应用程序:
具有./spark-submit
命令的以下配置:
-executor-内存= 30GB --driver-memory = 20G --executor-cores = 5 --driver-cores = 5
我们正在使用 SPARK集群管理器。
处理1000万数据需要 13分钟。
我们没有共享应用程序代码的自由。
有人可以建议配置以调整我们的应用程序以获得更好的性能吗?
让我知道是否需要其他详细信息。
我们正在使用 SPARK 2.3.0
编辑
我们的数据包含127列和1000万行。 spark启动了具有上述配置的32个执行程序。我们正在flatmap函数内部进行外部应用程序调用。
您认为硬件资源是否不足?
答案 0 :(得分:0)
如果您使用的是Spark独立群集,则可以尝试将--executor-cores=5
设置设置为较低的设置,如果您的操作不占用大量CPU,则可以使用更多的执行程序。还可以尝试将--total-executor-cores
设置为88(或您要提供的最大内核数,此参数控制您将拥有的执行程序的数量),以便更好地控制。