3 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個贊
由于您已經(jīng)在本地模式下運(yùn)行Spark,因此設(shè)置spark.executor.memory不會產(chǎn)生任何影響。這樣做的原因是,在啟動spark-shell時,Worker在啟動的驅(qū)動程序JVM進(jìn)程中“存在”,并且默認(rèn)內(nèi)存為512M。您可以通過將其設(shè)置spark.driver.memory為更高的值(例如5g)來增加該值。您可以通過以下任一方法來做到這一點(diǎn):
在屬性文件中進(jìn)行設(shè)置(默認(rèn)為$SPARK_HOME/conf/spark-defaults.conf),
spark.driver.memory 5g
或在運(yùn)行時提供配置設(shè)置
$ ./bin/spark-shell --driver-memory 5g
請注意,這無法通過在應(yīng)用程序中進(jìn)行設(shè)置來實(shí)現(xiàn),因?yàn)榈侥菚r已經(jīng)為時已晚,該過程已經(jīng)以一定數(shù)量的內(nèi)存開始。
之所以要使用265.4 MB,是因?yàn)镾park 會將spark.storage.memoryFraction * spark.storage.safetyFraction專用于存儲內(nèi)存總量,默認(rèn)情況下為0.6和0.9。
512 MB * 0.6 * 0.9 ~ 265.4 MB
因此請注意,并非所有驅(qū)動程序內(nèi)存都可用于RDD存儲。
但是,當(dāng)您開始在群集上運(yùn)行此spark.executor.memory設(shè)置時,該設(shè)置將在計算專用于Spark的內(nèi)存緩存的數(shù)量時接管。

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個贊
Grega提交的答案幫助我解決了我的問題。我正在從Docker容器內(nèi)的python腳本本地運(yùn)行Spark。最初,在Spark中處理某些數(shù)據(jù)時,我遇到了Java內(nèi)存不足錯誤。但是,我可以通過在腳本中添加以下行來分配更多的內(nèi)存:
conf=SparkConf()
conf.set("spark.driver.memory", "4g")
這是我用來啟動Spark的python腳本的完整示例:
import os
import sys
import glob
spark_home = '<DIRECTORY WHERE SPARK FILES EXIST>/spark-2.0.0-bin-hadoop2.7/'
driver_home = '<DIRECTORY WHERE DRIVERS EXIST>'
if 'SPARK_HOME' not in os.environ:
os.environ['SPARK_HOME'] = spark_home
SPARK_HOME = os.environ['SPARK_HOME']
sys.path.insert(0,os.path.join(SPARK_HOME,"python"))
for lib in glob.glob(os.path.join(SPARK_HOME, "python", "lib", "*.zip")):
sys.path.insert(0,lib);
from pyspark import SparkContext
from pyspark import SparkConf
from pyspark.sql import SQLContext
conf=SparkConf()
conf.set("spark.executor.memory", "4g")
conf.set("spark.driver.memory", "4g")
conf.set("spark.cores.max", "2")
conf.set("spark.driver.extraClassPath",
driver_home+'/jdbc/postgresql-9.4-1201-jdbc41.jar:'\
+driver_home+'/jdbc/clickhouse-jdbc-0.1.52.jar:'\
+driver_home+'/mongo/mongo-spark-connector_2.11-2.2.3.jar:'\
+driver_home+'/mongo/mongo-java-driver-3.8.0.jar')
sc = SparkContext.getOrCreate(conf)
spark = SQLContext(sc)
- 3 回答
- 0 關(guān)注
- 938 瀏覽
添加回答
舉報