Я выполняю scd type2 in spark, используя две таблицы кустов (один этап с 616 миллионами данных и другой журнал таблиц с 3 миллиардами данных). Во время выполнения задания происходит сбой с ошибкой org.apache.spark.shuffle.MetadataFetchFailedException: отсутствуетрасположение вывода для случайного числа 0.
При поиске в пользовательском интерфейсе spark я получил более подробную информацию: ExecutorLostFailure (выход executor 20 вызван одной из запущенных задач) Причина: Контейнер уничтожен YARN за превышение пределов памяти.9,2 ГБ из 9 ГБ физической памяти.Подумайте об увеличении spark.yarn.executor.memoryOverhead.
Разделов данных Stg - 241, а разделов данных журнала - 2047. Я выполняю полное внешнее объединение данных stg и журнала, а затем перераспределяю кадр данных на 2047 разделов на основеключевой столбец.Затем кэшируем этот фрейм данных на уровень памяти и диска.
Ниже приведена команда spark-submit:
export DEPLOY_MODE=cluster
export DRIVER_MEMORY=8G
export EXECUTOR_MEMORY=8G
export NUM_EXECUTORS=20
export RESULT_SIZE=6G
export EXECUTOR_CORES=5
export MAIN_CLASS=pkg.abc
export JAR=/home/spark/abc-0.0.1-SNAPSHOT.jar
export QUEUE=abs
export batch_job_id=1
export incremental_load_dt=2018-09-18
/spark2/bin/spark-submit --class ${MAIN_CLASS}
--queue ${QUEUE}
--conf spark.sql.inMemoryColumnarStorage.compress=true
--conf spark.akka.frameSize=100
--conf spark.max.fetch.failure.per.stage=5
--conf spark.sql.qubole.split.computation=true
--conf spark.yarn.executor.memoryOverhead=1G
--conf spark.memory.fraction=0.8
--conf spark.memory.storageFraction=0.0
--conf spark.shuffle.io.maxRetries=5
--conf spark.network.timeout=800s
--conf spark.reducer.maxReqsInFlight=1
--conf spark.shuffle.io.retryWait=300s
--conf spark.shuffle.io.maxRetries=10
--jars /home/abc-0.2.2.jar
--deploy-mode ${DEPLOY_MODE}
--files ${HIVE_SITE_XML_PATH}
--master yarn
--driver-memory ${DRIVER_MEMORY}
--executor-cores ${EXECUTOR_CORES}
--executor-memory ${EXECUTOR_MEMORY}
--num-executors ${NUM_EXECUTORS} ${JAR} ${batch_job_id} ${incremental_load_dt}
Any help will be appreciated.
Спасибо.