当前位置: 首页 > 知识库问答 >
问题:

Spark ExecutorLostFailure-原因:远程RPC客户端断开关联。可能是由于容器超过阈值或网络问题

慕震博
2023-03-14

我们正在使用Spark2.4处理大约445 GB的数据。我们的集群有150个工作人员,每个工作人员有7个CPU和127 GB。Spark是在独立模式下部署的。下面是我们的配置:每个工作者有一个执行器,分配了7个CPU和120 GB。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

我认为我们有足够的内存分配给执行器,但也有执行器丢失代码137,这是由于内存问题,但没有OOM异常在驱动程序或执行器日志。

我尝试将“spark.memory.fraction”更新为“0.8”,我看到工作的成功率更高,但也有一些错误失败了。

共有1个答案

赏航
2023-03-14

这可能不是一个通用的解决方案,但是我通过将spark.executor.memory减少到设置值的一半来解决这个问题,并且它起到了作用。我猜可能是因为spark以外的应用程序也在我的集群机器上运行并消耗内存。将所有内存分配给spark应用程序将导致机器速度减慢,从而失去通信。

 类似资料:
  • 我已经编写了java客户端服务器套接字连接代码。因为服务器接受客户机连接,然后服务器使用PrintStream发送数据,客户机在readline()中读取数据。在此之后,客户端将在readline中等待服务器。如果存在网络断开,客户端将在readline中保持等待,并且从不从readline退出。是否有一种方法从客户端本身检测断开?或者我是否必须编写新的心跳线程来检查网络断开?

  • 我正在尝试连接到需要“通过TLS显式FTP”的FTP并上载文件。 我正在尝试从我的本地机器上实现它,它使用Java版本8和commons net FTP版本3.6 下面是我使用的代码 下面是我从Java CommandListener获得的日志 下面是我尝试使用FileZilla连接时的日志。连接很好,我可以传送文件。 但是,当我尝试使用Java时,它不会传输数据 请大家帮忙好吗? 亲切的问候乔恩

  • 问题内容: 我是一个优秀的程序员,但是我的网络经验为零。 基本上,我想进入客户端- 服务器网络。例如,我想尝试运行一个服务器进程,该进程允许客户端通过Internet连接并将ping发送到所有其他连接的客户端。然后,也许我将尝试开发一个简单的聊天客户端,或一些简单的多人游戏,然后从那里开始。 我非常了解可能有用的语言:Java,C ++,C。 我该如何开始?我想提前学习最佳实践,因此您可以推荐的良

  • 本章主题 ♦ 引言 ♦ 文件传输 ♦ 文件传输协议(FTP) ♦ 网络新闻、Usenet和新闻组 ♦ 网络新闻传输协议(NNTP) ♦ 电子邮件 ♦ 简单邮件传输协议(SMTP) ♦ 邮局协议3(POP3) ♦ 相关模块 在之前的章节中,我们已经大致了解了那些使用套接字的低级别的网络通讯协议。这种网络互连是当今互联网中大部分客户端/服务器协议的核心。这些网络协议包括文件传输(FTP,SCP等)、阅

  • 我对kryonet客户端断开有问题。有谁能帮我弄清楚这个问题的根源是什么吗? 利用kryonet库,客户端需要发送和接收KeepAlive数据包才能保持连接。客户端线程将自动处理此操作。但是如果我的客户端做了一个繁重的工作(注意:在另一个线程中),它似乎会阻止客户端线程做这件事。 问题出现在读取大的数据库表时,从表中选择一些列(每个Gega的大小)需要花费时间 不同的超时阈值 kryo 2.23和