首页 > 解决方案 > 如何确定在单个节点上运行 spark 的最佳设置?

问题描述

我有 55 GB 数据需要处理。我在具有 32 个内核和 180GB RAM(无集群)的单台机器上运行 Spark-shell。由于它是一个单节点——Driver 和 Workers 都驻留在同一个 JVM 进程中,默认使用 514 MB。

我将 spark.driver.memory 设置为 170G

spark-shell  --driver-memory 170g

我正在做一个 map 操作,然后是 group_by,然后是 agg 并写入 parquet 文件。它仍然停留在 在此处输入图像描述

无论如何通过更改 spark.executor.memory 或更改使用的核心数而不是使用 Master [*] 来优化性能?如何确定给定任务和数据大小的最佳设置?我应该精确调整 --conf 文件中的哪些值?

简而言之,如何强制 spark 以最好的方式使用所有可用的资源?

标签: scalaapache-sparkpysparkspark-shell

解决方案


如果您在单台计算机上运行,​​更改 spark.executor.memory 不会生效。您需要有一个实际的集群。您可以向集群添加更多节点以减少分区数量并加快处理速度。


推荐阅读