第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何設(shè)置Apache Spark執(zhí)行器內(nèi)存

如何設(shè)置Apache Spark執(zhí)行器內(nèi)存

守候你守候我 2020-02-04 16:10:45
如何增加可用于Apache Spark執(zhí)行器節(jié)點(diǎn)的內(nèi)存?我有一個2 GB的文件,適合加載到Apache Spark。我目前在1臺機(jī)器上運(yùn)行apache spark,因此驅(qū)動程序和執(zhí)行程序在同一臺機(jī)器上。本機(jī)具有8 GB的內(nèi)存。設(shè)置要緩存在內(nèi)存中的文件后,當(dāng)我嘗試計算文件的行數(shù)時,出現(xiàn)以下錯誤:2014-10-25 22:25:12 WARN  CacheManager:71 - Not enough space to cache partition rdd_1_1 in memory! Free memory is 278099801 bytes.我看了看文檔,這里并設(shè)置spark.executor.memory到4g在$SPARK_HOME/conf/spark-defaults.conf用戶界面顯示此變量是在Spark環(huán)境中設(shè)置的。你可以在這里找到截圖但是,當(dāng)我轉(zhuǎn)到“ 執(zhí)行器”選項(xiàng)卡時,單個執(zhí)行器的內(nèi)存限制仍然設(shè)置為265.4 MB。我也仍然遇到相同的錯誤。我嘗試了這里提到的各種方法,但是仍然出現(xiàn)錯誤,并且不清楚應(yīng)該在哪里更改設(shè)置。我正在從spark-shell交互式運(yùn)行我的代碼
查看完整描述

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ù)量時接管。


查看完整回答
反對 回復(fù) 2020-02-04
?
忽然笑

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)


查看完整回答
反對 回復(fù) 2020-02-04
  • 3 回答
  • 0 關(guān)注
  • 938 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號