Spark常见报错

news/2024/10/23 9:26:11/

一.org.apache.spark.shuffle.FetchFailedException: Connection from /xxx:7337 closed

背景:shuffle过程包括shuffle read和shuffle write两个过程。对于spark on yarn,shuffle write是container写数据到本地磁盘(路径由core-site.xml中hadoop.tmp.dir指定)过程;
shuffle read是container请求external shuffle服务获取数据过程,external shuffle是NodeManager进程中的一个服务,默认端口是7337,或者通过spark.shuffle.service.port指定。
定位过程:拉取任务运行日志,查看container日志;查看对应ip上NodeManager进程运行日志,路径由yarn-env.sh中YARN_LOG_DIR指定
原因:container已经连接上NodeManager上external shufflle服务,原因可能是
(1)external shuffle服务正常,但在规定时间内将数据返回给container,可能是中间数据量大且文件数多,external shuffle服务搜索数据过程久,最终导致containter误认为connection dead,因此抛出xxx:7337 closed了异常
(2)NameNode进程不正常
解决方案:针对原因(1),调大spark.network.timeout值,如1800s,此参数可以在spark-defaults.conf设置,对所有任务都生效;也可以单个任务设置
针对原因(2),参考org.apache.spark.shuffle.FetchFailedException: Failed to connect to /9.4.36.40:7337的解决方案

二.org.apache.spark.shuffle.FetchFailedException: Connection reset by peer

这个问题发生在 Spark 作业在运行过程中,Executor 进程尝试连接外部的 Shuffle Server(例如,启用了外部 Shuffle 的情况下),但是连接操作超时了。这可能会出现以下一些情况:

  1. 资源问题:网络或硬件资源的不足,使得 Executor 进程无法顺利连接 Shuffle Server。
  2. 网络问题:可能是网络连接不稳定或网络延迟较高导致 Executor 进程连接 Shuffle Server 超时。
  3. 我的问题是:集群压力比较大导致shuffle超时

以下是一些可能的解决方案:

  1. 增加网络带宽:如果要启用外部 Shuffle,可以尝试增加网络带宽,以便 Executor 进程能够更快地连接 Shuffle Server。
  2. 调整网络连接:可以尝试连接更稳定的网络,或者优化网络连接的设置,可能会提高连接 Shuffle Server 的成功率。
  3. 调整资源配置:可以尝试调整 Executor 进程的资源分配,例如增加内存或 CPU 数量,以便更好地处理 Shuffle 数据。
  4. 查看日志信息:可以查看 Executor 进程报错日志,了解更多具体信息,以便定位问题并排除故障。

http://www.ppmy.cn/news/70426.html

相关文章

milvus bootcamp FAST API使用简记

0 引言 前面写了几篇记录,都是在记录解决了哪些基本问题。在经过一系列铺垫之后,终于又来到milvus bootcamp这个示例项目面前,继续摸索其如何使用。 1 milvus版本升级 此bootcamp中提供的milvus的docker版本过低,因此我又从其他…

数据结构与算法:编程中的基本功

I. 数据结构与算法的重要性 1.1 数据结构与算法的定义 数据结构,如其名,是用来存储和组织数据的结构。它们可以用于实现高效的数据访问和操作。常见的数据结构包括数组、链表、栈、队列、哈希表、树和图等。 算法,是为解决特定问题而详细规定的一系列操作步骤。它可以用于…

Java进阶-常用API(时间包装类)

第一章 Date类 1.1 Date概述 java.util.Date类 表示特定的瞬间,精确到毫秒。 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数 public Date():从运行程序的此时此刻到…

MapReduce框架原理:7.Join多种应用

Reduce Join工作原理 Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。 Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成…

红魔品牌五周年,长出一个茂盛“电竞生态”

红魔新品来袭。 5月10日,红魔电竞举办宇宙新品发布会,向广大玩家带来了红魔8 Pro变形金刚领袖版以及氘锋系列IOT,银翼电竞显示器、电竞键鼠等各类融合先锋设计元素的硬核电竞装备。 一、红魔多款硬核电竞新品来袭 红魔8 Pro变形金刚领袖版…

前端综合项目-个人博客网页设计

个人博客前端部分设计 文章目录 前端综合项目-个人博客网页设计1. 预计效果2. 公共样式设计2.1 背景设计2.2 导航栏设计2.3 博客列表页和博客详情页的共同内容2.3.1 页面划分css设计2.3.2 左侧card内容2.3.3 右侧article内容 3. 博客列表页4. 博客详情页5. 博客登录页5.1 页面划…

TCP 和 UDP 协议详解

文章目录 1 概述2 TCP 协议2.1 报文格式2.2 三次握手,建立连接2.3 四次挥手,断开连接2.4 窗口机制 3 UDP 协议3.1 传输头格式 4 扩展4.1 常用端口号4.2 TCP 与 UDP 区别 1 概述 #mermaid-svg-aC8G8xwQRSdze7eM {font-family:"trebuchet ms",ve…

【利用AI刷面试题】AI:十道JavaScript面试题巩固一下知识

文章目录 1. 请说明 JS 中的闭包是什么,它有哪些应用场景?2. 请描述一下数组的遍历方式,如何向数组中添加元素?3. 如何利用JS实现一个进度条?4. 请阐述浮点数在 JavaScript 中的存储机制?5. 请简述ES6 模块…