Я настроил автономный кластер (узел 32 ГБ и 32 ядра) с 2 рабочими по 16 ядер и 10 ГБ памяти каждый.Размер файла JSON составляет всего 6 ГБ.Я пытался настроить различные конфигурации, в том числе увеличение памяти молодого поколения.Есть ли что-то еще, что я пропускаю?
PS: Это не работает даже в spark-shell.
Конфигурации в файле env.
- SPARK_EXECUTOR_MEMORY = 8g
- SPARK_WORKER_CORES = 16
- SPARK_WORKER_INSTANCES = 2
- SPARK_WORKER_MEMORY = 101 * * * * 105 * 105 *пробовал следующие параметры конфигурации при отправке задания:
./spark-submit --driver-memory 4g \
--supervise --verbose \
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
--conf spark.memory.fraction=0.2 \
--conf spark.memory.storageFraction=0.5 \
--conf spark.network.timeout=10000000 \
--conf spark.executor.heartbeatInterval=10000000
val dataFrame = spark.read.option("multiline", "true")
.schema(schema)
.json(jsonFilePath)
.persist(StorageLevel.MEMORY_ONLY_SER_2)
dataFrame.createOrReplaceTempView("node")
val df = spark.sqlContext.sql("select col1, col2.x, col3 from node")
.persist(StorageLevel.MEMORY_ONLY_SER_2)
val newrdd = df.repartition(64)
.rdd.mapPartitions(partition => {
val newPartition = partition.map(x => {
//somefunction()
}).toList
newPartition.iterator
}).persist(StorageLevel.MEMORY_ONLY_SER_2)
Ошибка:
Lost task 0.0 in stage 0.0 (TID 0, 131.123.39.101, executor 0): java.lang.OutOfMemoryError: GC overhead limit exceeded
Заранее спасибо