在大數據虛擬化基礎運維第五步創建Hadoop集羣開始之前,我想先說明,這裏我不通過BDE提供的可視化界面來創建集羣。原因是,我們之前部署好的vApp包括BDE管理服務器,是通過虛機的方式在運行。此時,它還沒能跟vSphereWeb Client進行綁定,從而暫時無法交付可視化管理界面。在之後的博客文章裏,我將介紹如何交付可視化界面。
但大家不要擔心,BDE管理服務器自身已經提供了完備的對外服務接口(RestAPI),用戶只需通過命令行(CLI)的方法操控它,就能開始對Hadoop集羣進行快速部署和管理。下圖說明了CLI與RestAPI的關係。
我們已經通過之前發佈的基礎運維繫列博客文章部署好了BDE管理服務器。現在,就使用CLI創建第一個Hadoop集羣吧!具體步驟如下:
1.SSH登錄BDE管理服務器的虛擬機 Console
在第一次登錄服務器虛擬機時,屏幕上方會提供初始密碼。登錄成功後,爲了確保安全性,請務必通過腳本更改初始密碼。
更改密碼的腳本:
sudo/opt/serengeti/sbin/set-password –u
如下圖所示:
2.服務器端運行CLI
在Console命令行中直接輸入Serengeti,就可以進入SerengetiCLI 程序。SerengetiCLI提供了豐富的集羣管理相關命令行和幫助體驗。如下圖所示:
3.連接Serengeti服務
connect --host<serengeti-mgnt-server’s ip>:port
這裏默認的端口號是8080,然後可根據提示輸入用戶名和密碼,進行連接。連接成功後會出現命令行提示。如下圖所示:
BDE 1.0中,端口號改成了8443,敬請注意。
4.快速創建Apache Hadoop Cluster
由於在安裝時勾選了InitializeResources,BDE管理服務器自動初始化了虛擬化環境下的可見資源,其中包括:資源池、存儲和網絡。我們可以分別輸入以下命令行對這三種資源進行確認。如下圖所示:
resourcepool list
datastore list
network list
正常情況下,這三種資源都可以分配到位。也就是說,現在我們已經可以創建第一個Hadoop集羣了。
在這裏,我要提出一個問題:我們現在要創建什麼樣的集羣?
對於某一個Hadoop發行版本來講,這個問題的答案其實很簡單:創建發行版的Hadoop集羣。比如,對於Cloudera的發行版,能夠創建的Hadoop集羣就是基於CDH4的Hadoop;對於Pivotal的發行版,只能創建基於PivotalHD的Hadoop。而對於BDE來說,這個問題變成了一個選擇題。因爲BDE支持多個主流的Hadoop發行版,包括Cloudera、Pivotal、MapR、Hortonworks以及社區的ApacheHadoop。由於在剛剛部署好的BDE管理服務器上已經內置了ApacheHadoop,而其他發行版尚沒有上傳到服務器,所以爲了推進下面的步驟,我們現在可以先創建一個ApacheHadoop集羣。在之後的博客文章裏,我會介紹如何創建一個Hadoop商業發行版的集羣。
創建ApacheHadoop集羣,只需一個命令行即可:
cluster create --name helloworld
cluster create是CLI的命令,它的意思是創建Hadoop集羣。
name是Clustercreate命令的一個必帶參數,意義在於給這個集羣一個名字。那麼,在這裏我就命名helloworld爲實際所提供的集羣名稱。
集羣在創建過程中,屏幕會不斷提示當前的狀態。我們需要等待10分鐘,集羣便會創建成功。如下圖所示:
5.完成創建並驗證集羣
進入vSphereClient,我們可以看到一個以helloworld爲後綴的新資源池被創建出來。在這個資源池下,有client、worker和master子資源池,且擁有不同數量的虛機正在運行中。如下圖所示:
這就是一個Hadoop集羣了。它擁有1個主節點和3個工作節點,並且提供了HadoopClient節點。
主節點即master節點。它運行着Namenode、Jobtracker等主服務。Namenode總體負責客戶端數據請求,管理HDFS數據和所有數據節點(datanodes)。Jobtracker總體負責客戶端作業請求,管理任務節點(tasktrackers),並向它們分配工作任務。值得注意的是,Namenode和Jobtracker在整個集羣各只有一個實例。
工作節點即worker節點。每個工作節點運行着datanode、tasktracker等服務,負責接收主節點的數據塊和具體任務,確保計算任務的完成。
client節點包含了Hadoop客戶端的一些組件。用戶可以很方便的訪問HDFS,提交MapReduce作業,運行Pig腳本,或Hive查詢等。
爲了驗證這個剛剛創建好的集羣,我們需要查看HDFS和MapReduce的運行狀況。
首先取得Namdenode和Jobtracker所在的主節點的IP地址:
cluster list --name helloworld --detail
cluster list是查詢集羣信息的命令。
name是給定具體名稱,意思是查詢給定名稱的集羣。
detail是希望提供集羣的具體信息。
通過屏幕打印的結果,可以取得主節點的IP地址。
簡單看一下HDFS和MapReduce是否運行,打開相關的狀態頁面。
打開HDFS狀態頁面:http://<ip_of_name_node>:50070/。如下圖所示:
再打開MapReduce狀態頁面:http://<ip_of_jobtracker_node>:50030。如下圖所示:
它們都運行正常!Hadoop集羣創建成功!
到這裏,我想可以總結一下,在大數據的虛擬化之路上,我們已經完成了哪些里程碑?
成功部署vSphere Big Data Extensions 1.0beta 版vApp到一個vSphere環境中
通過CLI(命令行方式)完成第一個Hadoop集羣的創建
訪問HDFS和MapReduce的狀態頁面,驗證集羣創建成功
在之後的博客文章中,我會介紹如何交付BDE的UI,並通過可視化界面快速創建一個Hadoop集羣。
如有任何問題,您可以發郵件至[email protected]。
關於vSphereBig Data Extensions:
VMwarevSphere Big Data Extensions(簡稱BDE)基於vSphere平臺支持大數據和Apache Hadoop作業。BDE以開源Serengeti項目爲基礎,爲企業級用戶提供一系列整合的管理工具,通過在vSphere上虛擬化Apache Hadoop,幫助用戶在基礎設施上實現靈活、彈性、安全和快捷的大數據部署、運行和管理工作。瞭解更多關於VMware vSphere Big Data Extensions的信息,請參見http://www.vmware.com/hadoop。
作者簡介:
VMware大數據解決方案項目經理
目前負責VMware大數據解決方案的管理和市場工作。曾擔任VMware數據庫管理產品vFabric Data Director產品經理,對虛擬化、雲計算、關係型數據庫和大數據等企業產品、技術方案和市場有深入的理解和實戰經驗。在此之前,就職於Microsoft從事分佈式系統的產品管理和研發工作。