【问题标题】:How Apache Zeppelin computes Spark job progress bar?Apache Zeppelin 如何计算 Spark 作业进度条?
【发布时间】:2019-11-01 07:24:36
【问题描述】:

从 Apache Zeppelin 笔记本界面启动 spark 作业时,它会显示作业执行的进度条。但这一进展究竟意味着什么?有时它会缩小或扩大。是当前阶段的进步还是整个工作?

【问题讨论】:

    标签: apache-spark apache-zeppelin


    【解决方案1】:

    在网页界面中,进度条显示getProgress函数返回的值(并非每个interpeters都实现,例如python)。

    这个函数返回一个百分比。

    使用 Spark 解释器时,该值似乎是已完成任务的百分比(从 JobProgressUtil 调用以下 progress 函数):

    def progress(sc: SparkContext, jobGroup : String):Int = {
        val jobIds = sc.statusTracker.getJobIdsForGroup(jobGroup)
        val jobs = jobIds.flatMap { id => sc.statusTracker.getJobInfo(id) }
        val stages = jobs.flatMap { job =>
          job.stageIds().flatMap(sc.statusTracker.getStageInfo)
        }
    
        val taskCount = stages.map(_.numTasks).sum
        val completedTaskCount = stages.map(_.numCompletedTasks).sum
        if (taskCount == 0) {
          0
        } else {
          (100 * completedTaskCount.toDouble / taskCount).toInt
        }
    }
    

    同时,我在 Zeppelin 文档中找不到它。

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 1970-01-01
      • 2018-10-29
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 2019-12-29
      相关资源
      最近更新 更多