Azkaban 提供了 REST API 接口,请说明其工作机制,并描述通过该 API 提交任务的具体流程或步骤。
考察说明
考查对 Azkaban REST API 的整体理解,包括认证、接口调用、任务提交流程及安全注意事项。
回答思路
- 【回答框架 1】Azkaban REST API 是基于 HTTP 的接口,用于与 Azkaban 服务器交互,执行如创建项目、上传调度文件、执行流等操作。其核心工作流程包括认证和资源操作。
- 【回答框架 2】认证方面,REST API 需要用户先通过登录接口获取会话 ID(session.id)。一般先调用 /?action=login 接口,传入用户名和密码,成功后返回一个 session.id,后续的 API 请求都需要携带该凭证,通常作为请求参数传递。
- 【回答框架 3】提交任务前,需要先创建项目并上传调度文件。创建项目通过调用 /manager?action=createProject 完成,然后通过上传接口(如 /manager?action=upload)上传包含工作流定义的 zip 文件,这些文件通常是 .job 和 .flow 格式。
- 【回答框架 4】上传成功后,可以触发调度执行。通常调用 /executor?action=executeFlow 接口,并指定项目名和流名称,可附带参数。执行后返回执行 ID,可通过该 ID 查询执行状态或取消流。
- 【回答框架 5】此外,API 还支持更丰富的操作,如查询执行日志(/executor?action=fetchExecLog)、查看运行中的流(/executor?action=getRunningFlows)等。使用 REST API 时需注意传输安全,建议使用 HTTPS,并妥善保管 session.id,避免泄露。
- 【关键点 1】通过登录接口获取 session.id 进行认证。
- 【关键点 2】核心流程是登录、创建项目、上传调度文件、执行流、查询状态。
- 【关键点 3】任务提交涉及项目创建与文件上传,再触发执行。
- 【关键点 4】API 操作遵循 Azkaban 的权限模型,需关注安全与凭证管理。
- 【易错点 1】session.id 具有时效性且泄露风险高,不能硬编码在代码中。
- 【易错点 2】上传的调度文件格式错误会导致任务无法执行。
- 【易错点 3】未设置超时和重试可能导致调用失败或重复提交。