精品人妻无码一区二区三区软件 ,麻豆亚洲AV成人无码久久精品,成人欧美一区二区三区视频,免费av毛片不卡无码

您現(xiàn)在的位置是:首頁(yè)計(jì)算機(jī)網(wǎng)絡(luò)論文

網(wǎng)絡(luò)工程師職稱論文Hadoop云計(jì)算平臺(tái)的研究及實(shí)現(xiàn)

發(fā)布時(shí)間:2014-08-29 15:38:30更新時(shí)間:2014-08-29 15:39:54 1

  在大數(shù)據(jù)時(shí)代,數(shù)據(jù)動(dòng)輒以T級(jí)計(jì)算,傳統(tǒng)的集群技術(shù)已經(jīng)難以存儲(chǔ)、分析并處理如此大量的數(shù)據(jù)。為了提高集群系統(tǒng)中硬件資源的利用率,分布式文件系統(tǒng)得到了廣泛的應(yīng)用。Google公司先后提出了BigTable、GPFS以及MapReduce等分布式技術(shù),為處理海量數(shù)據(jù)提供了寶貴的經(jīng)驗(yàn);Hadoop分布式系統(tǒng)框架也應(yīng)運(yùn)而生,并在日志分析、商業(yè)數(shù)據(jù)分析等領(lǐng)域得到廣泛應(yīng)用。

  摘 要 隨著電子商務(wù)的興起,傳統(tǒng)的服務(wù)器集群技術(shù)在處理大數(shù)據(jù)時(shí)越來(lái)越顯得力不從心。Hadoop是一種開源的云計(jì)算技術(shù),包含HDFS文件系統(tǒng)及 MapReduce編程模型兩大核心,在處理海量數(shù)據(jù)、數(shù)據(jù)挖掘、電商推薦系統(tǒng)等領(lǐng)域有其獨(dú)到的優(yōu)勢(shì)。文章介紹了Hadoop的基本原理,實(shí)現(xiàn)了搭建了 Hadoop集群,從而實(shí)現(xiàn)了一個(gè)基于Hadoop的云計(jì)算平臺(tái)。

  關(guān)鍵詞 網(wǎng)絡(luò)工程師職稱論文,Hadoop,云計(jì)算,HDFS

  目前Hadoop集群應(yīng)用最為成熟的是Yahoo公司,在其生產(chǎn)環(huán)境Hadoop集群中有超過4000臺(tái)節(jié)點(diǎn),對(duì)其業(yè)務(wù)運(yùn)營(yíng)、客戶關(guān)系分析等有著重要的現(xiàn)實(shí)意義。Hadoop開源項(xiàng)目誕生以來(lái),國(guó)內(nèi)的研究開始較晚,加之國(guó)內(nèi)多數(shù)研究機(jī)構(gòu)、廠商等的謹(jǐn)慎保守態(tài)度,Hadoop生態(tài)系統(tǒng)在云計(jì)算領(lǐng)域的應(yīng)用進(jìn)展一直比較緩慢。Hadoop技術(shù)在國(guó)外如火如荼的發(fā)展表明,深入研究Hadoop技術(shù)的基本原理,實(shí)現(xiàn)一個(gè)基于Hadoop的云計(jì)算平臺(tái),有著重要的現(xiàn)實(shí)意義。

  1 Hadoop基本原理

  作為一種開源的分布式云計(jì)算技術(shù),Hadoop能夠在廉價(jià)的服務(wù)器上創(chuàng)建集群,實(shí)現(xiàn)集群的橫向擴(kuò)展。Hadoop集群主要包括兩大核心:HDFS分布式文件系統(tǒng)和MapReduce計(jì)算框架。從Yahoo公司的Hadoop平臺(tái)運(yùn)行情況可以得知,Hadoop平臺(tái)有如下優(yōu)勢(shì):1)集群中的節(jié)點(diǎn)可以是廉價(jià)的商用機(jī)器,這些大量的機(jī)器組成的集群能夠可靠地處理大規(guī)模數(shù)據(jù)文件;2)多個(gè)數(shù)據(jù)節(jié)點(diǎn)上可以并行處理同一個(gè)任務(wù),具有高并發(fā)性,有效提高了工作處理周期;3)默認(rèn)情況下,Hadoop集群中的數(shù)據(jù)塊會(huì)有三個(gè)副本,這種備份機(jī)制提高了業(yè)務(wù)數(shù)據(jù)的冗余性,即使集群中的某一服務(wù)器發(fā)生故障,也不會(huì)造成數(shù)據(jù)丟失的情況。

  Hadoop集群在處理數(shù)據(jù)時(shí),客戶程序利用標(biāo)準(zhǔn)API將文件寫入到HDFS分布式文件系統(tǒng)上,接下來(lái)借助MapReduce計(jì)算框架進(jìn)行分布式計(jì)算得到結(jié)果。組成HDFS的節(jié)點(diǎn)按照功能主要分為三類:NameNode節(jié)點(diǎn)、DataNode節(jié)點(diǎn)以及Client節(jié)點(diǎn)。 NameNode是HDFS文件系統(tǒng)的主節(jié)點(diǎn),它保存了HDFS文件系統(tǒng)中的元數(shù)據(jù),管理著集群中目錄及文件的分配,是整個(gè)文件系統(tǒng)的核心;DataNode節(jié)點(diǎn)存儲(chǔ)了真正的業(yè)務(wù)數(shù)據(jù),hadoop集群中的文件被分為多個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊根據(jù)配置可以在多個(gè)DataNode節(jié)點(diǎn)上存儲(chǔ)若干副本;與其他分布式文件系統(tǒng)一樣,HDFS文件系統(tǒng)采用的也是主從架構(gòu):一個(gè)單一的NameNode節(jié)點(diǎn)作為HDFS文件系統(tǒng)的主節(jié)點(diǎn),若干數(shù)量的 DataNode節(jié)點(diǎn)是從節(jié)點(diǎn)。NameNode 節(jié)點(diǎn)的內(nèi)存中存儲(chǔ)了整個(gè)HDFS文件系統(tǒng)的元數(shù)據(jù),同時(shí)處理客戶端的文件訪問請(qǐng)求,并且與 DataNode節(jié)點(diǎn)進(jìn)行通信;DataNode 節(jié)點(diǎn)采用心跳機(jī)制定時(shí)和NameNode節(jié)點(diǎn)進(jìn)行通信,以此保證整個(gè)集群運(yùn)行正常。NameNode節(jié)點(diǎn)在接收到Client的文件讀寫請(qǐng)求后,根據(jù)客戶端請(qǐng)求的數(shù)據(jù)塊和DataNode節(jié)點(diǎn)間的映射關(guān)系,通知存儲(chǔ)了客戶端請(qǐng)求數(shù)據(jù)塊的DataNode,此DataNode節(jié)點(diǎn)響應(yīng)并處理Client發(fā)起的文件讀寫請(qǐng)求,對(duì)數(shù)據(jù)塊塊進(jìn)行讀、寫等操作。

  在使用HDFS文件系統(tǒng)的過程中,有幾個(gè)問題需要注意:1)HDFS文件系統(tǒng)在讀取文件時(shí)需要流式讀取。HDFS之所以具有較高的性能,就是因?yàn)樗艞壛穗S機(jī)讀取文件的特性,所以讀取文件時(shí)必須流式讀取;2)Hadoop并不支持對(duì)關(guān)閉的文件進(jìn)行更新,所以HDFS文件系統(tǒng)中的數(shù)據(jù)操作適合“一次寫入、多次讀取”的情況,另外,HDFS中適合存儲(chǔ)少量的大文件,而不適合存儲(chǔ)海量小文件。

  MapReduce計(jì)算模型包括“Map(映射)”和“Reduce(化簡(jiǎn))”兩部分,可以用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。MapReduce 計(jì)算模型把主要功能都在Map函數(shù)及Reduce函數(shù)內(nèi)實(shí)現(xiàn),編寫并行程序的開發(fā)人員無(wú)需了解系統(tǒng)運(yùn)作的底層原理即可迅速完成開發(fā)工作。 MapReduce的數(shù)據(jù)處理主要包括map階段和reduce階段:map階段將輸入數(shù)據(jù)分為多個(gè)分片,并將一行行的輸入轉(zhuǎn)換為key-value形式;DataNode節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)塊對(duì)應(yīng)一個(gè)map。reduce階段歸納map階段的輸出,并合并具有相同key值的value。 MapReduce處理數(shù)據(jù)的流程如圖1所示。

  圖1 MapReduce處理數(shù)據(jù)的流程

  類似HDFS文件系統(tǒng)中的 NameNode和DataNode的主從結(jié)構(gòu)那樣,MapReduce計(jì)算模型也是由JobTracker和TaskTracker組成的主從結(jié)構(gòu)構(gòu)成。其中JobTracker運(yùn)行在NameNode節(jié)點(diǎn)上,而TaskTracker運(yùn)行在DataNode節(jié)點(diǎn)上。當(dāng)Client有作業(yè)要完成時(shí),JobTracker會(huì)先把此作業(yè)放到內(nèi)部的作業(yè)隊(duì)列中,在進(jìn)行初始化后,交給作業(yè)調(diào)度器進(jìn)行調(diào)度,作業(yè)調(diào)度器會(huì)先將任務(wù)進(jìn)行分片,然后為每一個(gè)分片創(chuàng)建一個(gè)map任務(wù)。為了并行地處理大規(guī)模數(shù)據(jù),MapReduce計(jì)算模型將比較大的任務(wù)分解為多個(gè)小任務(wù),不在執(zhí)行任務(wù)的各個(gè)組件間共享數(shù)據(jù),從而可以方便地將各個(gè)子任務(wù)擴(kuò)展到大規(guī)模的集群中。

  2 基于Hadoop的云計(jì)算平臺(tái)

  Hadoop環(huán)境包括三種:?jiǎn)螜C(jī)版、偽分布集群以及完全分布環(huán)境。Hadoop單機(jī)版一般用于開發(fā)測(cè)試,Hadoop偽分布集群是在一臺(tái)服務(wù)器上模擬分布式開發(fā)環(huán)境,Hadoop分布式環(huán)境才真正適用于云計(jì)算平臺(tái)。接下來(lái)本文將實(shí)現(xiàn)一個(gè)Hadoop云計(jì)算平臺(tái)。   首先,要在所有Hadoop集群的節(jié)點(diǎn)上安裝必須的軟件,包括JDK以及SSH。Hadoop源碼的編譯以及mapreduce任務(wù)的運(yùn)行都離不開 JDK,所以必須按照J(rèn)DK;安裝完畢后,要在用戶的.bash_profile文件中配置環(huán)境變量JAVA_HOME以及PATH,并執(zhí)行source .bash_profile命令以使環(huán)境變量生效。另外,hadoop 需要利用ssh互信來(lái)啟動(dòng)各個(gè)slave主機(jī)的守護(hù)進(jìn)程。

  安裝 Hadoop集群時(shí),需要將在一臺(tái)機(jī)器上配置好的安裝包拷貝到集群內(nèi)的所有機(jī)器上。需要在集群中選定一臺(tái)機(jī)器充當(dāng)NameNode以及 JobTracker,當(dāng)集群內(nèi)節(jié)點(diǎn)數(shù)目比較多的時(shí)候,這兩者可以部署在兩臺(tái)機(jī)器上,它們是主從架構(gòu)中的master。集群中其他的節(jié)點(diǎn)作為 DataNode和TaskTracker,它們是主從架構(gòu)中的slave。為了使Hadoop集群在運(yùn)行時(shí)可以找到正確的JDK路徑,需要在安裝目錄 conf下的配置文件hadoop-env.sh中配置JDK的路徑。配置文件core-site.xml中存放了Hadoop集群的元數(shù)據(jù)以及臨時(shí)數(shù)據(jù)的存放路徑,需要配置fs.default.name及兩個(gè)Hadoop.tmp.dir參數(shù);hadoop.tmp.dir參數(shù)配置的目錄存放了 HDFS文件系統(tǒng)中文件的存放位置,${hadoop.tmp.dir}/dfs/name目錄存放namenode的名字空間,${hadoop.tmp.dir}/dfs/data目錄存放了各個(gè)datanode節(jié)點(diǎn)的數(shù)據(jù)塊。fs.default.name配置 namenode所在的主機(jī)和端口號(hào),具體的配置如下所示:

  fs.default.name

  hdfs://localhost:9000

  hadoop.tmp.dir

  /tmp/hadoop-root

  配置好core-site.xml后,還需要指定數(shù)據(jù)塊的副本個(gè)數(shù),這是通過修改hdfs-site.xml實(shí)現(xiàn)的,將配置參數(shù) dfs.replication的值設(shè)置為副本個(gè)數(shù),默認(rèn)值為3。為了使MapReduce任務(wù)能夠正確運(yùn)行,還需要配置JobTracker的相關(guān)信息,這需要修改mapred-site.xml文件:

  mapred.job.tracker

  http://localhost:9001

  Hadoop集群中的各個(gè)節(jié)點(diǎn)需要知道哪個(gè)節(jié)點(diǎn)是master節(jié)點(diǎn),哪些節(jié)點(diǎn)是slave節(jié)點(diǎn),這需要配置masters和slaves兩個(gè)配置文件,masters指明主節(jié)點(diǎn),slaves中配置所有的從節(jié)點(diǎn)。

  所有的配置文件修改好之后,將整個(gè)Hadoop的安裝目錄全部拷貝到Hadoop集群內(nèi)所有其他節(jié)點(diǎn)上,這樣就完成了Hadoop集群的初步配置。此時(shí)在主節(jié)點(diǎn)的命令行上輸入Hadoop命令后,會(huì)出現(xiàn)Hadoop命令的幫助信息,說明Hadoop集群已經(jīng)安裝成功。在使用Hadoop集群前,需要先啟動(dòng)HDFS文件系統(tǒng)和Map/Reduce集群。格式化文件系統(tǒng)的命令為Hadoop namenode


轉(zhuǎn)載請(qǐng)注明來(lái)自:http://www.jinnzone.com/jisuanjiwangluolw/43751.html