Невозможно установить память искрового драйвера - PullRequest
0 голосов
/ 26 февраля 2020

Я создаю сеанс Spark (работает на Apache Spark версии 2.4.3) из записной книжки Jupiter следующим образом

spark_session  = SparkSession.builder
                      .master("yarn-client")
                      .enableHiveSupport()
                      .getOrCreate()

spark_session.conf.set("spark.executor.memory", '8g')
spark_session.conf.set('spark.executor.cores', '3')
spark_session.conf.set('spark.cores.max', '3')
spark_session.conf.set("spark.driver.memory",'8g')
sc = spark_session.sparkContext

В мастере приложения видно, что все параметры установлены правильно ожидаем, что искра. spark.driver.memory независимо от того, что я установил для него, используя только 1 ГБ.

Я проверил spark-default.conf, но у меня нет таких параметров, как для spark.driver.memory. Чтобы проверить, работает ли он с помощью построителя сеансов / Jupiter, я запустил приложение, используя spark-submit из командной строки, и, к моему удивлению, он выбирает память драйвера, которую я передаю.

Может кто-нибудь, пожалуйста, пролил немного света на это? Что может быть причиной того, что он не выбирает только память spark.driver.memory из jupyter

1 Ответ

2 голосов
/ 26 февраля 2020

Блокнот Jupyter запустит pyspark в режиме yarn-client, память драйвера и некоторые настройки нельзя установить с помощью свойства conf, так как драйвер JVM уже запущен. Вы должны установить его в командной строке.

Итак, на ваш вопрос - при запуске spark в режиме клиента настройка свойства через "conf.set" не будет работать, так как драйвер JVM уже запущен в этот момент с конфигурацией по умолчанию. Вот почему, когда вы передаете свойство из командной строки, оно выбирает их.

простой способ запуска pyspark:

pyspark --driver-memory 2g --executor-memory 2g

Обновление:

Чтобы запустить jupyter с пользовательскими аргументами pyspark, создайте собственное ядро, подробнее о начале работы с ядром jupyter : http://cleverowl.uk/2016/10/15/installing-jupyter-with-the-pyspark-and-r-kernels-for-spark-development/

и когда вы определяете "ядро. json", добавьте --driver-memory 2g --executor-memory 2g к опции PYSPARK_SUBMIT_ARGS.

...