【问题标题】:How to determine the best setting for spark running on a single node?如何确定在单个节点上运行 spark 的最佳设置?
【发布时间】:2021-02-19 16:30:08
【问题描述】:

我有 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 以最好的方式使用所有可用的资源?

【问题讨论】:

  • 您可以在top 或类似的地方查看CPU 和内存使用情况。我认为 spark 默认使用所有可用的内核。该过程可能很慢,因为读取大量数据时 I/O 速度很慢,和/或由于涉及的计算量很大,计算速度很慢。

标签: scala apache-spark pyspark spark-shell


【解决方案1】:

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

【讨论】:

  • 我只有一个节点/机器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多