如何从Spark Streaming应用程序获取作业ID

时间:2018-11-07 11:10:42

标签: apache-spark apache-spark-sql spark-streaming

我有一个火花监听器,如下所示;

public class MySparkListener extends SparkListener {

  @Override
  public void onJobStart(SparkListenerJobStart jobStart) {
    IdFederationUtil.debugLogger.info("JobStart time->"+jobStart.time()+"  Id->"+jobStart.jobId()+"  stageInfos->"+jobStart.stageInfos());
  }

  @Override
  public void onJobEnd(SparkListenerJobEnd jobEnd) {
    IdFederationUtil.debugLogger.info("JobEnd time->"+jobEnd.time()+"  Id->"+jobEnd.jobId());
  }

}

在日志中,我看到类似下面的内容;

JobStart time->1541588073798  Id->0  stageInfos->WrappedArray(org.apache.spark.scheduler.StageInfo@7e559e96, org.apache.spark.scheduler.StageInfo@190c2cf7, org.apache.spark.scheduler.StageInfo@7c8b18d6)
JobEnd time->1541588081879  Id->0

在每个任务中我如何获得这份工作ID?印出的那个,即Id-> 0

注意:我不在寻找应用程序ID。

用例是将连接信息存储在cache(map)中,其中key是jobId,value是连接。作业结束时关闭连接。

提前感谢您的帮助。

致谢, 罗宾·库塔亚(Robin Kuttaiah)。

0 个答案:

没有答案