3

在尝试安排作业时,我们需要来自 Azkaban 的作业名称。是否有任何内置属性?我们从 获取流名称${azkaban.job.flowid}

例如:我的工作文件是:

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

2 回答 2

0

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.pathazkaban.job.metadata.file推断作业名称

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

于 2017-04-08T22:13:45.447 回答
0

找到了答案:

Azkaban 作业使用以下环境变量运行:

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

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

import os

job_name = os.environ["JOB_NAME"]
于 2017-04-14T20:39:40.937 回答