我对在Spark中处理执行器内存和驱动程序内存感到困惑。
我的环境设置如下:
- 128 G内存,9个VM,每个VM有16个CPU
- Centos操作系统
- Hadoop 2.5.0-cdh5.2.0
- Spark 1.1.0
输入数据信息如下:
- 从HDFS读取3.5 GB的数据文件
为了简单开发,我使用spark-submit
命令,在独立集群模式下执行Python代码(8个worker、20个核心、45.3G内存)。现在我想进行性能调优,设置executor memory或driver memory。
根据Spark文档,executor memory的定义为:
每个执行器进程使用的内存量,格式与JVM内存字符串相同(例如512m,2g)。
那么驱动程序内存是怎样的呢?
datraframe.coalesce(1).write().csv(outputDir)
操作,我需要确保分配给驱动程序的内存大于20GB吗? - Omkar Puttagunta