在尝试安排作业时,我们需要来自 Azkaban 的作业名称。是否有任何内置属性?我们从 获取流名称${azkaban.job.flowid}
。
例如:我的工作文件是:
type=command
command=python xyz.py ${azkaban.job.attempt} ${azkaban.job.flowid}
Azkaban 作业运行时属性存储在 env 变量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.path和azkaban.job.metadata.file推断作业名称
azkaban.flow.nested.path -> 如果作业是嵌入式 DAG 的一部分,请使用此选项。
找到了答案:
Azkaban 作业使用以下环境变量运行:
{ JOB_OUTPUT_PROP_FILE='xxx',
JOB_PROP_FILE='xxx',
JOB_NAME='xxx' }
可以通过以下 Python 片段轻松获取作业名称:
import os
job_name = os.environ["JOB_NAME"]