我有55 gb的数据需要处理。我在一台32核180gbram(没有集群)的单机上运行sparkshell。由于它是一个单节点,驱动程序和工作程序都驻留在同一个jvm进程中,默认情况下使用514MB。
我把spark.driver.memory设置为170g
spark-shell --driver-memory 170g
我正在做一个Map操作,后面是group\u by,然后是agg并写入Parquet文件。它仍然停留在
是否有任何方法可以通过更改spark.executor.memory或更改使用的内核数而不是使用master[*]来优化性能?如何确定给定任务和数据大小的最佳设置?在--conf文件中我应该精确调整哪些值?
简言之,如何强迫spark以最好的方式使用所有可用的资源?
1条答案
按热度按时间wlwcrazw1#
如果在一台计算机上运行,更改spark.executor.memory不会生效。你需要一个真正的集群。您可以向集群添加更多节点,以减少分区数量并加快处理速度。