当前位置: 首页 > news >正文

spark重试次数讲解

在Apache Spark中,存在几种不同级别的重试机制,以应对不同的失败情况。下面分别介绍这些重试机制以及如何配置它们:

1. Task级别的重试

这是最基本的重试机制,用于处理单个task的失败。每个task在执行过程中如果失败了,Spark会自动重新调度并重试该task。

配置参数:
  • spark.task.maxFailures: 设置单个task的最大失败次数。默认值通常为4。
如何设置:
  • 通过Spark配置文件(spark-defaults.conf):
     properties 

    深色版本

    1spark.task.maxFailures 3
  • 通过代码设置(Scala/Java):
     scala 

    深色版本

    1val conf = new SparkConf()
    2  .setAppName("My App")
    3  .setMaster("local")
    4  .set("spark.task.maxFailures", "3")
  • 通过命令行参数设置(使用spark-submit):
     bash 

    深色版本

    1bin/spark-submit --class org.apache.spark.examples.SparkPi \
    2  --conf spark.task.maxFailures=3 \
    3  examples/jars/spark-examples_*.jar

2. Application级别的重试

这种重试机制发生在YARN集群中,用于处理ApplicationMaster (AM) 的失败。如果AM失败,YARN会尝试重新启动AM,直到达到最大重试次数。

配置参数:
  • spark.yarn.maxAppAttempts: 设置Spark应用的最大尝试次数。默认值为2。
如何设置:
  • 通过Spark配置文件(spark-defaults.conf):
     properties 

    深色版本

    1spark.yarn.maxAppAttempts 3
  • 通过代码设置(Scala/Java):
     scala 

    深色版本

    1val conf = new SparkConf()
    2  .setAppName("My App")
    3  .setMaster("yarn")
    4  .set("spark.yarn.maxAppAttempts", "3")
  • 通过命令行参数设置(使用spark-submit):
     bash 

    深色版本

    1bin/spark-submit --class org.apache.spark.examples.SparkPi \
    2  --master yarn \
    3  --conf spark.yarn.maxAppAttempts=3 \
    4  examples/jars/spark-examples_*.jar

3. Job级别的重试

对于Job级别的重试,Spark本身并不直接提供这样的配置选项。但是,可以通过一些间接的方式来实现Job级别的重试,例如在驱动程序端编写重试逻辑。

实现方式:
  • 使用外部库如scala.util.Tryscala.concurrent.Future或者scala.concurrent.Await来实现重试逻辑。
  • 编写自己的重试逻辑,捕获异常并根据需要重试。

总结

  • Task级别的重试 是最基础的重试机制,用于处理单个task的失败。
  • Application级别的重试 是YARN集群特有的,用于处理ApplicationMaster的失败。
  • Job级别的重试 通常需要自己编写逻辑来实现。


http://www.mrgr.cn/news/8051.html

相关文章:

  • F - Dist Max 2
  • css高级
  • WIFI 模组8286驱动
  • Ubuntu24.04安装MYSQL8.0
  • 一、插件开发入门【Qt环境-mingw6.5.3-qmake版】-封装dll调用
  • 老师怎样分班更便捷?
  • 排查Maven问题的步骤
  • 致远OA OCR票据识别组件
  • Vue路由—进阶篇
  • [数据集][目标检测]夜间老鼠检测数据集VOC+YOLO格式316张1类别+视频文件1个
  • 牛客,笔试小题
  • 17 深入理解 C 语言 main 函数:返回值意义、命令行参数接收、跨环境差异及CMD乱码解决
  • QEMU运行ARM Linux内核
  • Ubuntu22.04下安装LDAP
  • 【计算机组成原理】三、存储系统:1.存储器的分类、层次化结构、性能指标、基本组成(半导体、存储芯片基本原理)
  • Flutter【02】mobx原理
  • dbeaver数据库工具配置连接openGauss5.0
  • centos7安装Kafka单节点环境部署一-ZooKeeper安装与配置
  • matlab 计算矩阵元素的标准差
  • CSS文字方向控制属性text-orientation