張 華
(福建警察學(xué)院 計(jì)算機(jī)與信息安全管理系,福州 350007)
隨著中國(guó)科技的快速發(fā)展,智能手機(jī)的崛起改善了人們的生活方式,提高了人們的生活效率,同時(shí)移動(dòng)網(wǎng)絡(luò)平臺(tái)建設(shè)也面臨更大的挑戰(zhàn)。隨著互聯(lián)網(wǎng)及社交軟件的普及,數(shù)據(jù)信息應(yīng)用及共享趨于全球化,需要最大化的分享和利用數(shù)據(jù)資源來(lái)服務(wù)于社會(huì),因此需要更先進(jìn)的數(shù)據(jù)處理技術(shù)。其中Hadoop數(shù)據(jù)處理理念與傳統(tǒng)模式不同,簡(jiǎn)單來(lái)說(shuō),它主要強(qiáng)調(diào)建立一個(gè)開放資源的平臺(tái),遷移代碼至數(shù)據(jù),而不是將數(shù)據(jù)遷移至代碼,節(jié)省了數(shù)據(jù)傳輸耗費(fèi)的時(shí)間。這項(xiàng)技術(shù)是由Doug Cutting團(tuán)隊(duì)于2005年開發(fā)設(shè)計(jì)的,旨在擴(kuò)展網(wǎng)絡(luò)數(shù)據(jù)信息資源處理系統(tǒng),解決Google等電子搜索引擎的壟斷性技術(shù)。
根據(jù)《第32次中國(guó)互聯(lián)網(wǎng)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》分析, 對(duì)大數(shù)據(jù)的定義從三個(gè)方面界定:數(shù)據(jù)體量、復(fù)雜程度、應(yīng)用價(jià)值[1]。數(shù)據(jù)體量大是指數(shù)據(jù)源具有一定規(guī)模,常規(guī)數(shù)據(jù)采集軟件不能完成。但著名咨詢公司麥肯錫認(rèn)為“大”的定義是動(dòng)態(tài)的,時(shí)代的進(jìn)步和技術(shù)革新會(huì)提高對(duì)數(shù)據(jù)體量大的定義,而且同時(shí)期內(nèi)不同領(lǐng)域不同部門對(duì)數(shù)據(jù)體量大的標(biāo)準(zhǔn)也不一樣。復(fù)雜程度區(qū)分大數(shù)據(jù)是由德勤咨詢計(jì)數(shù)器負(fù)責(zé)人羅伯特.福萊提出,他認(rèn)為大數(shù)據(jù)的第一屬性是復(fù)雜程度,數(shù)據(jù)源排列的查詢難度大小決定了是否能夠劃分為大數(shù)據(jù)類別。應(yīng)用價(jià)值及應(yīng)用頻率則更加直觀的體現(xiàn)是否可以劃分為大數(shù)據(jù)。數(shù)據(jù)使用也從廣度和深度兩方面對(duì)完善網(wǎng)絡(luò)平臺(tái)有更高的要求。廣義業(yè)務(wù)中有現(xiàn)有的性能數(shù)據(jù)、話單數(shù)據(jù)、參數(shù)數(shù)據(jù)等,而深度性可延展到話單分析,從純粹的KPI查看、告警查看、話單查看到關(guān)聯(lián)綜合分析及智能優(yōu)化,都是完善網(wǎng)絡(luò)平臺(tái)繼續(xù)完成的任務(wù)。
電信是海量數(shù)據(jù)的唯一收集點(diǎn)和存儲(chǔ)平臺(tái),也是網(wǎng)絡(luò)時(shí)代各種業(yè)務(wù)必須應(yīng)用到的開放式數(shù)據(jù)信息資源庫(kù)。電信大數(shù)據(jù)平臺(tái)的功能是對(duì)電信網(wǎng)絡(luò)內(nèi)數(shù)據(jù)資源庫(kù)信息從收集、整理到分析的一系列作業(yè)。電信市場(chǎng)中對(duì)周期統(tǒng)計(jì)數(shù)據(jù)的應(yīng)用需求不斷增加,需要以最敏銳的洞察力洞察出市場(chǎng)行情的變化和發(fā)展趨勢(shì),以此面對(duì)嚴(yán)峻的行業(yè)競(jìng)爭(zhēng),因此需要電信員工對(duì)大量數(shù)據(jù)進(jìn)行分析和統(tǒng)計(jì)。根據(jù)數(shù)據(jù)統(tǒng)計(jì)結(jié)果分析,Hadoop中不同組件擁有不同特性,不同特性滿足不同應(yīng)用需求,例如:Hive可提供數(shù)據(jù)庫(kù)語(yǔ)言,可應(yīng)用于迅速統(tǒng)計(jì)并加以分析;Hbase可應(yīng)用于便捷查詢;中間件對(duì)外部系統(tǒng)提供API接口。使用數(shù)據(jù)資源庫(kù)的信息及已成熟的數(shù)據(jù)分析算法,通過mahout對(duì)復(fù)雜原理數(shù)據(jù)分析完成專業(yè)分析工作,完整體現(xiàn)整個(gè)電信大數(shù)據(jù)分析平臺(tái)。Hadoop是Apache lucene中mutch的一個(gè)子項(xiàng)目,都由Doug Cutting 設(shè)想創(chuàng)立,nutch是Lucene文本搜索和查詢庫(kù)的擴(kuò)展,具有開放和民主的特性,主要負(fù)責(zé)web搜索引擎中的分布式系統(tǒng)處理,自我修復(fù)故障和負(fù)載均衡等問題。Hadoop項(xiàng)目可以充實(shí)并輔助完成nutch網(wǎng)絡(luò)擴(kuò)展技術(shù),其全面發(fā)展的特性和低成本學(xué)習(xí)及使用快速被行業(yè)接納和認(rèn)可,被公認(rèn)為可選擇使用的高性價(jià)比大數(shù)據(jù)分析技術(shù)。但因?yàn)闃I(yè)務(wù)情況的復(fù)雜多變,Hadoop還在不斷完善改進(jìn)中。
Hadoop的調(diào)整策略研究主要分三個(gè)方面:推測(cè)機(jī)制的研究、針對(duì)數(shù)據(jù)位置的改進(jìn)研究和針對(duì)shuffle階段的改進(jìn)研究。
研究推測(cè)機(jī)制是一種系統(tǒng)內(nèi)自我調(diào)節(jié)策略,通過用運(yùn)行快的節(jié)點(diǎn)幫助運(yùn)行慢的節(jié)點(diǎn)實(shí)現(xiàn)自我改善,提高運(yùn)行效率。但是有待優(yōu)化的是判斷能力不夠,可能會(huì)在節(jié)點(diǎn)慢速或者快速的問題上出現(xiàn)誤判,從而影響整個(gè)系統(tǒng)的工作效率。對(duì)此有國(guó)外研究人員提出LATE算法,有效地改善了對(duì)節(jié)點(diǎn)快慢速度的判別。在國(guó)內(nèi),也有研究人員對(duì) LATE 算法進(jìn)行完善,提出了 SAMR等算法,這些研究?jī)?yōu)化了整個(gè)系統(tǒng)的性能[3]。數(shù)據(jù)位置研究采用并行數(shù)據(jù)處理系統(tǒng)的兩個(gè)階段來(lái)完成。首先是Map階段,產(chǎn)生中間過程的結(jié)果,然后必須經(jīng)過組裝之后才能被reduce調(diào)度使用并在網(wǎng)上傳輸。針對(duì)這個(gè)過程產(chǎn)生的負(fù)荷有國(guó)外研究人員提出了Delay Scheduling、6Quincy等調(diào)度算法,并投入實(shí)踐,結(jié)果表明有一定良好的效果。
Shuffle的改善調(diào)度策略。shuffle階段是整個(gè)數(shù)據(jù)處理系統(tǒng)中所花費(fèi)時(shí)間最長(zhǎng)的一個(gè)階段,很多國(guó)內(nèi)外學(xué)者為了改良這一點(diǎn),優(yōu)化shuffle階段的工作時(shí)間做出了很大努力。研究提出了 Orchestra管理系統(tǒng),縮減數(shù)據(jù)傳遞工作量而提出 pre-shuffle 機(jī)制,這些策略都能有效改良系統(tǒng)的配置,提升系統(tǒng)的性能指標(biāo)數(shù)據(jù)[4]。
除此之外,還有研究人員提出了合理分配數(shù)據(jù)預(yù)先判斷和預(yù)測(cè)分配時(shí)間以縮減系統(tǒng)的反應(yīng)時(shí)間,國(guó)內(nèi)學(xué)者也在優(yōu)化階段的基礎(chǔ)之上自行調(diào)整以適應(yīng)hadoop的使用調(diào)度算法策略。
對(duì)大數(shù)據(jù)的處理模式采用分布式、網(wǎng)絡(luò)算法和并行處理等多種技術(shù)綜合。這一整套完整的大數(shù)據(jù)組織處理方案實(shí)現(xiàn)了便捷終端連接及移除、分布計(jì)算和存儲(chǔ)、龐大的容錯(cuò)機(jī)制等一系列功能(如圖1)[5]。頂級(jí)用戶不需要了解基礎(chǔ)工作原理,只需將它當(dāng)作一種使用工具來(lái)獲得所需信息即可。用戶可以使用個(gè)人計(jì)算機(jī)或PDA端口同步云系統(tǒng),且系統(tǒng)硬件組成由互聯(lián)網(wǎng)平臺(tái)連接多臺(tái)不同結(jié)構(gòu)的計(jì)算機(jī)構(gòu)成,使用便捷,效果明顯,所以Hadoop被廣泛應(yīng)用于社會(huì)各個(gè)領(lǐng)域。
圖1 Hadoop平臺(tái)架構(gòu)
Hadoop由JobTracker和TaskTracker兩個(gè)部分構(gòu)成。其中JobTracker位置與控制節(jié)點(diǎn)于一處主導(dǎo)Map/Reduce的控制性能,以完成創(chuàng)建分節(jié)點(diǎn)為結(jié)果導(dǎo)向:TaskTracker位于數(shù)據(jù)節(jié)點(diǎn),以完成分析處理數(shù)據(jù)并傳輸結(jié)果給JobTracker為任務(wù)。這種運(yùn)行模式完成了映射階段在各個(gè)子節(jié)點(diǎn)處理而不需要通過網(wǎng)絡(luò)上傳,只在最后階段才向NameNode傳輸結(jié)果。MapReduce作為Googlr的核心技術(shù)被大范圍應(yīng)用到大數(shù)據(jù)計(jì)算中,基于此項(xiàng)技術(shù),編寫分布式程序難度降低,即使不了解分布式計(jì)算的用戶也能輕松編程,實(shí)現(xiàn)大數(shù)據(jù)計(jì)算。根據(jù)實(shí)踐應(yīng)用,MapReduce更適合處理大規(guī)模大集群數(shù)據(jù)庫(kù)。MapReduce構(gòu)架的幾大優(yōu)勢(shì):(1)動(dòng)態(tài)增減計(jì)算節(jié)點(diǎn),彈性計(jì)算;(2)支持節(jié)點(diǎn)故障狀態(tài)下仍能完成任務(wù)轉(zhuǎn)移;(3)可遷移任務(wù)至最近節(jié)點(diǎn);(4)備份分散式數(shù)據(jù)到多個(gè)節(jié)點(diǎn)。
HDFS集群由一個(gè)控制節(jié)點(diǎn)和若干個(gè)數(shù)據(jù)節(jié)點(diǎn)組成??刂乒?jié)點(diǎn)需要管理系統(tǒng)的命名,服務(wù)器端口、訪問權(quán)限和文件屬性修改性能,磁盤空間占比等,是構(gòu)成系統(tǒng)中最重要的部分。數(shù)據(jù)節(jié)點(diǎn)主要負(fù)責(zé)存儲(chǔ)數(shù)據(jù)??蛻粲?jì)算機(jī)程序端口若是要訪問數(shù)據(jù)節(jié)點(diǎn)需要先通過控制節(jié)點(diǎn)獲得元數(shù)據(jù),NameNode幫助用戶記錄文件的訪問頻率。HDFS則分割大數(shù)據(jù)分開存儲(chǔ)到不同的數(shù)據(jù)節(jié)點(diǎn),并根據(jù)控制節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)的位置將數(shù)據(jù)進(jìn)行必要的遷移。通常情況在一個(gè)集群下只需要一臺(tái)高檔計(jì)算器管理服務(wù)器,多臺(tái)同時(shí)管理數(shù)據(jù)節(jié)點(diǎn)。而管理服務(wù)器的任務(wù)是維護(hù)數(shù)據(jù)與數(shù)據(jù)節(jié)點(diǎn)之間的映射階段并保護(hù)數(shù)據(jù)存取過程。HDFS中EditLog表示標(biāo)記為事務(wù)日志,記錄元數(shù)據(jù)變化,F(xiàn)sImage表示標(biāo)記為映像文件,表示為系統(tǒng)的namepace。系統(tǒng)啟動(dòng)后,數(shù)據(jù)節(jié)點(diǎn)會(huì)向控制節(jié)點(diǎn)傳送信息,主要計(jì)算任務(wù)由數(shù)據(jù)節(jié)點(diǎn)承擔(dān),程序用戶如需要找數(shù)據(jù)節(jié)點(diǎn)需先從控制節(jié)點(diǎn)獲取數(shù)據(jù)標(biāo)識(shí)。HDFS的系統(tǒng)文件擴(kuò)展空間非常龐大,任何一臺(tái)計(jì)算機(jī)都會(huì)影響整個(gè)系統(tǒng)的癱瘓,導(dǎo)致傳輸過程中的數(shù)據(jù)丟失,所以需設(shè)置容錯(cuò)機(jī)制定期巡檢各分節(jié)點(diǎn)工作狀態(tài)并進(jìn)行自我修復(fù)。
Hadoop大數(shù)據(jù)集群的物理軟件、硬件配置的組合多種多樣,而數(shù)據(jù)庫(kù)的信息需要分布式存儲(chǔ)于各數(shù)據(jù)節(jié)點(diǎn)中,所以擁有龐大的容錯(cuò)機(jī)制必不可少。其中有兩種情況發(fā)生頻率較高:一是當(dāng)數(shù)據(jù)節(jié)點(diǎn)出現(xiàn)錯(cuò)誤時(shí),心跳機(jī)制可以定時(shí)向控制節(jié)點(diǎn)反饋故障或錯(cuò)誤信號(hào)。若控制節(jié)點(diǎn)在接收到信號(hào)之后沒有在相應(yīng)時(shí)間內(nèi)做出反饋信息,該機(jī)制則會(huì)自我判定該節(jié)點(diǎn)故障生成并終止調(diào)度,還原至數(shù)據(jù)遷移之前的狀態(tài)。轉(zhuǎn)換Map任務(wù)指令至其他位置上時(shí),Reduce指令會(huì)告知等待讀取的數(shù)據(jù)節(jié)點(diǎn)并做出相應(yīng)調(diào)度,在無(wú)效節(jié)點(diǎn)數(shù)量多時(shí),容錯(cuò)機(jī)制也允許其他節(jié)點(diǎn)執(zhí)行無(wú)效節(jié)點(diǎn)任務(wù)。其二是控制節(jié)點(diǎn)診斷出錯(cuò)誤,雖然控制節(jié)點(diǎn)會(huì)定期設(shè)立巡檢點(diǎn)并傳輸出數(shù)據(jù),以防程序的主要控制性能無(wú)效后妨礙數(shù)據(jù)遷移的效率,但仍然避免不了主控制節(jié)點(diǎn)會(huì)出現(xiàn)故障狀態(tài),所以當(dāng)診斷主節(jié)點(diǎn)故障時(shí),需立即從最新巡檢點(diǎn)發(fā)出恢復(fù)指令,將數(shù)據(jù)備份。然后重啟Mapreduce,這個(gè)過程用戶也可以完成。
HBase是HDFS分布式存儲(chǔ)系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)中的一個(gè)分項(xiàng)目。它有異于oracle這一類結(jié)構(gòu)型數(shù)據(jù)庫(kù),屬于大數(shù)據(jù)集群存儲(chǔ)的非結(jié)構(gòu)式數(shù)據(jù)庫(kù),受眾主要針對(duì)列數(shù)據(jù)存儲(chǔ),而傳統(tǒng)數(shù)據(jù)庫(kù)受眾主要針對(duì)行數(shù)據(jù)存儲(chǔ)。HDFS運(yùn)行系統(tǒng)中存儲(chǔ)數(shù)據(jù)信息的地方是在子表服務(wù)器內(nèi)。這個(gè)系統(tǒng)可保持信息遷移的高可靠性及彈性分布。運(yùn)行模式只能通過主鍵Row Key 和Range完成檢索功能,存儲(chǔ)非傳統(tǒng)結(jié)構(gòu)型數(shù)據(jù)。其設(shè)計(jì)原理是為解決大數(shù)據(jù)集群關(guān)系類數(shù)據(jù)庫(kù)理論和實(shí)踐的差異局限性,因?yàn)閭鹘y(tǒng)關(guān)系類數(shù)據(jù)處理技術(shù)經(jīng)過多年研究沒有較大突破,始終只能完成49個(gè)主節(jié)點(diǎn)內(nèi)的信息遷移處理。HBase的大存儲(chǔ)空間高速?gòu)?fù)制讀寫性能能夠使大集群數(shù)據(jù)快速分布傳送到上千臺(tái)服務(wù)器,創(chuàng)立連接端口。相較于其他系統(tǒng),HBase的核心優(yōu)勢(shì)體現(xiàn)在延展空間大,可以預(yù)先切分出20%的磁盤存儲(chǔ)空間應(yīng)對(duì)數(shù)據(jù)庫(kù)信息量的變化。其次可實(shí)現(xiàn)多臺(tái)計(jì)算器用戶同時(shí)進(jìn)入端口進(jìn)行高速讀寫。其工作原理是將數(shù)據(jù)集合分布式存儲(chǔ)到多臺(tái)計(jì)算器上,隨著進(jìn)入服務(wù)器端口的用戶數(shù)量增加,數(shù)千臺(tái)計(jì)算器可同時(shí)應(yīng)對(duì)訪問指令,另外其運(yùn)行系統(tǒng)中的緩存機(jī)制也可提高接受用戶訪問指令的概率。第三個(gè)優(yōu)化功能在于它的容錯(cuò)機(jī)制,因?yàn)镠Base運(yùn)行是基于HDFS系統(tǒng)上,所以運(yùn)行中的服務(wù)器診斷出讀寫問題時(shí),也可從日志中發(fā)出恢復(fù)數(shù)據(jù)指令,HBase系統(tǒng)可自行調(diào)度其他服務(wù)器接受指令恢復(fù)數(shù)據(jù)讀寫過程。因此當(dāng)數(shù)據(jù)遷移成功就證明復(fù)制指令已發(fā)出并完成,以此保證整個(gè)系統(tǒng)運(yùn)行模式的高實(shí)用性。
遙控感應(yīng)成像型數(shù)據(jù)庫(kù)的分辨率和數(shù)據(jù)集合的應(yīng)用推廣面呈上漲趨勢(shì),因此就如何加強(qiáng)存儲(chǔ)空間和和高速讀寫以及更新頻率為探討課題,作為研究熱點(diǎn)。在全球大規(guī)模發(fā)展影像數(shù)據(jù)繪制情況下通常采用金字塔模型,其模型的應(yīng)用在圖片壓縮、轉(zhuǎn)換處理索引及地形可視方面尤為明顯。其原理是以原計(jì)算規(guī)則生產(chǎn)不同分辨率的階層,后對(duì)每個(gè)不同階層規(guī)則進(jìn)行分布分塊調(diào)度,最后顯示結(jié)果時(shí)只需要把最主要顯示的階段遷移至內(nèi)部存儲(chǔ)服務(wù)器,以此提高服務(wù)器顯示效率。這個(gè)應(yīng)用在構(gòu)建虛擬地形結(jié)構(gòu)的方面頻率較高,范圍較廣。從其他方面考察可知,傳統(tǒng)分布式單機(jī)處理服務(wù)器已越來(lái)越不能滿足現(xiàn)如今產(chǎn)生的呈快速上漲趨勢(shì)的大規(guī)模集群遙控影像數(shù)據(jù)庫(kù)金字塔構(gòu)建問題。因此有研究學(xué)者提出可結(jié)合全球網(wǎng)格部分技術(shù),key-value磁盤存儲(chǔ)及Hilbert空間填充曲線應(yīng)用幾種技術(shù)實(shí)現(xiàn)Hadoop云計(jì)算平臺(tái)下的影像金字塔并行架構(gòu)。
在地形方面的數(shù)據(jù)結(jié)構(gòu)一直都是吸引數(shù)據(jù)研究者的一大領(lǐng)域,尤其是大規(guī)模地形數(shù)據(jù),其結(jié)構(gòu)、組織、應(yīng)用和發(fā)展推廣廣泛地被社會(huì)各界關(guān)注。像這樣全球范圍的高分辨率遙控感應(yīng)成像應(yīng)用數(shù)據(jù)包可界定為真正的大數(shù)據(jù)。研究表明使用瓦片金字塔模型分析處理全球規(guī)模的大數(shù)據(jù)可取得較好效果。許多學(xué)者也將注意力集中在金字塔的儲(chǔ)存空間,因?yàn)樽远x大內(nèi)存文件夾存放金字塔文件,可以有效解決內(nèi)存碎片的情況,但這樣的處理模式并不適用于局部更新。因?yàn)榻鹱炙P涂梢詫?shí)現(xiàn)不同分辨率數(shù)據(jù)庫(kù)之間的無(wú)誤查詢。不同層次分辨率成像影像和DEM數(shù)據(jù)結(jié)構(gòu)處理才會(huì)都傾向于采用這種方法。其中值得一提的是杜清運(yùn)于2011年提出方案:采用內(nèi)嵌金塔模型瓦片地圖數(shù)據(jù)集,并用“分層分塊”理念構(gòu)建,筑成大規(guī)模成像影像和DEM數(shù)據(jù)庫(kù)的理想結(jié)構(gòu)。這種方案既能提高處理高分辨率數(shù)據(jù)效率,又能節(jié)省數(shù)據(jù)查詢時(shí)間,因此可以大幅提升系統(tǒng)性能。
地形方面的數(shù)據(jù)結(jié)構(gòu)在組織方案確定之前需要調(diào)整幾個(gè)方面的工作。首先是大數(shù)據(jù)的分層、分塊、分布。為了對(duì)數(shù)據(jù)做高效的分層處理,提高數(shù)據(jù)分辯率需要將數(shù)據(jù)做分層導(dǎo)入,每一個(gè)階段有適合該節(jié)點(diǎn)的分辨率層次。即使是同層分辨率數(shù)據(jù)也只能分次導(dǎo)入至內(nèi)存磁盤,地形數(shù)據(jù)也可以分地域處理、以便動(dòng)態(tài)的信息調(diào)整。還需要考慮磁盤存儲(chǔ)容量及網(wǎng)絡(luò)傳送路徑、讀寫能力對(duì)文件屬性及大小的要求,以免造成耗費(fèi)空間地形數(shù)據(jù)傳輸時(shí)間?,F(xiàn)在較常使用的地形數(shù)據(jù)組織方式是根據(jù)現(xiàn)有的地形比例圖像分層處理。因?yàn)榻鹱炙恳粚佣加羞@個(gè)層次對(duì)應(yīng)的一個(gè)比例尺分辨率圖像,通過分層再整合整個(gè)圖像數(shù)據(jù)來(lái)管理這些數(shù)據(jù)。目前的種數(shù)據(jù)方案是以現(xiàn)有的比例尺圖像作為分層依據(jù),而且這個(gè)比例尺對(duì)應(yīng)于金字塔的每一層,分層后再按圖幅的大小分配數(shù)據(jù),再分別安排對(duì)應(yīng)的服務(wù)器低數(shù)據(jù)進(jìn)行管理,這種情況下很多普通的計(jì)算機(jī)都可以連接增大層存儲(chǔ)量,整個(gè)容量動(dòng)態(tài)擴(kuò)大過程不需要停機(jī)。