秦杰儀,曾 志, 孫 蕾,鄧昭宇
(湖南師范大學(xué), 湖南 長沙 410081)
自2008年{Nature}發(fā)表有關(guān)大數(shù)據(jù)(Big Data)的專刊以來,大數(shù)據(jù)的處理和分析已經(jīng)成為人們關(guān)注的焦點(diǎn)。大數(shù)據(jù)具有四個特點(diǎn):多樣化(Variety),海量性(Volume),快速性(Velocity)和靈活性(Vi-tality)。這四個特點(diǎn)要求我們對當(dāng)前分布式架構(gòu)的理念做出新的理解,在數(shù)據(jù)處理和數(shù)據(jù)整合上使用新的方法。Hadoop就是在此環(huán)境下成功應(yīng)用于大數(shù)據(jù)處理和分析的一個分布式架構(gòu)平臺,它具有方便、健壯性、可擴(kuò)展性、搭建對硬件要求較低等優(yōu)點(diǎn),在大數(shù)據(jù)領(lǐng)域內(nèi)的分布式處理上占有較大的優(yōu)勢。
Hadoop是Apache基金會下的一款開源軟件,它實(shí)現(xiàn)了包括分布式文件系統(tǒng)和MapReduce框架在內(nèi)的云計(jì)算軟件平臺的基礎(chǔ)架構(gòu),并且在此基礎(chǔ)架構(gòu)上整合了包括數(shù)據(jù)庫、云計(jì)算管理、數(shù)據(jù)倉儲等一系列平臺,是工業(yè)界和學(xué)術(shù)界進(jìn)行云計(jì)算應(yīng)用和研究的標(biāo)準(zhǔn)平臺。它的兩個核心組成部分為HDFS和 MapReduce。Hadoop使用Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS),其特點(diǎn)有以多節(jié)點(diǎn)協(xié)同代替單節(jié)點(diǎn)能力提升、處理超大文件及運(yùn)行于廉價的商用機(jī)器集群上。使用MapReduce實(shí)現(xiàn)對任務(wù)的并行處理功能,其特點(diǎn)是將計(jì)算與數(shù)據(jù)結(jié)合得更緊密、并使數(shù)據(jù)處理架構(gòu)具有平滑的可擴(kuò)展性。
如圖1在分布式存儲和分布式計(jì)算方面,Hadoop都使用了主/從(Master/Slave)架構(gòu)。Hadoop集群有5 個構(gòu)造模塊 NameNode、DataNode、Secondary NameNode、JobTracker、TaskTracker組成。其中 NameN-ode、Secondary NameNode、JobTracker運(yùn)行在 Master節(jié)點(diǎn)上,而DataNode、TaskTracker運(yùn)行在每個Slave節(jié)點(diǎn)上,以便Slave服務(wù)器運(yùn)行的數(shù)據(jù)處理程序能夠盡可能直接處理本機(jī)的數(shù)據(jù)。對Master節(jié)點(diǎn)需要特別說明的是,在小集群中,Secondary NameNode可以屬于某個節(jié)點(diǎn);在大型集群中,NameNode和Secondary NameNode被分別部署在兩臺服務(wù)器上。

圖1 Hadoop集群節(jié)點(diǎn)示意圖
首先在主機(jī)中下載并安裝虛擬機(jī)VMware,新建4臺虛擬機(jī)并安裝CentOS系統(tǒng),服務(wù)器4臺(一臺為Master節(jié)點(diǎn),三臺為Slave節(jié)點(diǎn))
1)以root身份登錄KVM-Master服務(wù)器,添加一個hadoop用戶。


1)配置集群主機(jī)Hosts。


2)配置 SSH。

3)配置集群各主機(jī)間無密碼訪問。

4)安裝主機(jī)和從機(jī)的hadoop環(huán)境。

5)格式化HDSF文件系統(tǒng)。

6)啟動HDSF文件管理系統(tǒng)與MapReduce
解壓安裝源碼包并重命名。

主機(jī)Inter VT-x處于禁用中,需要進(jìn)入主機(jī)的BIOS設(shè)置中允許虛擬化。
使用start-dfs.sh和start-all.sh啟動Hadoop時出錯:Error:JAVA_HOME is not set.#找不到JAVA_HOME。
此時應(yīng)檢查/usr/hadoop/conf/hadoop-env.sh文件中#export JAVA_HOME=的語句中JAVA_HOME的預(yù)設(shè)路徑是否與實(shí)際安裝路徑相同;并去除該句注釋’#’。
檢查Master的/root/.ssh/authorized_keys中是否含有所有Slave節(jié)點(diǎn)的公鑰。
在安裝配置完hadoop后,執(zhí)行startdfs.sh啟動hadoop,執(zhí)行jps,發(fā)現(xiàn)NameNode啟動起來了,而DataNode進(jìn)程卻沒有啟動起來。這種問題一般是由于多次格式化NameNode引起的,這個時候可以查看namenode和datanode的clusterID,如果datanode的clusterID和namenode的clusterID不一致,那么就將datanode中的clusterID修改成na?menode中的clusterID,再重新啟動hadoop。
遇到問題最好的辦法就是去查看相應(yīng)的log文件,然后找到問題所在,有針對的解決,需要注意的是,每一次的啟動日志都是追加在日志文件之后,所以需要拉到文件的最后界面進(jìn)行查看。
Hadoop架構(gòu)平臺是大數(shù)據(jù)技術(shù)中極為重要的一種分布式平臺,本文對Hadoop核心組成部分的技術(shù)原理進(jìn)行了簡要地說明,并對hadoop的完全分布式環(huán)境進(jìn)行了搭建,這為日后的大數(shù)據(jù)的研究、處理等工作提供了一個很好的平臺基礎(chǔ),下一步我們的研究重心將是對相關(guān)的算法進(jìn)行深入的學(xué)習(xí)和優(yōu)化,并將算法應(yīng)用到hadoop平臺上,實(shí)現(xiàn)其并行化的運(yùn)行。
[1]安俊秀,王鵬.Hadoop大數(shù)據(jù)處理技術(shù)基礎(chǔ)與實(shí)踐[M].北京:人民郵電出版社,2015.
[2]Eric Sammer.Hadoop技術(shù)詳解[M].北京:人民郵電出版社,2013.
[3]陳琳.淺論Hadoop平臺在大數(shù)據(jù)中的應(yīng)用[J].太原學(xué)院學(xué)報(bào),2017,35(3):56-59.
[4]任建新.基于Hadoop平臺的大數(shù)據(jù)應(yīng)用系統(tǒng)架構(gòu)的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2014.