跳转到: 导航, 搜索

Sahara/Incubation

项目代号

Savanna

在 0.3 版本之后,该项目已更名为 Sahara,以减少潜在的商标冲突。

总结

在 OpenStack 上配置弹性 Hadoop 集群和弹性数据处理(按需 Hadoop 作业流程)。

使命宣言

项目名称和使命宣言讨论正在进行中,邮件列表

项目:数据处理

使命:向 OpenStack 社区提供一个开放、前沿、高性能和可扩展的数据处理堆栈以及相关的管理界面。

详细描述

Savanna 为用户提供了在 OpenStack 上使用 Hadoop 的简单方法。该项目的主要目标是提供按需 Hadoop 集群配置以及按需 Hadoop 作业流程(类似于 Amazon Elastic MapReduce)。

集群操作包括完整的集群生命周期管理。其中包括集群配置、扩展和终止。Savanna 支持各种配置选项,这些选项特定于 Hadoop 发行版。Savanna 还提供了一种内置的集群模板机制,允许创建一次配置并以单击方式多次部署。

数据操作允许用户不必执行集群创建任务,而是直接与数据一起工作。例如,用户指定要运行的作业和数据源,Savanna 会负责整个作业和集群生命周期:启动集群、配置作业和数据源、运行作业和关闭集群。Savanna 支持不同类型的作业:MapReduce 作业、Hive 查询、Pig 作业、Oozie 工作流。数据可以来自各种来源:Swift、远程 HDFS、NoSQL 和 SQL 数据库。

许多供应商提供定制的 Hadoop 发行版。Savanna 旨在通过插件机制支持所有这些发行版。目前,已实现了两个发行版的插件:Vanilla Apache Hadoop 和 Hortonworks Data Platform。现代 Hadoop 安装不仅包括 Hadoop,还包括来自 Apache Hadoop 生态系统的大量产品,例如 Pig、Hive、Oozie、Sqoop、Hue 等。Savanna 旨在提供对所有这些服务的支持。

Savanna 与核心 OpenStack 组件紧密集成,包括 Nova、Keystone、Glance、Cinder 和 Horizon。Savanna 还允许 Hadoop 将 Swift 用作 MapReduce 作业的存储。此外,Savanna 使用 diskimage-builder 构建安装了 Hadoop 的镜像。Savanna 对 i18n 提供完全技术支持。Savanna 利用 oslo.config、oslo.messaging、其他 Oslo 工具和 PBR 进行打包。

我们希望最终从 Ceilometer 消耗指标,从 Heat 获取编排,并可能从 Ironic 获取配置裸机或混合 Hadoop 集群。Savanna 致力于运行和与 OpenStack 生态系统集成。

项目基本路线图

当前版本提供

  • 用于模板/集群管理的 REST API
  • 支持多种 Hadoop 发行版的插件机制
  • 所有对象的多租户支持
  • 与 Keystone 的身份验证集成
  • 与 Cinder 的集成
  • Python 绑定的 Alpha 版本
  • nova-network 支持
  • 用于构建预安装镜像的 diskimage-builder 元素
  • OpenStack Dashboard 插件,支持所有 Savanna 功能

下一个版本计划

Savanna 0.3 计划与 OpenStack Havana 一起发布。它将包括以下功能

  • 弹性数据处理 - 提供 Hadoop 作为服务:允许用户通过 Savanna 运行类似 SQL 的 Hive 查询、Pig 或 MapReduce 作业。用户将能够在不显式启动集群的情况下运行不同类型的作业。
  • 配置包含 Hadoop 生态系统产品(如 Hive、Pig 和 Oozie)的复杂 Hadoop 集群。
  • 新架构 - Savanna 将支持多主机安装,这将提高其可用性并加快配置速度。这是通往高可用性的中间步骤。
  • 完全支持 Nova Network 和 Neutron。
  • 扩展的 OpenStack Dashboard 插件,支持所有新功能。
  • Python 绑定。

项目源代码位置

编程语言、所需技术依赖

语言
Python
依赖项
alembic, eventlet, flask, jsonschema, paramiko, pbr, sqlalchemy, 消息队列, sql 数据库

项目目前是否开源?使用什么许可证?

是的,使用 Apache 2.0 许可证。

