首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》9.4.2 Sahara与VMware Serengeti的对比

关灯直达底部

Serengeti是由VMware推动的一个开源项目,支持企业在虚拟和云环境中快速部署、管理和扩展Apache Hadoop。此外,VMware与Apache Hadoop社区共同合作研发扩展功能,让主要组件可以“感知虚拟化”以支持灵活扩展,并进一步提高Hadoop在虚拟化环境中的性能。与此对应的,VMware推出的产品叫BigData Extension(BDE)。

Serengeti基于Apache 2.0许可证。它是一键式部署工具包,支持企业利用VMware vSphere平台,在几分钟内部署高可用的Apache Hadoop集群,包括Apache Pig和Apache Hive等常见的Hadoop组件,从而实现Hadoop集群的可用性和可管理性。

vSphere BDE是VMware基于Serengeti开源技术的企业发行版,其部署架构如图9-4所示。其重点是增强vSphere基础架构对Serengeti的支持,更好地部署、运行和管理大数据相关负载。

图9-4 Serengeti BDE部署架构

从部署角度看,BDE打包了Serengeti虚拟化应用,并且包括一个vCenter网页客户端的插件。

Serengeti虚拟化应用(Virtual Appliance)包括Serengeti管理服务器和虚拟机模板。这个应用可以很容易地部署在VMware的vCenter之上。

Serengeti管理服务器(Management Server)是整个Serengeti的核心部件,提供Hadoop集群在虚拟化环境下的部署、管理的功能,并且为不同用户提供不同的资源使用策略。

对资源利用率要求高的客户,可以在Serengeti的帮助下,使资源在Hadoop应用与其他应用之间有效地共享。而对于Hadoop的性能有更高要求的客户,则可以通过Serengeti实现资源在不同应用之间的完美隔离,达到在资源独占情况下的最优使用效果。

Serengeti管理服务器对外提供RESTAPI,以便远程客户端访问和控制Hadoop集群。Serengeti CLI和BDE的UI插件都是通过RESTAPI访问Serengeti管理服务器的。

Hadoop集群的所有虚拟机都是从Serengeti虚拟机模板直接或间接复制而来的,其中包括一个基本的CentOS操作系统,以及简单的集群安装需要的软件。但是其中不包含Hadoop的安装包,这是因为Serengeti可以支持多种Hadoop发行版,这些软件的安装是在集群的创建过程中完成的。

部署完成之后,Serengeti管理服务器作为一个虚拟化应用运行在某一台虚拟主机中,并且注册成为vCenter的一个扩展服务器。之后,Serengeti会和vCenter建立SSL链接,确保数据交互的安全性和可靠性。

以下简单阐述一下“应用云化”和“应用虚拟化”的区别。

本质上,“应用云化”和“应用虚拟化”是两件可相关、可无关的事情。当云上的应用运行在虚拟机上的时候,则应用虚拟化问题的有效解决对应用云化有益(主要是性能和可靠性的提升)。而当“应用”云化采用了其他形式的底层技术(如裸机部署云化管理或者基于容器进行开发等)时,则这两个问题就已经没有必然联系了。

Serengeti的基本定位是解决Hadoop的虚拟化问题,即Serengeti项目的主要关注点在于如何提高搭建在虚拟机环境下的Hadoop集群的性能和可靠性。通过对Hadoop的有限扩展,Serengeti让运行在虚拟化环境(vSphere)中的Hadoop应用能够意识到虚拟化环境的特点,从而有针对性地进行任务调度和数据分布,以避免物理节点失效导致的业务失败。而Sahara主要关注点在于解决Hadoop应用云化的问题。

因此,Sahara和Serengeti的区别实际上是“应用云化”和“应用虚拟化”的区别。但Sahara中的Hadoop集群部署在虚拟机之上,因此,Serengeti提供的虚拟化环境下Hadoop性能优化的经验,可作为Sahara的参考。