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