讀古今文學網 > OpenStack系統架構設計實戰 > 9.2 Sahara的使用模式 >

9.2 Sahara的使用模式

使用Sahara的過程中會涉及一些重要概念,主要包括:節點、節點組、節點組模板、集群、集群模板、任務。

1)節點:用於部署Hadoop集群的一台虛擬機。這個概念與物理的Hadoop集群中的節點可以直接對應。

2)節點組:指一組Flavor完全相同且部署了完全相同的Hadoop服務的節點。例如,幾個Flavor完全相同且都部署了DataNode和TaskTracker的節點,就組成了一個節點組。

3)節點組模板:一個用於創建節點組的模板。其中,定義了一個節點組所需要的基本信息,包括Flavor、Hadoop版本、服務進程種類等。利用節點組模板,可以選擇用於部署Hadoop集群的各個虛擬機(即節點)的規格與性能,也可以指定JobTracker/TaskTracker、NameNode/DataNode等服務之間的組合部署方案。需要注意的是,節點組模板中並不指定一個組包含的節點個數;這個數量在集群模板中進行定義。以下是一個節點組模板的典型例子。

{"name": "test-master-tmpl","flavor_id": "2","plugin_name": "vanilla","hadoop_version":"1.2.1","node_processes": ["jobtracker", "namenode"]}

4)集群:一個由多個節點組成的Hadoop集群,這些節點分別屬於多個節點組。例如,至少有一個運行JobTracker和NameNode的節點組(如果不考慮單點故障,則該組中只有一個節點),以及一個運行TaskerTracker和DataNode的節點組(其中可以根據需要包括多個節點)。

5)集群模板:一個用於創建Hadoop集群的模板。通過引用節點組模板的方式,集群模板來定義一個集群由哪幾組節點組成,以及每個節點組中的節點個數。集群模板與集群之間的關係,相當於Nova中Flavor與實例的關係。Sahara會對集群模板的合法性進行檢查。如果發現一個集群模板中不包含JobTracker節點,或者不包含NameNode節點,則認為這個集群模板無效,並且不能使用該模板創建集群。以下是一個集群模板的典型例子。

{"name": "demo-cluster-template","plugin_name": "vanilla","hadoop_version": "1.2.1","node_groups": [{"name": "master","node_group_template_id": "b1ac3f04-c67f-445f-b06c-fb722736ccc6","count": 1},{ "name": "workers", "node_group_template_id": "dbc6147e-4020-4695-8b5d-04f2efa978c5", "count": 1-}]}

以上例子中,名為demo-cluster-template的集群模板定義的集群由兩個節點組和3個節點構成。其中,名為master的節點組有1個節點,名為workers的節點組有兩個節點。master節點組和workers節點組中的節點,則分別由這兩個節點組的節點組模板負責定義。

6)任務(job):用於表示一個EDP數據處理任務,本質上是一個Oozie工作流,而不是一個簡單的Hadoop job。

Sahara有兩種使用模式:

·基本的大數據集群應用模式(簡稱基本模式)。

·通過EDP(Elastic Data Processing)機制引入的分析即服務模式(簡稱EDP模式)。

在基本模式下,使用Sahara的方式非常直接。OpenStack用戶按照需求自行創建基於虛擬機的Hadoop集群,然後像使用普通Hadoop集群一樣,登錄JobTracker節點進行使用即可。在基本模式下,用戶需要瞭解在OpenStack上通過Sahara創建和管理Hadoop集群的工作流程,同時還需要知道如何使用Hadoop集群。

基本模式下使用Sahara的操作流程大致如下:

1安裝Sahara:例如使用最簡單的RDO方式。

2設置Keystone端點。

3向Glance上傳鏡像,如果使用vanilla Apache Hadoop,則要求鏡像中包含預裝的Hadoop服務。

4向Sahara註冊上傳的鏡像。

5創建各個節點組模板。

6選定節點組模板,創建集群模板。

7選定集群模板,創建Hadoop集群。

8登錄Hadoop集群,並進行使用。

很明顯,基本模式提高了用戶使用大數據服務的技術門檻。

相比而言,EDP模式有效地解決了這個問題。在EDP模式下,Sahara對底層的Hadoop集群操作和Hadoop業務操作進行了封裝,暴露給用戶的只有非常簡單的接口。在EDP模式下,用戶只需指定「數據存放位置」「數據處理程序」和「執行此次處理任務的Hadoop集群」3個要素,即可實現大數據處理操作。此外,為支持EDP模式Sahara還擴展了Horizon,提供了相關圖形操作界面,實現了click-and-play。EDP模式大大降低了大數據服務的應用難度,具備了近似AWS EMR服務的能力。