Storm EDP¶
https://blueprints.launchpad.net/sahara/+spec/storm-edp
此蓝图旨在为 Storm 实现 EDP。这将需要一个 Storm Job 类型。
问题描述¶
Sahara 需要一个 EDP 实现来允许提交 Storm Jobs。
提议的变更¶
EDP 引擎的实现将具有 3 个基本功能
run_job()
get_job_status()
cancel_job(kill=False)
这些方法映射到 Storm 的:* deploy_toplogy (即 storm jar topology-jar-path class …) * storm list (即 storm list) * storm deactivate (即 storm deactivate topology-name) * storm kill (即 storm kill topology-name)
此实现的第二部分是调整 UI 以允许提交 Storm Job。
替代方案¶
我们也许可以将 Storm jobs 作为 Java Job 提交,但为用户提供一个特定的 Storm Job 更好。
数据模型影响¶
无。
REST API 影响¶
无。
其他最终用户影响¶
无。
部署者影响¶
无。
开发者影响¶
无。
Sahara-image-elements impact¶
无。
Sahara-dashboard / Horizon 影响¶
Sahara 需要调整其 UI 以允许创建 Storm Jobs。crobertsrh 已经完成了一个草稿,可以在 https://review.openstack.org/#/c/112408/4 中找到
UI 的主要更改将是:* 一个框供用户定义要执行的主类 * 一个框供用户提供参数(如果适用) * 按钮来控制作业执行(启动、停止、杀死、查看状态) * 由于在同一个拓扑中可以执行多个作业,因此可以通过作业或通过拓扑来控制。在第二种情况下,用户必须在拓扑中选择作业来进行控制。
实现¶
负责人¶
- 主要负责人
tellesmvn
- 其他贡献者
tmckay (主要评审) crobertsrh
工作项¶
实现 Storm Job 类型
为 Storm 实现 EDP 引擎
实现单元测试
实现集成测试
依赖项¶
无。
测试¶
首先,我们将实现单元测试,遵循 Spark 在 https://github.com/openstack/sahara/blob/master/sahara/tests/unit/service/edp/spark/test_spark.py 中的示例。 并且实现集成测试
文档影响¶
需要更新文档,其中包含有关 Storm EDP 和 Storm Job 类型的信息。
参考资料¶
Etherpad <https://etherpad.openstack.org/p/juno-summit-sahara-edp>
Storm 文档 <http://storm.incubator.apache.org/>