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