Я воспитывался ноутбук IPython для развития Спарк, используя следующую команду:Спарк Python Performance Tuning
ipython notebook --profile=pyspark
И я создал sc
SparkContext используя код Python вроде этого:
import sys
import os
os.environ["YARN_CONF_DIR"] = "/etc/hadoop/conf"
sys.path.append("/opt/cloudera/parcels/CDH/lib/spark/python")
sys.path.append("/opt/cloudera/parcels/CDH/lib/spark/python/lib/py4j-0.8.1-src.zip")
from pyspark import SparkContext, SparkConf
from pyspark.sql import *
sconf = SparkConf()
conf = (SparkConf().setMaster("spark://701.datafireball.com:7077")
.setAppName("sparkapp1")
.set("spark.executor.memory", "6g"))
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
Я хочу чтобы лучше понять spark.executor.memory
, в документе
Количество памяти для использования на каждом исполнительном процессе, в том же формате, что и строки памяти JVM
Означает ли это, что накопленная память всех процессов, работающих на одном узле, не будет превышать эту кепку? Если это так, следует ли установить это число на максимально возможное число?
Вот также список некоторых свойств, есть ли другие параметры, которые я могу настроить по умолчанию, чтобы повысить производительность.
Спасибо!
Просьба уточнить ваш второй-последний абзац. Как вы пришли к вычислениям 0.6, 0.4 и особенно 0.5, взятым python – javadba
@javadba, 0.6 is spark.storage.memoryFraction (по умолчанию, https://spark.apache.org/docs/1.3.0/configuration.html) , 0.4 - (1 - 0.6), а 0.5 для Python - мое ожидание для моего использования (в худшем случае вы можете ожидать использования памяти 0.6 * 2 для Python или даже больше, поэтому 0.5 - это чисто эмпирическое значение для моей среды) , –
Давайте рассмотрим использование numpy и некоторых библиотек обучения компьютера python, которые используют собственный код. Вся эта память исходит от spark.executor.memory - или просто от O/S OUTSIDE от искры? Благодаря! – javadba