深入解析大數據虛擬化的架構(下)- 系統架構

零起點部署大數據虛擬化》系列教程之後,本着“知其然,亦知其所以然”的原則,本系列走進大數據虛擬化的內部,分上下兩篇博文,幫助讀者瞭解vSphere Big Data Extensions(以下簡稱BDE)的部署架構和系統架構,理解部署原理和內部構成,以及各自的作用。希望對您有所幫助,也歡迎您留言評價。




Serengeti管理服務器的系統架構


Serengeti管理服務器包括幾個重要的模塊:Serengeti Web ServiceIronfan ServiceChef ServerPackage RepositoryvHadoop Runtime Manager。這裏會簡單介紹各個模塊的功能。

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的功能和算法進行詳細的討論。


如有任何問題,您可以發郵件至[email protected]


關於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


作者簡介

藺永華 (Emma Lin)

VMware高級開發工程師,Staff Engineer

擔任VMware大數據產品vSphere BDE、Serengeti開源項目的技術帶頭人,引領和參與Serengeti核心架構與功能的設計和研發,經歷Serengeti自問世以來的6個版本的研發和發佈。長期致力於通過vSphere BDE/Serengeti使VMware虛擬化基礎架構成爲大數據應用的最好選擇。在VMware之前,就職於BEA/Oracle軟件開發中心,長期從事分佈式系統的開發、設計工作,擁有豐富的企業軟件開發經驗。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章