背景
sahara(以前叫savanna)以前是openstack的孵化项目,但是从openstack的下一个版本juno开始将成为openstack 的核心项目,它是由领先的Apache Hadoop贡献方Hortonworks公司,最大的OpenStack 系统集成商Mirantis公司,以及 全球领先的开源解决方案及最新版OpenStack的最大贡献方红帽公司联合发起的。Sahara项目旨在为OpenStack用户提供一种简单、快捷地部署以及管理Hadoop集群的方案,类似于亚马逊Elastic MapReduce (EMR) 服务。本文主要讨论一下sahara当前和今后的架构演进。
sahara当前的架构
sahara的架构由一下服务组件构成:
- 集群配置管理器—所有的业务逻辑都在这里组装
- 鉴权组件—作为鉴权服务的client
- 数据访问层—负责在数据库中持久化内部的数据模型
- 虚拟机配置—负责与nova和glance交互
- 部署引擎—插件机制,负责部署hadoop到配置好的vm上;已经存在的管理方案如apache ambari 和 cloudera managent console可用于此
- REST API—通过REST风格的接口暴露sahara的功能
- python sahara client—和其他openstack组件一样sahara也有他的python客户端库
sahara的下一代架构以及相关工作
第一阶段: 拆分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实现相关功能。
由 udpwork.com 聚合
|
评论: 0
|
要! 要! 即刻! Now!