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

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

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

發(fā)布時間: 1

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

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

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

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

  1 Hadoop基本原理

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

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

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

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

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

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

  2 基于Hadoop的云計算平臺

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

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

  fs.default.name

  hdfs://localhost:9000

  hadoop.tmp.dir

  /tmp/hadoop-root

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

  mapred.job.tracker

  http://localhost:9001

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

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


轉(zhuǎn)載請注明來自:http://www.jinnzone.com/jisuanjiwangluolw/43751.html