摘 要 隨著大數(shù)據(jù)應(yīng)用的如火如荼,各種大數(shù)據(jù)技術(shù)業(yè)層出不窮,其中以Hadoop技術(shù)為核心的大數(shù)據(jù)存儲和計算解決方案受到越來越廣泛的好評,成功案例也越來越多。在這種背景下,本文介紹了Hadoop的核心架構(gòu)并用實驗的方式對Hadoop集群的部署給出了設(shè)計方案。
【關(guān)鍵詞】Hadoop 架構(gòu) 集群部署
Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),其前身為本世紀(jì)初Apache研發(fā)出的Nutch。簡單來說,Hadoop就是一個搜索引擎,其可以為人們的各種搜索需要提供與之相對應(yīng)的搜索工具,而谷歌公司發(fā)表的關(guān)于谷歌文件系統(tǒng)的論文,則是谷歌公司首次向世人展示了這一集數(shù)據(jù)搜索功能、數(shù)據(jù)存儲功能等于一身的專用文件系統(tǒng)。Nutch創(chuàng)始人緊隨其后,通過學(xué)習(xí)和借鑒谷歌公司發(fā)布的技術(shù)論文,重新開發(fā)出了分布式文件系統(tǒng),并將其命名為NDFS。此舉則使得Google在該領(lǐng)域加大了研究力度,其在隨后發(fā)表的MapReduce即編程模型論文當(dāng)中,展示了該模型強大的分析和運算能力,其可以同時完成超過1TB的數(shù)據(jù)集分析與運算。次年,Nutch創(chuàng)始人以MapReduce為基礎(chǔ),依托Nutch搜索引擎,同樣實現(xiàn)了大容量數(shù)據(jù)集的分析和運算。直到2006年雅虎公司聘用Nutch創(chuàng)始人,使得NDFS以及MapReduce被正式統(tǒng)一命名為Hadoop。
1 Hadoop核心技術(shù)架構(gòu)
Hadoop作為分布式文件系統(tǒng)的一種,除了具備強大的存儲功能之外,其通過大量計算設(shè)備,使得系統(tǒng)可以在大型集群上完成分布式應(yīng)用的有效執(zhí)行。事實上,在Hadoop的當(dāng)中,HDFS和MapReduce占據(jù)著最為重要的地位,但其只是一種基礎(chǔ)理論,缺乏足夠的應(yīng)用性。
1.1 HDFS文件系統(tǒng)
HDFS文件系統(tǒng)具有高容錯性,適用于價格較為低廉的機器,而其提供的數(shù)據(jù)訪問具備較高的吞吐量,因此對于大型數(shù)據(jù)集的應(yīng)用程序而言無疑是一利好消息。
在 Hadoop軟件框架當(dāng)中,HDFS雖然身處最底層,但是其傳輸和容錯較高的特性使其能夠輕松完成全部存儲節(jié)點文件的存儲工作,在對文件系統(tǒng)數(shù)據(jù)進行訪問時,也支持流形式,使得管理大量信息數(shù)據(jù)的工作變得更加輕松和高效,如圖1所示,管理者、工作者是組成Hadoop集群最為關(guān)鍵的兩大部分(如圖1)。
1.2 MapReduce軟件框架
在Hadoop當(dāng)中,分布式處理機制(MapReduce)是其十分重要的一項技術(shù)。其組成要素分別JobTracker 和TaskTracker,前者為 Hadoop集群當(dāng)中獨一無二的應(yīng)用程序,負(fù)責(zé)啟動并控制單個主系統(tǒng)上與之相對應(yīng)的對象,提交應(yīng)用程序后將負(fù)責(zé)直接提供輸入目錄、輸出目錄。TaskTracker的數(shù)量眾多,其充當(dāng)著執(zhí)行者的身份,在執(zhí)行完JobTracker各項命令后會直接向其反饋本地節(jié)點狀態(tài)。
MapReduce會采用分化的方式,將原本十分龐大的數(shù)據(jù)分析劃分成若干個小塊,在對每一個小塊進行分析之后將最終獲得的數(shù)據(jù)進行匯總,進而得到最終的分析結(jié)果。而Hadoop出現(xiàn)使得人們通過編寫極為簡單的需求命令,便可以完成相關(guān)數(shù)據(jù)的有效獲取。
2 Hadoop集群部署
2.1 安裝環(huán)境準(zhǔn)備
2.1.1 硬件環(huán)境準(zhǔn)備
我們的集群部署環(huán)境選擇四臺PC服務(wù)器,每臺服務(wù)器裝有紅帽LINUX操作系統(tǒng),并配有8GB 內(nèi)存和40GB 的存儲。通過局域網(wǎng)實現(xiàn)四臺服務(wù)器之間的互聯(lián), 其中主節(jié)點一臺 ,從節(jié)點共有三臺。在每一臺服務(wù)器上都需要完成 Hadoop 用戶的建立,由此完成所有 Hadoop操作。
注意Hadoop 是用 Java 語言開發(fā)的分布式計算框架,所以每臺服務(wù)器需要安裝JDK。
另外,Hadoop 集群在運行時需要通過 ssh免密碼服務(wù)來進行通信。
2.1.2 配置 Hadoop 文件
考慮到Hadoop 擁有不同的版本,本文最終選擇使用具有較好穩(wěn)定性的 Hadoop 2.2.0。 在將安裝文件下載并保存至主節(jié)點之后,在相關(guān)目錄下配置 Hadoop 文件。其配置過程如下所示:
(1) 對從節(jié)點進行配置。在將文件打開之后將 slave1,slave2,slave3加入其中。
(2) 配置hadoop環(huán)境變量腳本Hadoop-env.sh。修改 JAVA_HOME值: export JAVA_HOME = /usr/local/java/jdk1.8.0_25
(3)對yarn環(huán)境變量腳本yarn-env.sh進行配置。將JAVAHOME值修改為xport JAVA_HOME=/usr/local/java/jdk1.8.0_25
(4)對目錄當(dāng)中的xml 文件(共計四個)進行修改。
最后,將 Hadoop 文件通過 scp 命令發(fā)送到各個從結(jié)點。這樣,就完成了 Hadoop 集群的部署。
3 結(jié)語
Hadoop是一種主流的大數(shù)據(jù)技術(shù),本文通過對 Hadoop及其關(guān)鍵技術(shù)進行簡要分析研究,分別從理論和實踐兩個角度,對 Hadoop技術(shù)進行全面展示,這證明其具有強大的信息數(shù)據(jù)存儲、分析和處理能力。
參考文獻
[1]TomWhite.Hadoop權(quán)威指南(2版)[M].北京:清華大學(xué)出版社,2011:15-73,167-188.
[2]TomWhite.HadoopTheDefinitiveGuide2ndEdition[M].Oreilly,2010:41-73,167-188.
[3]JasonVenner.ProHadoop[M].Apress,2009:27-53.
作者簡介
韓?。?982-),男,北京市人。碩士研究生。工程師。研究方向為大數(shù)據(jù)和數(shù)據(jù)挖掘。
作者單位
中國民生銀行總行 北京市 100031endprint