火花作业因org.apache.spark.shuffle.MetadataFetchFailedException失败:缺少随机播放0的输出位置

时间:2018-10-08 08:58:22

标签: scala apache-spark-sql

我正在使用两个配置单元表(一个阶段包含6.16亿个数据,另一个表日志记录为30亿个数据)在spark中执行scd type2。随机播放0的输出位置。

在Spark UI上进行搜索时,我得到了以下更多详细信息: ExecutorLostFailure(执行程序20退出,原因是正在运行的任务之一)原因:容器因超出内存限制而被YARN杀死。已使用9.2 GB的9 GB物理内存。考虑提高spark.yarn.executor.memoryOverhead。

Stg数据分区为241,日记数据分区为2047。 我正在对stg和journal数据进行完全外部联接,然后根据键列将数据框重新分区为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.

谢谢。

0 个答案:

没有答案