深入解析大数据虚拟化的架构(下)- 系统架构

继《零起点部署大数据虚拟化》系列教程之后,本着“知其然,亦知其所以然”的原则,本系列走进大数据虚拟化的内部,分上下两篇博文,帮助读者了解vSphere Big Data Extensions(以下简称BDE)的部署架构和系统架构,理解部署原理和内部构成,以及各自的作用。希望对您有所帮助,也欢迎您留言评价。




Serengeti管理服务器的系统架构


Serengeti管理服务器包括几个重要的模块:Serengeti Web ServiceIronfan ServiceChef ServerPackage RepositoryvHadoop Runtime Manager。这里会简单介绍各个模块的功能。

174203921.png

Serengeti管理服务器的系统架构图

Serengeti Web Service

Serengeti Web ServiceSerengeti的工作流控制中心,提供对外的RESTAPI,外部客户端可以通过REST API访问所有Serengeti提供的功能。

这是一个运行在Tomcat之上的Web Service,大量使用了SpringFramework提供的各种功能,包括使用Spring Batch进行Workflow的控制,Spring Security保证用户安全性,Spring MVC提供REST API,以及集成Hibernate进行内部数据的管理。

Web Service同时集成了vCenter Extension的注册和管理。在Serengeti部署完成之后,注册成为vCenter的扩展服务器。负责和VC的通讯,VC 会话的管理,虚拟机的创建,配置和管理。

Web Service中,一个重要的功能就是虚拟机的分布计算(Virtual Machine Placement)。

在虚拟化环境之下,用户提出的请求通常都是创建多少个node,可用的资源有哪些,比如那些主机(host),那些存储(datastore)可以使用。那么在这些要求之下,我们面对的一个问题抽象来说,就是在nhost之上,创建mVM,每个VM的硬盘,网络有一定的要求。

在这个命题之下,Serengeti为了满足hadoop对资源使用的特殊要求,开发了一些通用的分布算法。比如典型的应用是在可用host之上平均分布。这样就保证Hadoop的节点不会分布在同一台host之上,为数据的可靠性提供了基础。

为了满足数据和计算能力的分离,Serengeti还提供了节点关联的策略。具体来说就是在每台host之上,同时放置m个节点,其中k个是存放数据的节点,j个是进行计算的节点。并且满足k+j=m的条件。

之后的文章中会详细介绍Serengeti支持的VM placement算法,以及适合的应用场景,在此不做详细讨论。

Chef Service

Chef是当前流行的分布式软件配置管理工具,在数据中心管理运维中广泛使用。例如FacebookAmazon都是Chef的用户。Serengeti在虚拟机创建完成之后,使用Chef的脚本进行hadoop软件的安装和管理。

Serengeti包含一系列Chef脚本,支持多个hadoop发行版的安装和配置,包括Hadoop1.xHadoop2.x,和HBase。这些脚本都预先安装在Chef Server之上。

Chef Client组件预先安装在Serengeti创建的虚拟机之中。当虚拟机创建完成之后,Chef Client将会从Chef Server下载并运行相应的脚本,真正完成Hadoop的安装和配置工作。

Ironfan Service

Ironfan是基于ChefHadoop 集群部署和管理工具。在Web Service完成虚拟机的创建之后,负责控制整个Hadoop集群的软件安装,和配置工作。

Web Service会把整个集群的虚拟机信息,包括虚拟机的名字,ip地址,需要安装的Hadoop组件(比如namenodejobtracker)等信息传递给Ironfan

Ironfan将会调用Chef提供的Knife命令行工具,和Chef Server提供的REST API,把所有节点的信息提供给Chef Server,并且通过SSH远程启动集群中所有虚拟机之上的Chef Client,以便在每一个节点上安装和配置软件。

除此之外,Ironfan还会监听软件安装运行的进展情况,实时报告给Serengeti Web Service,以确保用户在集群创建过程中,直观看到各个虚拟机的软件安装进度。

ChefIronfan都是用Ruby开发的工具,我们为Ironfan专门开发了Thrift Service,使Serengeti Web Service可以直接通过RPC方式来调用Ironfan,而不需要通过Java的本地调用来执行Ironfan的命令行。

之后会有专门的文章详细介绍IronfanChef,以及他们在Serengeti中所起的作用。

Package Repository

Package Repository的设计使得Serengeti不再绑定任何的hadoop发行版,用户可以在Serengeti中自行安装自己需要的hadoop发行版,之后就可以用Serengeti灵活创建需要的hadoop集群。

Package Repository可以包含Hadoop不同发行版的安装包,CDH3/CDH4MapRPivotalHDGreenPlum HD Hortonworks Data Platform。以方便用户指定使用哪种发行版。

Chef 脚本中包含了Hadoop软件的下载和安装指令,它可以从Serengeti内置的Package Repository之上下载安装包,也可以到指定的URL去下载。当然如果需要连接到外网下载,虚拟机需要连接外网的权限,或者配置httpproxy

vHadoop Runtime ManagerHRM

HRM提供了集群的弹性伸缩功能。它会监听Hadoop 任务的运行情况和VC资源使用情况,动态调整集群的计算功能,以满足用户对虚拟机共享资源的高级需求。比如调整Hadoop集群对资源使用的优先级,保证高优先级的任务优先完成等等。

在虚拟化的环境中,VCDRS就提供了资源动态调整的功能,保证某些虚拟机获得更多的资源,来完成高优先级的任务。但是在Hadoop集群的应用场景中,对整个集群的资源使用进行优化调整就是HRM的任务。

Serengeti Web SerivceHRM之间通过RabbitMQ进行通信。用户也可以在Serengeti的客户端发起手动调整资源的命令。这个命令就是通过RabbitMQ传递给HRM的。

在这里需要强调的一点是HRM的功能只有在BDE,也就是Serengeti的商业版中提供。

之后的文章会对HRM的功能和算法进行详细的讨论。


如有任何问题,您可以发邮件至bigdata_apac@vmware.com


关于vSphereBig Data Extensions:

VMware vSphere Big Data Extensions(简称BDE)基于vSphere平台支持大数据Hadoop作业。BDE以开源Serengeti项目为基础,为企业级用户提供一系列整合的管理工具,通过在vSphere上虚拟化Hadoop,帮助用户在基础设施上实现灵活、弹性、安全和快捷的大数据部署、运行和管理工作。了解更多关于VMware vSphere Big Data Extensions的信息,请参见http://www.vmware.com/hadoop


作者简介

111048126.jpg

蔺永华 (Emma Lin)

VMware高级开发工程师,Staff Engineer

担任VMware大数据产品vSphere BDE、Serengeti开源项目的技术带头人,引领和参与Serengeti核心架构与功能的设计和研发,经历Serengeti自问世以来的6个版本的研发和发布。长期致力于通过vSphere BDE/Serengeti使VMware虚拟化基础架构成为大数据应用的最好选择。在VMware之前,就职于BEA/Oracle软件开发中心,长期从事分布式系统的开发、设计工作,拥有丰富的企业软件开发经验。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值