数据岗位面试题更新 2026-08-05

请描述在 Azkaban 中创建工作流的具体方法和步骤,包括如何编写相关定义文件及常见的配置要点。

数据系统设计技术原理Azkaban

考察说明

考查对 Azkaban 工作流定义机制的理解。

回答思路

  1. 【回答框架 1】Azkaban 使用项目(project)来组织工作流,每个项目对应一个 zip 包,包内包含工作流定义文件(.job)和可选资源。
  2. 【回答框架 2】工作流通过 .job 文件定义,每个文件描述一个作业,包含 type、command、dependencies 等属性。type 指定作业类型,command 指定执行命令,dependencies 声明依赖关系,多个作业的依赖关系构成有向无环图(DAG)。
  3. 【回答框架 3】可通过 properties 文件设置全局配置,也可以用 Flow 1.0 或 Flow 2.0 语法定义更复杂的流程结构,包括条件执行和嵌入式子流程。
  4. 【回答框架 4】将编写好的 .job 文件和资源打包为 zip,上传到 Azkaban Web 服务器,创建项目并调度执行。
  5. 【回答框架 5】常见配置包括执行用户、内存参数、重试次数、告警设置等,这些可在作业属性或项目级别配置。
  6. 【关键点 1】工作流由 .job 文件定义,通过 dependencies 属性建立依赖关系形成 DAG。
  7. 【关键点 2】type 属性决定作业执行方式,如 command、hadoopJava 等。
  8. 【关键点 3】工作流定义文件需打包为 zip 上传至 Azkaban 项目。
  9. 【关键点 4】可使用 Flow 2.0 支持更复杂的流程描述,如节点级条件。
  10. 【关键点 5】调度和执行通过 Azkaban Web 界面或者 API 触发。
  11. 【易错点 1】忽略依赖关系的正确设置可能导致任务并行执行或顺序错误。
  12. 【易错点 2】工作流定义文件编码或格式错误会导致上传或执行失败。
  13. 【易错点 3】未配置足够的资源或错误设置执行用户可能引发执行异常。