TSA*_*SAR 5 apache-spark pyspark jupyter-notebook
我正在从 Jupyter Notebook 中初始化 PySpark,如下所示:
from pyspark import SparkContext
#
conf = SparkConf().setAppName("PySpark-testing-app").setMaster("yarn")
conf = (conf.set("deploy-mode","client")
.set("spark.driver.memory","20g")
.set("spark.executor.memory","20g")
.set("spark.driver.cores","4")
.set("spark.num.executors","6")
.set("spark.executor.cores","4"))
sc = SparkContext(conf=conf)
sqlContext = SQLContext.getOrCreate(sc)
Run Code Online (Sandbox Code Playgroud)
但是,当我启动 YARN GUI 并查看“正在运行的应用程序”时,我看到我的会话被分配了 1 个容器、1 个 vCPU 和 1GB 的 RAM,即默认值!我可以获得上面列出的所需的传递值吗?
Jupyter笔记本将以yarn-client模式启动pyspark,驱动程序内存和某些配置无法使用“sparkConf”类进行设置。您必须在命令行中设置它。
看看官方文档对内存设置的解释:
注意:在客户端模式下,不能直接在应用程序中设置此配置SparkConf
,因为此时驱动程序 JVM 已经启动。相反,请通过--driver-memory command
行选项或在默认属性文件中进行设置。
还有另一种方法可以做到。
import os
memory = '20g'
pyspark_submit_args = ' --driver-memory ' + memory + ' pyspark-shell'
os.environ["PYSPARK_SUBMIT_ARGS"] = pyspark_submit_args
Run Code Online (Sandbox Code Playgroud)
因此,其他配置应采用与上述相同的方式。
归档时间: |
|
查看次数: |
5436 次 |
最近记录: |