Hadoop虛擬化擴充套件 HVE 之資源擴充套件技術

2021-09-04 17:48:54 字數 2962 閱讀 5341

在虛擬化的雲環境中,

hadoop

可以有更好的「彈性」,這是雲計算的乙個重要優勢,例如亞馬遜的

emr(elasticmapreduce)

服務,

使用者可以迅速的在雲中根據需求部署乙個

hadoop

集群,執行計算任務,並且使用者可以向集群動態的新增或刪除計算節點。

這裡存在著乙個潛在問題,

haodop

的資料節點並非天生的

「有彈性

」,刪除乙個資料節點意味著需要重新複製儲存在這個節點的資料,這是乙個緩慢的過程,並且占用網路頻寬。

圖1:儲存計算分離

儲存計算分離可以很好的解決這個問題,如上圖所示,我們可以靜態的為每個物理結點部署乙個資料節點,動態的部署和調整每個物理節點上的計算節點。另外可以利用虛擬機器更好的隔離性,為每個租戶提供單獨的計算節點,提供多租戶

(multi-tenancy)

服務。 hve

的資源擴充套件技術就是對

hadoop

計算層的擴充套件,通過增加

hadoop

垂直擴充套件和水平擴充套件的動態性,配合資源共享,最終達到優化資源利用的目的。

虛擬機器之間的資源共享通常是通過資源過量配置來實現的。大多數的虛擬機器

hypervisor

,比如vmware

和xen

,都支援資源過量配置。以

vmware esx

為例,他允許為每個虛擬機器配置預留資源

(reservation)

,最大資源

(limit)

和共享(share)

來控制同一物理機上多個虛擬機器之間的資源共享,以及資源不足時的分配策略。

圖2:資源過量配置

有了這個技術,多個應用之間就可以共享資源,比如在其他應用繁忙的時候,可以使

hadoop

計算節點少占用一部分資源,而在其他應用空閒的時候,

hadoop

節點可以分配到更多資源。

僅僅通過

hypervisor

的資源排程並不能很好的達到資源共享的目的,目前

hadoop

的資源配置是靜態的:

1. 在mapreduce v1

中,資源通過每個

tasktracker

的槽位數配置項配置,槽位就是一定量

cpu和記憶體資源抽象

2. 在mapreduce v2

中,資源通過每個

nodemanager

的cpu

和記憶體配置項直接配置

這些配置已經啟動是無法動態調整的,這樣在計算節點虛擬機器資源不足的情況下,

hadoop

仍然會分配過量的任務到這個節點,任務的執行速度會大幅度降低,從而影響整個集群的效能。

hve的資源擴充套件技術通過動態化

hadoop

資源配置來解決這個問題

: 1.

在計算節點執行過程中,使用者可以動態設定每個計算節點的槽位數

(mrv1)

或者資源數

(mrv2)

2. 當計算節點資源不足時,使用者或者

vhm(virtual hadoop manager)

可以自動調整其資源配置,盡量避免資源競爭導致的效能下降

圖3:mrv1的動態資源調整

圖4:mrv2的動態資源調整

除了對每個計算節點內部的垂直式的資源伸縮,

hadoop

廣為人知的還是其良好的水平可擴充套件性,

hadoop

可以動態的上線或者下線

(decommission)

計算節點。在虛擬化環境中,為支援更好的彈性,計算節點的上下線操作會更加頻繁。

圖5:虛擬化環境下的

hadoop

水平擴充套件

這樣引發乙個問題,就是在下線計算節點時,其上正在執行的任務會被殺死,已經完成的

map任務的中間結果也會丟失,所以強制下線節點會導致大量任務重新執行,延遲整個作業的執行。

hve的資源擴充套件技術通過增加安全下線

(graceful decommission)

功能來解決這個問題:

1. 使用者發出安全下線計算節點命令後,先將該計算節點的槽位數或者資源配置為

0,使其不再接受新任務

2. 等待該計算節點上任務都執行完畢,中間資料也都被使用過之後,再停止該計算節點。

hve的資源擴充套件技術通過對

hadoop

核心新增動態資源特性,以支援對

hadoop

集群計算層的動態的水品和垂直擴充套件,為

hadoop

部署在虛擬化環境中增加了如下優點:

1. 能夠使hadoop

與其他應用,或者多個

hadoop

集群之間動態共享資源,可以根據資源需求動態的擴充套件或者收縮集群,提高資源利用率

; 2.

更好的多租戶支援,通過將不同的使用者的作業隔離在不同的虛擬節點,可以在保證資源利用率的基礎上提高隔離性和安全性。

本文簡要介紹了

hvejira。

1.memoryovercommitment in the esx server:

2.dynamicresource configuration jira: yarn-291, mapreduce-4900

3. graceful decommission jira: yarn-914, mapreduce-5381

關於vsphere big data extensions:

作者介紹

常冰琳(binglin chang)

vmware

開發工程師

hadoop

**貢獻者,參與開發

hadoop

虛擬化擴充套件。在

vmware

hadoop

以及其他分布式系統的設計

和開發工作。

桌面虛擬化之GPU虛擬化

虛擬化技術的變革堪比 cpu晶元的發展,迄今為止,伺服器上的 cpu,記憶體,儲存,io裝置等都已經可以虛擬化,通過在伺服器上部署虛擬機器,可以實現多個虛擬機器例項共享同一硬體資源。隨著虛擬化的應用普及,使用者場景也變得越來越多樣和廣泛。特別是近年來桌面虛擬化市場的紅火,gpu虛擬化技術也開始被越來...

基於docker虛擬化建立hadoop集群

最近想用hadoop做乙個測試,與效能無關的測試,但是可與屌絲的命,手頭沒有太多機器,也租不起雲主機。這裡使用docker進行虛擬化,並搭建hadoop集群,在這裡將過程記錄如下。首先安裝docker,這裡不作詳細介紹,sudo apt get install docker 安裝完成之後,我們可以發...

虛擬化之docker

1,什麼是docker dokcer是應用容器,它是基於系統的虛擬化,他不是基於硬體的虛擬化 kvm 可能這樣說有點抽象,我在知乎看到過乙個比喻,docker思想是 於貨櫃的,在一艘大船上,可以用貨櫃將各種物品分類並打包,那麼這樣就有多個貨櫃,那麼這裡的貨櫃類似於docker了。而這艘大船就類似於我...