软件和团队的成熟度

  • 团队:合作超过六个月,包括来自三家不同公司的成员:Mirantis、Red Hat 和 Hortonworks。

拟定的项目技术负责人及其资质

Sergey Lukjanov (SergeyLukjanov on irc) 是 Mirantis 的 Savanna 项目技术负责人。他的主要职责是 Savanna 的架构设计和社区相关工作。此外,他是 Savanna 的主要贡献者和审查者,并监督 Launchpad 和 Gerrit 中的所有活动。Sergey 在大数据项目和技术(Hadoop、HDFS、HBase、Cassandra、Twitter Storm 等)和企业级解决方案方面经验丰富。他已被社区选为 Savanna PTL - https://wiki.openstack.org/wiki/Savanna/PTL

其他项目开发者及其资质

当前 savanna-core 团队

除了 Sergey Lukjanov 之外

Alexander Ignatov (aignatov on irc) 是 Mirantis 的高级软件工程师。他精通网络、Java 和分布式系统,例如 Hadoop 和 HBase。Alexander 从项目开始就参与其中。他是 Vanilla Hadoop 插件的主要作者。

Matthew Farrellee (mattf on irc) 是 Red Hat 的首席软件工程师和工程经理,在分布式和计算系统开发和管理方面拥有十多年的经验。Matt 从 Savanna 更名为 EHO 后就参与其中。他是 Savanna 的 diskimage-builder 元素的的主要贡献者,也是架构设计讨论的积极参与者。他正在将 Savanna 集成到 Fedora Big Data SIG 中。

John Speidel (jspeidel on irc) 是 Hortonworks 的高级技术人员。他拥有 15 年开发商业中间件系统的经验,重点是分布式事务处理。John 是 Savanna 的 Hortonworks Data Platform 插件的联合作者。

活跃代码贡献者

Dmitry Mescheryakov (dmitryme on irc) 是 Mirantis 的高级软件工程师。他的主要专长是 Java、Linux 和网络。他从项目开始就参与了 Savanna。Dmitry 为 Savanna 的核心和 UI 部分做出了重大贡献。

Alexander Kuznetsov (akuznetsov on irc) 是 Mirantis 的首席软件工程师。他精通 Hadoop、机器学习和构建健壮且可扩展的应用程序。Alexander 是该项目的发起人之一,负责 Savanna 的总体架构。

Nadya Privalova (nadya on irc) 是 Mirantis 的软件工程师。她的专长包括:Java、Hadoop、Hbase、Pig 和网络。Nadya 为该项目做出了几项重大贡献,目前正在积极致力于 Savanna 0.3 的 EDP。

Nikita Konovalov (NikitaKonovalov on irc) 是 Mirantis 的软件工程师。他的专长包括 Python、Java、Twitter Storm 和 UX。他是 Savanna Dashboard 插件的主要作者。

Ruslan Kamaldinov (ruhe on irc) 是 Mirantis 的开发经理。他精通 Linux、网络和分布式系统,例如 Hadoop 和 HBase。Ruslan 贡献了 Savanna 的大部分文档。

Ilya Tyaptin (ityaptin on irc) 是 Mirantis 的软件工程师。他拥有 Java、Python 的经验。Ilya 正在致力于 Savanna 0.3 的 EDP 功能。

Ivan Berezovskiy (ivan on irc) 是 Mirantis 的部署工程师。他是 Savanna 的 diskimage-builder 元素的作者。

Nikolay Mahotkin (nmakhotkin on irc) 是 Mirantis 的软件工程师。Nikolay 从项目开始就参与 Savanna,并研究了 Oozie、Hive 和 Pig。他为 Savanna 0.3 实现了 Hive 和 Oozie 的支持。

Sergey Reshetnyak (sreshetniak on irc) 是 Mirantis 的软件工程师。他的技能包括 Linux、网络和 Python。Sergey 从 2013 年 4 月开始参与 Savanna。他正在从事 Savanna 的核心部分工作。

Vadim Rovachev (vrovachev on irc) 是 Mirantis 的质量保证工程师。他的专长包括 Python 和 Selenium。他是 Savanna 集成测试的联合作者。

