原因:远程rpc客户端已解除关联可能是由于容器超过阈值或网络问题

yhxst69z  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(414)

我们使用spark 2.4处理大约445 gb的数据。我们的集群有150个工人,每个工人有7个cpu和127gb。spark以独立模式部署。下面是我们的配置:每个worker有一个executor,分配有7个cpu和120gb。rdd中有2000个分区。
我看到有些时候由于遗嘱执行人的损失,工作失败了。以下是错误:
驱动程序日志:

ExecutorLostFailure (executor 82 exited caused by one of the running tasks) Reason: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages.\nDriver

执行者日志:

2020-07-03 01:53:10 INFO  Worker:54 - Executor app-20200702155258-0011/13 finished with state EXITED message Command exited with code 137 exitStatus 137
 [ERROR] 2020-06-29 17:34:42,074 SIGTERM handler org.apache.spark.executor.CoarseGrainedExecutorBackend - {} - RECEIVED SIGNAL TERM
 - Started 161 remote fetches in 3 ms
 [ERROR] 2020-06-29 17:34:42,079 SIGTERM handler org.apache.spark.executor.CoarseGrainedExecutorBackend - {} - RECEIVED SIGNAL TERM
687.0 in stage 87.0 (TID 45809). 66993 bytes result sent to driver

我还注意到有一个worker框由于oom错误而关闭,但我在驱动程序或worker日志中没有看到任何oom错误。
早些时候,我曾尝试在rdd中用3个cpu、每个执行器60 gb和2000个分区为每个工作线程运行2个执行器,但也遇到了相同的执行器丢失问题。
我认为我们有足够的内存分配给执行器,但执行器也会丢失代码137,这可能是由于内存问题,但在驱动程序或执行器日志中没有oom异常。
我试着将“spark.memory.fraction”更新为“0.8”,我发现这个工作的成功率更高,但也有几次由于上述错误而失败。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题