Sparkのロストエグゼキュータエラーの問題

Sparkのロストエグゼキュータエラーの問題

質問1

19/06/17 09:50:52 WARN cluster.YarnSchedulerBackend$YarnSchedulerEndpoint: Requesting driver to remove executor 2 for reason Container marked as failed: container_1560518528256_0014_01_000003 on host: hadoop-master. Exit status: 143. Diagnostics: Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
Killed by external signal
19/06/17 09:50:52 ERROR cluster.YarnScheduler: Lost executor 2 on hadoop-master: Container marked as failed: container_1560518528256_0014_01_000003 on host: hadoop-master. Exit status: 143. Diagnostics: Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
Killed by external signal
19/06/17 09:50:52 WARN scheduler.TaskSetManager: Lost task 22.0 in stage 0.0 (TID 17, hadoop-master, executor 2): ExecutorLostFailure (executor 2 exited caused by one of the running tasks) Reason: Container marked as failed: container_1560518528256_0014_01_000003 on host: hadoop-master. Exit status: 143. Diagnostics: Container killed on request. Exit code is 143
 Container exited with a non-zero exit code 143
 Killed by external signal
 
 19/06/17 09:50:52 WARN scheduler.TaskSetManager: Lost task 21.0 in stage 0.0 (TID 16, hadoop-master, executor 2): ExecutorLostFailure (executor 2 exited caused by one of the running tasks) Reason: Container marked as failed: container_1560518528256_0014_01_000003 on host: hadoop-master. Exit status: 143. Diagnostics: Container killed on request. Exit code is 143
 Container exited with a non-zero exit code 143
 Killed by external signal

Spark on Yarnが実行されている場合、Yarnによってスケジュールされたエグゼキュータリソースが十分でないため、エグゼキュータは強制終了され、エグゼキュータは失われます。
executor-memoryまたはexecutor-coresの設定のほとんどは不合理であり、Yarnのスケジュール可能なリソース(メモリまたはCPUコア)の上限を超えています。

たとえば、3台のサーバー、32コア、64GBのメモリ

yarn.scheduler.maximum-allocation-mb = 68G

設定:

num-executors = 30(一个节点上运行10个executor)
executor-memory = 6G (每个executor分配6G内存)
executor-cores = 5 (每个executor分配5个核心)

各ノードのエグゼキュータが占有するメモリ:10 * 6.5(512ヒープメモリの場合)= 65Gが上限を超えない
各ノードのエグゼキュータが占有するコア:10 * 5 = 50が上限を超えている、エラー

問題を解決するには、executor-cores = 3を変更します

メモリ設定の問題は上記と同じです

質問2

19/10/25 10:25:14エラーcluster.YarnScheduler:cdh-masterのエグゼキュータ9が失われました:メモリ制限を超えたためにYARNによってコンテナが強制終了されました。9.5GBの9GBの物理メモリが使用されましたYARN-4714のため、spark.yarn.executor.memoryOverheadをブーストするか、yarn.nodemanager.vmem-check-enabledを無効にすることを検討してください。
19/10/25 10:25:14警告scheduler.TaskSetManager:ステージ7.0でタスク0.1が失われました(TID 690、cdh-master、executor 9):ExecutorLostFailure(実行中のタスクの1つが原因でexecutor 9が終了しました)理由:コンテナーが強制終了されましたメモリ制限を超えたYARNによる。9.5GBの9GBの物理メモリが使用されました。YARN-4714のため、spark.yarn.executor.memoryOverheadをブーストするか、yarn.nodemanager.vmem-check-enabledを無効にすることを検討してください。

問題は明らかです。物理メモリが十分ではありません。

sudo -uhdfs spark-submit \
--class com.sm.analysis.AnalysisRetained \
--master yarn \
--deploy-mode client \
--driver-memory 3G \
--driver-cores 3 \
--num-executors 3 \
--executor-memory 8g \
--executor-cores 5 \
--jars /usr/java/jdk1.8.0_211/lib/mysql-connector-java-5.1.47.jar \
--conf spark.default.parallelism=30 \
/data4/liujinhe/tmp/original-analysis-1.0-SNAPSHOT.jar \

元々、エグゼキュータは8Gに加えて、オフヒープメモリ(9 x 1024m x 0.07 = 645m、512mずつ増加するため、1024mに丸められます)1G、9Gのメモリでは不十分なので、メモリを10Gに増やします。

おすすめ

転載: blog.csdn.net/qq_32727095/article/details/113740962