spark重试次数讲解

embedded/2024/9/23 14:33:23/

在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.ppmy.cn/embedded/100493.html

相关文章

使用一致性哈希解决哈希分片负载均衡的扩展性问题

声明:本文的图全部源于:小林coding 上来咱先说,一致性哈希是应对分布式系统的算法 假设有一个负载均衡问题,也就是大批流量来请求,那怎么分配这些流量? 随机?还是挨个轮询? 这都…

台球助教在线预约小程序源码开发:打造便捷高效的台球学习新体验

在当今快节奏的生活中,台球作为一项集休闲、竞技与社交于一体的运动,受到了越来越多人的喜爱。然而,对于初学者而言,想要快速提升技能,往往需要专业的指导和陪练。传统的台球教练预约方式往往存在信息不对称、预约流程…

《通义千问AI落地—上》:后端接口

一、前言 本文源于微博客且已获授权,请尊重版权. 通义,由通义千问更名而来,是阿里云推出的语言模型 ,于2023年9月13日正式向公众开放。 属于(AI Generated Content,AIGC)领域, 是一个MaaS(模型即服务&#…

无需多部备用机,云手机方便又便宜!

云手机,是云计算技术的又一创新应用,它通过在云服务器上虚拟出带有原生安卓操作系统的手机实例,为用户提供了一种全新的手机使用体验。无需携带多部手机,只需通过云手机,便可轻松实现多账号管理、应用运行及数据存储等…

SQL Server 2017上服务端设置强制加密启用SSL

在数据库服务端设置,强制所有客户端使用 SSL,设置完后,后续客户端所有连接,都将以密文传送,不论客户端是否指定安全连接(即EncryptTrue/False) 一、服务端强制加密使用 SSL 1.在数据库服务器上…

Base64编码的原理与应用场景

Base64编码的原理与应用场景 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! Base64是一种编码方法,可以将二进制数据转换成64个可打印的ASCII字符,常用于在文本格式中表…

WRF-LES与PALM微尺度气象大涡模拟实践技术应用

针对微尺度气象的复杂性,大涡模拟(LES)提供了一种无可比拟的解决方案。微尺度气象学涉及对小范围内的大气过程进行精确模拟,这些过程往往与天气模式、地形影响和人为因素如城市布局紧密相关。在这种规模上,传统的气象模…

MySQL数据存储引擎:InnoDB与MyISAM的优缺点及常见业务场景

引言: MySQL作为广泛使用的开源关系型数据库管理系统,支持多种数据存储引擎以满足不同场景下的需求。本文将深入探讨MySQL中的InnoDB和MyISAM两种主流存储引擎的优缺点、常见使用业务场景,并详细讲解它们的锁机制和表压缩原理。 1. InnoDB存…