apache-spark - 有没有办法获得在 yarn 上运行的 Spark 作业的尝试次数

标签 apache-spark hadoop-yarn

我想知道是否有一种方法可以以编程方式获取在 yarn 上运行的 Spark 作业的尝试次数。

我已经尝试将 SparkListenerApplicationStart 与此监听器一起使用,并在启动 Spark-submit 时注册它

class Listner extends SparkListener{
  var att = ""
  override def onApplicationStart(applicationStart: SparkListenerApplicationStart): Unit = {
    att = applicationStart.appAttemptId.getOrElse("")
    println(s"--------------------------------------$att------------------------------------------------")
  }

但是att始终为空。

最佳答案

我找到了问题的解决方案:

    val yc = YarnClient.createYarnClient()
    yc.init(spark.sparkContext.hadoopConfiguration)
    yc.start()
    val id = ApplicationId.fromString(spark.sparkContext.applicationId)
    val attempts = yc.getApplicationAttempts(id)

关于apache-spark - 有没有办法获得在 yarn 上运行的 Spark 作业的尝试次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70497215/

相关文章:

hadoop - 连接CDH 5.4中的 yarn 簇上的 Spark

java - 在 master :8088 中找到 hadoop 2.7.2 中每个任务的容器

amazon-web-services - EMR 命令运行程序如何提交作业

scala - Spark 的 RDD.map() 不会执行,除非 RDD 内的项被访问

scala - reduceByKey 以 case 类实例为键

java - 来自 Spark 的集合库作为具有快速 HashMap 的单独项目

hadoop - `yarn top`命令的头信息

scala - 限制 yarn 容器一次仅执行一项任务

hadoop - Spark 的 Yarn 集群优化

scala - Spark配置: SPARK_MEM vs. SPARK_WORKER_MEMORY