跳转到: 导航, 搜索

Sahara/EDP

EDP(弹性数据处理)组件和流程

主要特性

启动作业

作业执行模式

  • 在现有集群上运行作业
    • 暴露集群负载信息
    • 提供优化数据本地性的提示 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 图

EDP diagram.png

序列图

这是一个添加 序列图以帮助开发期间讨论的地方