用于1000万数据的Spark性能调整配置

时间:2018-11-29 09:59:04

标签: java performance apache-spark apache-spark-2.0

我们正在以下硬件上运行用JAVA编写的SPARK应用程序:

  1. 一个主节点
  2. 两个工作节点(每个可用502.5 GB)     内存和88核(CPU))。

具有./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函数内部进行外部应用程序调用。

您认为硬件资源是否不足?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Spark独立群集,则可以尝试将--executor-cores=5设置设置为较低的设置,如果您的操作不占用大量CPU,则可以使用更多的执行程序。还可以尝试将--total-executor-cores设置为88(或您要提供的最大内核数,此参数控制您将拥有的执行程序的数量),以便更好地控制。