Я работал над автономным искровым кластером, который имеет 760 ГБ общей памяти и 200 ядер из 25 рабочих узлов, я провожу эксперименты на кластере с использованием PySpark (python API) с помощью ноутбука Jupyter, ноутбук Jupyter настроен какавтономно и отправляет код в кластер Spark с пользовательским контекстом. По сути, блокнот Jupyter не запускается поверх контекста pyspark (pyspark-shell). Я испробовал почти все методы объявления контекста искры, например, проверьте следующий код:
from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession
conf = SparkConf()
conf.setAppName("------Name-----")
conf.setMaster('spark:<ip>')
conf.set('spark.driver.cores','4')
conf.set('spark.driver.memory','18g')
conf.set('spark.driver.maxResultSize','16g')
conf.set('spark.executor.cores','1')
conf.set('spark.executor.memory','4g')
conf.set('spark.executor.instances','150')
conf.set('spark.default.parallelism','150')
sc = SparkContext(conf=conf)
spark = SparkSession(sc)
На самом начальном этапе искровой кластер выделяет 150 ядер и 600 ГБ памяти для всех этих 150 отдельных исполнителей. Но когда моя работа работает, Spark Cluster автоматически уменьшает количество ядер и памяти, в результате чего мои работы требуют времени.
Spark master UI - порт 8080
Какие-нибудь экспертные идеи, чтобы решить это? на самом деле я хочу использовать все эти ресурсы для более быстрого вычисления