INFO-Azkaban环境变量
更新时间: 2024-03-11 02:52:53
阅读 2517
Azkaban环境变量
功能说明
适用模块
离线开发
具体说明
Azkaban环境变量
使用示例
默认加载环境变量
Azkaban 相关
// 获取当前运行的实例 id
String execId = System.getProperty("azkaban.execid");
// 获取 flow id
String flowId = System.getProperty("azkaban.flowid");
// 获取 job id
String jobId = System.getProperty("azkaban.jobid");
Hadoop 相关
String hadoopHome = System.getenv("HADOOP_HOME");
String hadoopConfDir = System.getenv("HADOOP_CONF_DIR");
String hiveHome = System.getenv("HIVE_HOME");
ClassPath 加载顺序
Azkaban 会默认加载一些 class,然后再加载用户的 classPath (可以通过 classPath 属性来设置,以逗号分隔),如果用户没有填写 classPath 的话,则会加载 workingDir 目录下所有以 .jar 结尾的文件到 classPath 中
如何获取任务执行的工作根目录
前提假设
假设您上传的 Zip 目录的层次结构如下:
- root 目录
- A.job 文件
- job 目录
- B.job 文件
获取逻辑
Azkaban 并不直接将任务执行的根目录(也即 root 目录)置入到任务运行的环境变量中,但却将任务的当前目录设置为任务进程的 working directory(也即:对于 A.job 来说是 root 目录;对于 B.job 来说是 root/job 目录)
可以通过如下手段获取到 working directory:
String workingDir = System.getProperty("user.dir");
基于此,您可以根据你运行的具体任务动态的获取工程的root目录
// 对于 A.job,您的 workingDir 就是工程的 root 目录
String workingDir = System.getProperty("user.dir");
String rootDir = workingDir;
// 对于 B.job,您的 workingDir 父目录才是工程的 root 目录
String workingDir = System.getProperty("user.dir");
String rootDir = new File(workingDir).getParentFile().getAbsolutePath();
高级用法
Azkaban 将用户的 Job 所需要的信息都保存在一个 properties 文件,可以通过读取该文件来获取对应的信息
// 获取 job properties
String jobPropertiesFilePath = System.getenv("JOB_PROP_FILE");
Properties properties = new Properties();
properties.load(new FileInputStream(jobPropertiesFilePath))
获取任务基本信息
String projectId = properties.getProperty("azkaban.flow.projectid");
String flowId = properties.getProperty("azkaban.flow.flowid");
String jobId = properties.getProperty("azkaban.job.id");
获取任务执行目录
string currentDir = properties.getProperty("working.dir");
String rootDir = properties.getProperty("base.working.dir");
环境变量的排除 ``` Azkaban 以用户配置的属性为主,因此您可以在任务运行时,通过设置更多参数,来设置 Azkaban 的环境变量,例如您想添加一个环境变量到您的任务中,那么可以通过设置 env.var.A -> value_A 的方式来进行,如果想排除的话,可以 env.var.A -> 的方式,建议不要排除 Azkaban 本身的环境变量,否则可能会影响到任务的正常运行。
作者:qianzhaoyuan
文档反馈
以上内容对您是否有帮助?