升级 sahara edp oozie 引擎的 Oozie Web Service API 版本

https://blueprints.launchpad.net/sahara/+spec/update-oozie-client-version

本规格旨在升级 oozie 引擎的 oozie web service api 版本。

问题描述

目前 sahara oozie 服务器版本为 4.1.0,但 oozie 引擎仍然使用 oozie 3.x 中使用的 v1 oozie web service api。通过将 oozie web service api 从 v1 升级到 v2,我们可以将更多 oozie 功能添加到 sahara 中。

提议的变更

将 sahara OozieClient 的 job_url 和 jobs_url 从 /v1/job/%s, /v1/jobs 更改为 /v2/job/%s, /v2/jobs。

对于 /v2/jobs,与 /v1/jobs 保持相同

对于 /v2/job/,作业信息 API 的 JSON 格式存在差异,特别是对于 map-reduce action,其他 action 没有变化。在 v1 中,externalId 和 consoleUrl 指向生成的子作业 ID,并且 map-reduce action 中的 exteranlChildIDs 为 null。在 v2 中,externalId 和 consoleUrl 指向 launcher 作业 ID,并且 exteranlChildIDs 是生成的子作业 ID,在 map-reduce action 中。这个 exteranlChildIDs 可以用于 recurrence edp 作业的子作业 ID。

以下是可以在 sahara 中添加的新 oozie 功能。

(1)PUT oozie/v2/job/oozie-job-id?action=update,我们可以更新作业的定义和属性。(2)GET /oozie/v2/job/oozie-job-id?show=errorlog,我们可以在作业失败时获取 oozie 错误日志,以便向用户显示详细的错误信息。目前 sahara edp 引擎在作业失败时不会告诉用户任何信息。

因此,我们可以将 update_job() 和 show_error_log() 添加到 oozie 客户端中。关于这两个功能的详细信息将在另一规格中起草。

替代方案

数据模型影响

REST API 影响

其他最终用户影响

部署者影响

开发者影响

Sahara-image-elements impact

Sahara-dashboard / Horizon 影响

实现

负责人

主要负责人

luhuichun(lu huichun)

其他贡献者

工作项

  • 更新 oozie 引擎中的 oozie 客户端

依赖项

无。

测试

edp 引擎中的单元测试添加场景集成测试

文档影响

需要进行文档说明。

参考资料

oozie web service api http://oozie.apache.org/docs/4.2.0/WebServicesAPI.html