升级 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