Yaroslav Lobankov (ylobankov on irc) 是 Mirantis 的质量保证工程师。他的专长包括 Python 和 Selenium。他是 Savanna 集成测试的联合作者。

Trevor McKay (tmckay on irc) 是 Red Hat 的高级软件工程师,在分布式计算、用户界面开发、客户端服务器应用程序和控制系统方面拥有经验。他正在从事 Savanna 0.3 的 EDP 部分工作。

Chad Roberts (crobertsrh on irc) 是 Red Hat 的高级软件工程师。他的专长是 Python、C/C++、Java 和 JavaScript。他从事客户端服务器应用程序开发超过 13 年,目前专注于将 EDP 功能集成到 Savanna Dashboard UI 中,用于 0.3 版本。

Jonathan Maron (jmaron on irc) 是 Hortonworks 的高级技术人员。多年来,Jon 参与了许多 JCP 专家组,发表了多篇文章,并合著了“Java 事务处理:设计与实现”。他是 Savanna 的 Hortonworks Data Platform 插件的联合作者。

架构设计贡献者(未提交代码)

Ilya Elterman (ielterman on irc) 是 Mirantis 的云服务高级总监。他是该项目的发起人之一,参与 Savanna 的总体架构讨论。

Erik Bergenholtz (ebergenholtz on irc) 是 Hortonworks 的工程总监,在为企业开发软件方面拥有 20 多年的经验。Erik 对通过开发 HDP Savanna 插件来弥合 Hadoop 和 OpenStack 之间的差距感到兴奋。他参与了架构设计讨论。

基础设施需求(测试等)

我们所有的代码/审查和错误/规范都分别托管在 OpenStack Gerrit 和 Launchpad 上。单元测试和所有 flake8/hacking 检查在 OpenStack Jenkins 上运行,并且我们有集成测试在自己的 Jenkins 服务器上为每个补丁集运行。我们希望将我们的集成测试迁移到 OpenStack 基础设施。我们拥有基于 Sphinx 的文档发布在 readthedocs 上,其中包含开发、管理和用户指南以及 REST API、插件 SPI 等的描述。

预计不需要额外的基础设施需求。

所有当前贡献者都同意了 OpenStack CLA 吗?

是的。

相关链接

提出的问题 + 答案

“集群” API / 通用组件

我们计划参与这项活动并在设计峰会上参与相关讨论。我们希望在峰会之前准备好我们对集群的愿景。一些关于集群的想法已发布在 邮件列表 中。

为什么同时提供配置 + EDP?以及与 Heat 的交叉点

现在 Savanna 会配置实例,在一个实例上安装管理控制台(例如 Apache Ambari),并通过安装的控制台的 REST API 与其通信,以便在所有实例上准备和运行所有请求的服务。因此,Savanna 所做的配置仅限于实例、卷的创建以及初始配置,例如为所有实例生成 /etc/hosts 文件。这些操作的大部分甚至全部最终都将通过 Heat 集成在 Icehouse 周期中的潜在孵化期间移除,因此,之后我们将专注于 EDP(弹性数据处理)操作,配置部分将非常小。

这里有一个维基页面,其中包含我们与 Heat 集成的计划 https://wiki.openstack.org/wiki/Savanna/HeatIntegration

与 Trove 的交叉点

Hadoop 不是数据库或仅仅是数据存储,而是一个拥有大量数据处理相关工具的庞大生态系统。此外,我们也在关注与其他数据处理工具的集成,例如 Twitter Storm 等。因此,与 Trove(DBaaS)之间没有交叉点,我们没有计划部署数据库。而且,Savanna 的 EDP 部分的目标是使 Hadoop 能够处理位于任意存储上的数据,包括 SQL 和 NoSQL 数据库。这是 Savanna 和 Trove 之间的自然连接点:我们认为让 Savanna 部署的 Hadoop 消费 Trove 部署的数据库中的数据不会需要太多精力。这个想法已经在 邮件列表中 讨论过。

与其他 OpenStack 项目的集成

我们计划与 Ceilometer 集成以在其中存储一些指标。与 Ceilometer 集成相关的蓝图:https://blueprints.launchpad.net/savanna/+spec/ceilometer-integrationhttps://blueprints.launchpad.net/savanna/+spec/hadoop-cluster-tracking