Sahara/EDP
< Sahara
目录
EDP(弹性数据处理)组件和流程
主要特性
启动作业
- 简单的 REST API 和 UI
- 原型:https://wiki.openstack.org/wiki/Savanna/UIMockups/JobCreation
- 作业可以通过 UI/API 输入,也可以通过 VCS 拉取
- 可配置的数据源
作业执行模式
- 在现有集群上运行作业
- 暴露集群负载信息
- 提供优化数据本地性的提示 TODO:更多细节
- 为作业创建新的临时集群
- 在现有集群上运行作业
作业结构
- 通过 jar 文件、Pig 或 Hive 脚本的单个作业
- Oozie 工作流
- 未来支持 EMR 作业流程导入
作业执行跟踪和监控
- 是否有任何现有的组件可以帮助可视化? (Twitter Ambrose)
- 终止作业
- 自动伸缩功能
主要 EDP 组件
数据发现组件
EDP 可以有多个数据源用于处理。数据可以从 Swift、GlusterFS 或 NoSQL 数据库(如 Cassandra 或 HBase)拉取。为了提供对这些数据的统一访问,我们将引入一个负责发现数据位置并为 Hadoop 集群提供正确配置的组件。它应该具有可插拔的系统。
作业来源
用户希望执行不同类型的作业:jar 文件、Pig 和 Hive 脚本、Oozie 作业流程等。作业描述和源代码可以通过不同的方式提供。有些用户只想插入 hive 脚本并运行它。其他用户希望将此脚本保存在 Savanna 内部数据库中以供以后使用。我们还需要提供一种从存储在 vcs 中的源代码运行作业的能力。
Savanna 调度器组件
此组件负责配置新的集群、在新的或现有的集群上调度作业、调整集群大小以及从集群收集有关当前作业和利用率的信息。此外,它应该提供信息以帮助做出正确的决策,即在哪里调度作业,创建新的集群还是使用现有的集群。例如,集群的当前负载、它们与数据位置的接近程度等。
UI 组件
集成到 OpenStack Dashboard - Horizon。它应该提供作业创建、监控等工具。Hue 已经提供了部分功能:提交作业(jar 文件、Hive、Pig、Impala)、查看作业状态和输出。
集群级别协调组件
暴露有关特定集群上作业的信息。可能此组件应该由现有的 Hadoop 项目 Hue 和 Oozie 表示。
用户流程
- - 用户选择或创建要运行的作业
- - 用户为该作业选择合适类型的数据源
- - 调度器向用户提供有关更好调度作业方式的提示(在现有集群上或创建新的集群)
- - 用户根据调度器的提示做出决定
- - 调度器(如果需要)创建或调整现有集群并将作业调度到该集群
- - 调度器定期拉取作业状态并在 UI 上显示
EDP 图
序列图
这是一个添加 序列图以帮助开发期间讨论的地方
