如何从 azkaban 3.0 中的作业文件中获取作业名称

How to get job-name from job file in azkaban 3.0

我们在尝试安排工作时需要来自 Azkaban 的工作名称。有内置的 属性 吗?我们正在从 ${azkaban.job.flowid}.

获取流程名称

例如:我的作业文件是:

type=command
command=python xyz.py ${azkaban.job.attempt} ${azkaban.job.flowid}

Azkaban 作业运行时属性存储在环境变量 JOB_PROP_FILE 引用的文件中。在您的 python 程序中阅读此文件并获取所需的属性。

import os
azkaban_job_prop_file = os.environ["JOB_PROP_FILE"]
with open(azkaban_job_prop_file,'r') as f:
        print f.readline()

我们可以从这些属性 azkaban.flow.nested.pathazkaban.job.metadata.file

中推断出作业名称

azkaban.flow.nested.path -> 如果作业是嵌入式 DAG 的一部分,请使用此选项。

找到答案:

阿兹卡班职位 运行 具有以下内容 环境变量:

{ JOB_OUTPUT_PROP_FILE='xxx',
  JOB_PROP_FILE='xxx',
  JOB_NAME='xxx' }

可以通过以下 Python 片段轻松获取作业名称:

import os

job_name = os.environ["JOB_NAME"]