【发布时间】: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