sahara的架构

  • Post author:
  • Post category:IT
  • Post comments:0评论

背景

sahara(以前叫savanna)以前是openstack的孵化项目,但是从openstack的下一个版本juno开始将成为openstack 的核心项目,它是由领先的Apache Hadoop贡献方Hortonworks公司,最大的OpenStack 系统集成商Mirantis公司,以及 全球领先的开源解决方案及最新版OpenStack的最大贡献方红帽公司联合发起的。Sahara项目旨在为OpenStack用户提供一种简单、快捷地部署以及管理Hadoop集群的方案,类似于亚马逊Elastic MapReduce (EMR) 服务。本文主要讨论一下sahara当前和今后的架构演进。

sahara当前的架构

enter image description here

sahara的架构由一下服务组件构成:

  1. 集群配置管理器—所有的业务逻辑都在这里组装
  2. 鉴权组件—作为鉴权服务的client
  3. 数据访问层—负责在数据库中持久化内部的数据模型
  4. 虚拟机配置—负责与nova和glance交互
  5. 部署引擎—插件机制,负责部署hadoop到配置好的vm上;已经存在的管理方案如apache ambari 和 cloudera managent console可用于此
  6. REST API—通过REST风格的接口暴露sahara的功能
  7. python sahara client—和其他openstack组件一样sahara也有他的python客户端库

sahara的下一代架构以及相关工作

enter image description here

第一阶段: 拆分sahara为多个服务组件 sahara-api(s-api):负责rest api;插件和操作的校验,创建最初的操作任务 sahara-conductor(s-conductor):负责与数据库的交互和相关的封装 sahara-engine(s-engine):负责执行任务包括长时间运行的任务,与其他openstack服务交互(即调用nova,glance,cinder创建虚拟机和卷等)

第二阶段: 为配置任务实现高可靠性 sahara中所有重要的任务都应该是可靠的。所以也就要求支持事务和回滚。这里社区倾向于使用https://wiki.openstack.org/wiki/TaskFlow实现相关功能。

发表评论