2核8GB单节点本地运行环境的SparkConf配置是否合理?
配置适配性结论
该配置的资源额度完全适配2核8GB的本地单节点运行环境,但存在3处无效配置需要调整,调整后即可正常运行:
存在的问题说明
- 参数冲突1:你设置了
setMaster('local')启用Spark本地运行模式,该模式下所有计算逻辑都运行在Driver进程中,spark.executor.memory、spark.executor.cores、spark.executor.instances这类Executor相关配置全部不生效。 - 参数冲突2:本地单节点运行pyspark时,
spark.submit.deployMode设置为cluster无意义,cluster模式需要配套Spark集群部署环境,本地运行直接使用默认的client模式即可,可直接删除该配置项。 - 资源利用率偏低:当前配置的内存总占用(Driver内存+堆外内存)不到1.5GB,仅用到8GB总内存的不到20%,CPU也没有明确限制,存在资源浪费。
推荐调整后的配置
conf = pyspark.SparkConf().setAppName("Welcome Back Pratik").setMaster('local[2]')\ .set('spark.driver.memory','4g')\ .set('spark.memory.offHeap.enabled',"True")\ .set('spark.memory.offHeap.size','1g')
调整说明:
setMaster('local[2]')明确限制Spark用2核CPU,刚好跑满你的硬件配置- Driver内存提升到4g,加1g堆外内存,总内存占用5g,剩余3g留给操作系统和其他本地进程,资源利用更合理
内容的提问来源于stack exchange,提问作者pratikpatre
相关产品推荐
相关产品推荐

