【发布时间】:2021-08-06 13:41:41
【问题描述】:
我在 AWS EMR 集群上运行带有 pyspark3 内核的 Jupyterhub。我们可能知道 EMR 上的 Jupyterhub pyspark3 使用 Livy 会话在 AWS EMR YARN 调度程序上运行工作负载。我的问题是关于 spark 的配置:executor memory/cores,driver memory/cores 等。
Jupyter的config.json文件里已经有默认配置了:
...
"session_configs":{
"executorMemory":"4096M",
"executorCores":2,
"driverCores":2,
"driverMemory":"4096M",
"numExecutors":2
},
...
我们可以使用 sparkmagic 覆盖这个配置:
%%configure -f
{"conf":{"spark.pyspark.python": "python3",
"spark.pyspark.virtualenv.enabled": "true",
"spark.pyspark.virtualenv.type":"native",
"spark.pyspark.virtualenv.bin.path":"/usr/bin/virtualenv",
"spark.executor.memory":"2g",
"spark.driver.memory": "2g",
"spark.executor.cores": "1",
"spark.num.executors": "1",
"spark.driver.maxResultSize": "2g",
"spark.yarn.executor.memoryOverhead": "2g",
"spark.yarn.driver.memoryOverhead": "2g",
"spark.yarn.queue": "default"
}
}
EMR集群主节点spark-defaults.conf文件中也有配置。
spark.executor.memory 2048M
spark.driver.memory 2048M
spark.yarn.driver.memoryOverhead 409M
spark.executor.cores 2
...
当我启动 SparkSession 时将使用哪种配置,以便在 YARN 集群中运行 spark 应用程序?
请在 YARN Scheduler 上找到正在运行的 spark 应用程序的图像:
【问题讨论】:
标签: apache-spark pyspark jupyter-notebook amazon-emr livy