方小龍
摘要:Hadoop作為一個(gè)開(kāi)源分布式計(jì)算平臺(tái),具有高容錯(cuò)性和伸縮性等特點(diǎn),允許用戶將Hadoop放置在PC上,利用集群的計(jì)算和存儲(chǔ)能力,對(duì)海量的信息進(jìn)行處理。該文結(jié)合企業(yè)不斷增長(zhǎng)的業(yè)務(wù)數(shù)據(jù),而現(xiàn)有業(yè)務(wù)數(shù)據(jù)處理能力不足的現(xiàn)狀,構(gòu)建Hadoop分布式數(shù)據(jù)處理平臺(tái),為企業(yè)的發(fā)展提供良好的技術(shù)支撐。
關(guān)鍵詞:Hadoop;企業(yè);云存儲(chǔ);技術(shù)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)04-0079-01
隨著企業(yè)的不斷發(fā)展,業(yè)務(wù)量的增長(zhǎng),一些業(yè)務(wù)數(shù)據(jù)也出現(xiàn)了爆炸性的增長(zhǎng),并且對(duì)數(shù)據(jù)訪問(wèn)的速度和寬帶提出了更高的要求。企業(yè)現(xiàn)有的數(shù)據(jù)處理系統(tǒng)拓展能力差,數(shù)據(jù)的訪問(wèn)效率低下,因此難以滿足企業(yè)逐漸增長(zhǎng)的業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)需求。因此為了滿足企業(yè)的發(fā)展要求,基于Hadoop技術(shù)為企業(yè)構(gòu)建一種高效、低成本的存儲(chǔ)平臺(tái),幫助企業(yè)在發(fā)展中滿足業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)需求。
1 Hadoop概況和基本構(gòu)架
Hadoop是一種開(kāi)源分布式的計(jì)算機(jī)平臺(tái),利用HDFS和MapReduce作為系統(tǒng)的支撐中心,在運(yùn)行的過(guò)程中給用戶提供最底層的透明的、細(xì)化的分布式結(jié)構(gòu)框架。HDFS在用戶使用的過(guò)程中發(fā)揮著高容錯(cuò)性和伸縮性的特點(diǎn),并且能夠?qū)adoop在不同的硬件上使用,組建成不同的構(gòu)架用于云存儲(chǔ)。MapReduce是一種分布式變成模型,用戶在使用過(guò)程中對(duì)底層的系統(tǒng)的細(xì)節(jié)和構(gòu)架不清楚,因此在程序的開(kāi)發(fā)中便于正確的使用,可以利用Hadoop對(duì)計(jì)算機(jī)中的資源進(jìn)行統(tǒng)一的整理,在搭建平臺(tái)的過(guò)程中給平臺(tái)提供分布式的構(gòu)架。例如在2008年Yahoo應(yīng)用了Hadoop,并且運(yùn)用的規(guī)模龐大,在上萬(wàn)個(gè)節(jié)點(diǎn)上實(shí)現(xiàn)對(duì)Hadoop網(wǎng)頁(yè)上的信息進(jìn)行處理,在運(yùn)行過(guò)程中給用戶提供了很多便利的服務(wù)。
Hadoop包括很多項(xiàng)目的集合,其中HDFS和MapReduce為核心的內(nèi)容,但Hadoop其中的一些項(xiàng)目也是不可或缺的,并且為Hadoop提供了許多互補(bǔ)性的服務(wù)。Hadoop的兩個(gè)解決方案分別是Pig和Hive,開(kāi)發(fā)的編程人員在設(shè)計(jì)時(shí)更加的便捷。Pig可以對(duì)數(shù)據(jù)進(jìn)行加載,數(shù)據(jù)的格式可以進(jìn)行轉(zhuǎn)換,結(jié)果可以最終存儲(chǔ)下來(lái),從而達(dá)到優(yōu)化MapReduce的目的。Hive在Hadoop中作為最重要的部分,也扮演著數(shù)據(jù)庫(kù)的角色,可以在HDFS中添加一些數(shù)據(jù),并且使用相同的SQL查詢數(shù)據(jù)。Hadoop的監(jiān)控系統(tǒng)為Chukwa,是集群的監(jiān)控系統(tǒng)。HBase是在Hadoop中面向列的分布式存儲(chǔ)系統(tǒng),支持最大的系數(shù)表,并列存儲(chǔ)提供數(shù)據(jù)環(huán)境。MapReduce在大型的數(shù)據(jù)集中得到運(yùn)行的保障,并且在超大型數(shù)據(jù)集中運(yùn)行順暢。HDFS的運(yùn)行環(huán)境主要運(yùn)用于千萬(wàn)級(jí)的大型分布系統(tǒng)中。Zookeeper對(duì)應(yīng)用程序的服務(wù)系統(tǒng)起著調(diào)節(jié)的作用,并且維護(hù)系統(tǒng)的功能和服務(wù)體系。Avro是一個(gè)數(shù)據(jù)序列化系統(tǒng),主要應(yīng)用于大批數(shù)據(jù)集中。
2 Hadoop的核心技術(shù)以及設(shè)計(jì)
本文的海量數(shù)據(jù)存儲(chǔ)仿真平臺(tái)是基于 Hadoop 設(shè)計(jì)的,該平臺(tái)主要是模擬HDFS集群運(yùn)行狀態(tài),在這個(gè)平臺(tái)中主要包括了文件訪問(wèn)模型、HDFS集群、客戶端以及結(jié)果分析等。HDFS的架構(gòu)主要包含三種角色: NameNode、DataNode、Client。其中 NameNode是仿真平臺(tái)的管理核心,能夠?qū)λ械脑獢?shù)據(jù)進(jìn)行管理,對(duì)FileIO 的文件操作請(qǐng)求進(jìn)行處理。FileIO是用來(lái)實(shí)現(xiàn)文件操作產(chǎn)生機(jī)制模擬的類,主要控制每個(gè)系統(tǒng)心跳周期產(chǎn)生的文件數(shù)量、范圍等。因此對(duì)于FileIO的設(shè)計(jì)必須使用 add_file()、delete_file()、read_file()等方法。
DataNode主要負(fù)責(zé)對(duì)各類文件進(jìn)行儲(chǔ)存,對(duì)節(jié)點(diǎn)的狀態(tài)進(jìn)行記錄和統(tǒng)計(jì),從而為各種算法和決策提供有效的依據(jù)。
3 應(yīng)用實(shí)例
目前互聯(lián)網(wǎng)上網(wǎng)站數(shù)據(jù)信息主要是在 Apache 服務(wù)器上,而 Apache 的服務(wù)器能夠?qū)⒎?wù)器的所有請(qǐng)求進(jìn)行處理,并生成一個(gè)日志文件,該日志文件中有訪問(wèn)者的 IP 地址。訪問(wèn)點(diǎn)的時(shí)間、被訪問(wèn)的文件路徑等,這些數(shù)據(jù)給網(wǎng)站的運(yùn)營(yíng)者提供了的可靠的參考依據(jù),也能夠根據(jù)日志文件的內(nèi)容分析網(wǎng)站的運(yùn)營(yíng)狀況。
本文通過(guò)分析一個(gè)日均點(diǎn)擊量為十幾萬(wàn)的大型線上廣告公司論壇網(wǎng)站服務(wù)器上的日志文件,并將該日志文件作為研究的基礎(chǔ)數(shù)據(jù),構(gòu)造文件的訪問(wèn)模型。按照節(jié)點(diǎn)數(shù)量進(jìn)行規(guī)模擴(kuò)大復(fù)制操作,使得文件的訪問(wèn)與現(xiàn)實(shí)的情況相符合。本文通過(guò)將運(yùn)行時(shí)間劃分為24等份,并由此來(lái)決定每個(gè)時(shí)間段內(nèi)客戶的點(diǎn)擊數(shù)量,并結(jié)合系數(shù)初始設(shè)定的周期讀取數(shù)量來(lái)查看該網(wǎng)站客戶的訪問(wèn)情況。
通過(guò)*.policy 文件讀取,按照規(guī)定的格式在其中設(shè)置了幾個(gè)閥值Threshold_FMP、Threshold_FRP、Threshold_SCP,表示文件數(shù)據(jù)遷移的情況。經(jīng)過(guò)系統(tǒng)運(yùn)行結(jié)果顯示,文件沒(méi)有發(fā)生任何遷移的現(xiàn)象,且所有節(jié)點(diǎn)作為熱機(jī)。然后應(yīng)用節(jié)能策略運(yùn)行查看結(jié)果,發(fā)現(xiàn)文件遷移的數(shù)量以及熱機(jī)和冷機(jī)數(shù)量的變化。運(yùn)行節(jié)點(diǎn)在冷熱轉(zhuǎn)換的過(guò)程中,能夠明顯看到冷機(jī)和熱機(jī)的數(shù)量變化,從而根據(jù)這些情況將每個(gè)節(jié)點(diǎn)的耗能計(jì)算出來(lái),并得到節(jié)點(diǎn)狀態(tài)的相應(yīng)變化情況。平臺(tái)在運(yùn)行的過(guò)程中產(chǎn)生的操作記錄中主要包含著文件的創(chuàng)建、讀取的操作記錄、文件的信息以及訪問(wèn)的時(shí)間等情況。
通過(guò)以上平臺(tái)輸出的數(shù)據(jù),可以發(fā)現(xiàn)節(jié)點(diǎn)狀態(tài)的轉(zhuǎn)變情況以及節(jié)點(diǎn)開(kāi)機(jī)的次數(shù)以及能量的變化。這些情況對(duì)策略分析和算法具有十分有利的幫助,能夠?qū)崿F(xiàn)對(duì) Hadoop 集群的研究,優(yōu)化各種策略。
4結(jié)束語(yǔ)
通過(guò)對(duì)現(xiàn)代企業(yè)業(yè)務(wù)數(shù)據(jù)日益增長(zhǎng)的趨勢(shì)進(jìn)行分析,在Hadoop分布式處理平臺(tái)上進(jìn)行數(shù)據(jù)處理,并且詳細(xì)分析Hadoop的技術(shù)核心,最后通過(guò)實(shí)例來(lái)說(shuō)明Hadoop對(duì)數(shù)據(jù)處理的過(guò)程,展示了Hadoop在企業(yè)信息存儲(chǔ)中的便利和高效,為奇特的發(fā)展提供了更優(yōu)質(zhì)的服務(wù)。
參考文獻(xiàn):
[1] 孫福權(quán), 張達(dá)偉, 程勖,等. 基于Hadoop企業(yè)私有云存儲(chǔ)平臺(tái)的構(gòu)建[J]. 遼寧工程技術(shù)大學(xué)學(xué)報(bào):自然科學(xué)版, 2011, 30(6): 913-916.
[2] 馬莉, 李樹(shù)剛, 肖鵬,等. 云計(jì)算環(huán)境下煤礦應(yīng)急管理海量數(shù)據(jù)存儲(chǔ)技術(shù)[J]. 西安科技大學(xué)學(xué)報(bào), 2014, 34(5): 596-601.
[3] 余慶檄. 基于Hadoop的企業(yè)云存儲(chǔ)技術(shù)探索[J]. 計(jì)算機(jī)光盤(pán)軟件與應(yīng)用, 2013(4): 166-167.
[4] 孫知信, 黃涵霞. 基于云計(jì)算的數(shù)據(jù)存儲(chǔ)技術(shù)研究[J]. 南京郵電大學(xué)學(xué)報(bào):自然科學(xué)版, 2014, 34(4): 13-19.
[5] 劉琨, 董龍江. 云數(shù)據(jù)存儲(chǔ)與管理[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2011, 20(6): 232-237.