郭荔荔 李敬兆
摘要:鑒于國內(nèi)目前各大煤礦企業(yè)的實際情況,對井下人員定位系統(tǒng)進行研究,為了改進定位產(chǎn)生的海量數(shù)據(jù)所存在的不安全、不完整等弊端,采用云存儲代替原有的存儲模式。利用云存儲量身定制這一特性,在企業(yè)內(nèi)部搭建私有云,以Hadoop為技術(shù)架構(gòu),運用HBase的RowKey確定檢索的主鍵,HDFS的NameNode與DataNode完成數(shù)據(jù)間的交互,快速、高效的查找數(shù)據(jù)。將云存儲應(yīng)用于企業(yè)中,幫助企業(yè)順應(yīng)時代的腳步,有利于企業(yè)的發(fā)展,具有一定的價值。
關(guān)鍵詞:定位系統(tǒng);云存儲;海量數(shù)據(jù);HDFS;HBase
中圖分類號: TP391 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)04-0844-03
1 概述
中國作為煤礦大國,各大煤礦通過人員定位系統(tǒng),實時監(jiān)控井下作業(yè)人員,確保其人身安全。通過實時定位,收集各類數(shù)據(jù),確定實時路徑。煤礦企業(yè)在處理人員定位系統(tǒng)產(chǎn)生的海量數(shù)據(jù)方面存在眾多問題:原有系統(tǒng)擴展性差,難以滿足企業(yè)數(shù)據(jù)的快速增長;數(shù)據(jù)的處理以及復(fù)雜操作能力的需求不斷提高;對數(shù)據(jù)的訪問以及響應(yīng)時間逐漸變慢等。傳統(tǒng)的數(shù)據(jù)存儲模式不能完美的解決這些問題,而云存儲作為一種新型的數(shù)據(jù)存儲方式,克服了傳統(tǒng)存儲方式產(chǎn)生的諸多弊端。
以淮北朱仙莊礦為背景,結(jié)合目前煤礦企業(yè)的實際情況,針對定位系統(tǒng)產(chǎn)生的海量數(shù)據(jù),在企業(yè)內(nèi)部建立私有云,整合現(xiàn)有的多樣數(shù)據(jù),建立Hadoop技術(shù)架構(gòu),以達到高速、安全的存儲數(shù)據(jù)。
2 云存儲下定位數(shù)據(jù)的處理
2.1 云存儲
2.1.1 云存儲的定義
云存儲[1]作為云計算的延伸技術(shù),主要指通過分布式文件系統(tǒng)、集群應(yīng)用等,將同一網(wǎng)絡(luò)中許多且不同類型的設(shè)備整合起來,實現(xiàn)對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問的功能[2]。其中,云存儲并非實際意義上的存儲,提供的是服務(wù)功能。
云存儲是一種特殊的共享存儲器,首先要保證用戶存放的數(shù)據(jù)可靠、不丟失。其次,用戶訪問數(shù)據(jù)是任意時間的,云存儲必須確保實時在線,方便用戶的讀取。鑒于成本和資金流量的考慮,云存儲的規(guī)模必須隨著數(shù)據(jù)的不斷增加而擴展。
2.1.2 云存儲的結(jié)構(gòu)
云存儲的核心是應(yīng)用軟件和存儲設(shè)備相結(jié)合,通過應(yīng)用軟件來實現(xiàn)存儲設(shè)備向存儲服務(wù)的轉(zhuǎn)變。圖1為云存儲的結(jié)構(gòu)[3]。
由以上的結(jié)構(gòu)圖,我們不難看出云存儲所具有的幾個優(yōu)勢[4][5]:
1)成本低
目前,大多企業(yè)將大部分數(shù)據(jù)遷移至云存儲上,因此升級、維護等管理任務(wù)均由云存儲服務(wù)提供商來完成。不僅可以將數(shù)據(jù)存儲與管理的成本降到最低,還能獲得最優(yōu)良的數(shù)據(jù)存儲服務(wù)。
2)管理便捷
企業(yè)的數(shù)據(jù)管理從傳統(tǒng)的分散管理轉(zhuǎn)變?yōu)樵拼鎯Φ慕y(tǒng)一管理。其中維護功能由供應(yīng)商來完成,企業(yè)不需要配備專業(yè)的存儲系統(tǒng)管理員;其次較易擴展,不會因為新數(shù)據(jù)的產(chǎn)生而丟棄舊數(shù)據(jù),保證數(shù)據(jù)間的完整性。
3)量身定做
隨著大數(shù)據(jù)時代的到來,各企業(yè)產(chǎn)生的海量數(shù)據(jù)不盡相同,利用私有云這一特性為企業(yè)量身定做一套云存儲服務(wù)解決方案。
2.2 Hadoop
2.2.1 Hadoop簡介
Hadoop[6-7]是Doug Cutting創(chuàng)建的一個軟件框架,能夠?qū)A繑?shù)據(jù)進行分布式處理,主要依附于社區(qū)服務(wù)器,因此成本較低,任何人都可以使用。Hadoop是一種可以讓用戶輕松建立和應(yīng)用的分布式計算平臺,方便對海量數(shù)據(jù)分析、處理。
主要有以下幾個優(yōu)點[8-9]:
1)高可靠性
使用按位存儲和處理數(shù)據(jù),值得用戶的依賴。
2)高擴展性
通過計算機的集簇體現(xiàn)其高擴展性,將數(shù)據(jù)方便、快捷的擴展到數(shù)以千計的節(jié)點上。
3)高容錯性
自身能夠進行數(shù)據(jù)的備份,并且能夠自動將失敗的任務(wù)重新分配。
2.2.2 HDFS介紹
HDFS[10-11](Hadoop Distributed File System):分布式文件系統(tǒng),簡稱HDFS;具有高容錯性,主要放置在低廉的硬件上。
HDFS類似于一個分級文件系統(tǒng)[12],可以創(chuàng)建、刪除、移動或重命名文件等?;谄渥陨淼奶攸c,HDFS的架構(gòu)是由一組特定的節(jié)點構(gòu)建的,這些節(jié)點主要包括NameNode(僅一個)存儲的主要是文件名;DataNode為 HDFS 提供存儲塊。
NameNode主要起索引的作用,決定是否將文件映射到 DataNode 上,負責(zé)管理文件名和控制外部客戶機的訪問;DataNode則響應(yīng)來自 NameNode 的創(chuàng)建、刪除和復(fù)制塊的命令。NameNode 依賴于單個 DataNode 的定期心跳消息,其中每條消息都包含一個塊報告,可以根據(jù)這個塊報告驗證和映射元數(shù)據(jù)。
2.2.3 HBase介紹
HBase[13-14]是Google的一個高性能、高可靠性、面向列的分布式存儲系統(tǒng),類似于BigTable。
作為Apache的Hadoop項目中的一個子項目,HBase是基于列的模式,適用于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫,具有處理大數(shù)據(jù)的能力。HBase中的RowKey是用來檢索記錄的主鍵,可以是任意字符串。在存儲時,數(shù)據(jù)按照RowKey的字典序排序存儲。
2.3 定位的數(shù)據(jù)處理
2.3.1 人員定位數(shù)據(jù)
煤礦行業(yè)中,最重要的是人的生命安全,朱仙莊礦隸屬淮北礦業(yè)集團,擁有龐大的團隊,為了更好的保障礦工的安全,井下人員定位系統(tǒng)[15]起著舉足輕重的作用。該定位系統(tǒng)不僅需要提供實時的監(jiān)測查詢功能,還需要在各種空間和時間的角度下提供歷史統(tǒng)計。對任何一個人員,除了包含其本身的信息外,從進入井下開始,系統(tǒng)就對其進行實時定位跟蹤,從而產(chǎn)生了跟蹤路徑,且這些定位數(shù)據(jù)都是不可再生的,這就將產(chǎn)生海量數(shù)據(jù)。因此海量定位數(shù)據(jù)的可靠性和完整性,對井下作業(yè)的操作是至關(guān)重要的。
在不增加任何設(shè)備的前提下,將原有的數(shù)據(jù)庫結(jié)構(gòu)改成云存儲結(jié)構(gòu)。云存儲不同于傳統(tǒng)的關(guān)系數(shù)據(jù)庫,采用基于列存儲的數(shù)據(jù)管理模式來支持大數(shù)據(jù)的高效管理,更好的實現(xiàn)大量數(shù)據(jù)的可靠存儲。
2.3.2 總體架構(gòu)設(shè)計
井下人員定位系統(tǒng)的數(shù)據(jù)處理以Hadoop技術(shù)為架構(gòu),HBase為大量數(shù)據(jù)管理系統(tǒng), HDFS作為分布式存儲系統(tǒng)。在HDFS中的文件以塊的形式分布在DataNode,再通過NameNode控制所有文件,通過索引,各節(jié)點之間進行數(shù)據(jù)交互。
1)HBase的設(shè)計
一個有效的定位數(shù)據(jù)包括用戶、時間和位置信息,這些數(shù)據(jù)都必須存放在Hadoop的HBase中。區(qū)別于傳統(tǒng)的關(guān)系數(shù)據(jù)庫,這類關(guān)系模型必須要轉(zhuǎn)換為Key-value的形式才能被HBase接收。
系統(tǒng)中的定位數(shù)據(jù)主要用于以下兩種類型的查詢:一種是區(qū)域內(nèi)所有人員的信息,另一種是一個人員的歷史軌跡。為了提高查詢的效率,在使用HBase進行數(shù)據(jù)存放時,將同一個區(qū)域的數(shù)據(jù)都存放在臨近的DataNode上。考慮到定位數(shù)據(jù)本身具有區(qū)域性,即定位數(shù)據(jù)總是會在一個區(qū)域內(nèi)產(chǎn)生大量數(shù)據(jù),且定位數(shù)據(jù)是按照時間增長的時序數(shù)據(jù)。因此,如果按照區(qū)域聚集的方式存放數(shù)據(jù)就必然會導(dǎo)致?lián)砣?,從而不能發(fā)揮集群的性能優(yōu)勢。為了避免這種情況, RowKey的選擇至關(guān)重要。
為了使數(shù)據(jù)自動按照時間從新到舊的順序排列,需要使用倒序時間戳,在HBase中多數(shù)使用Hash來解決這類問題。將Hash值作為一個額外的RowKey部分放在原有的RowKey的最前面對數(shù)據(jù)進行分散,同時根據(jù)服務(wù)器中DataNode的數(shù)量來設(shè)置一個合理的Hash表長度。
對于人員定位系統(tǒng)中的數(shù)據(jù),可以將HBase中的RowKey設(shè)計為Hash([區(qū)域][人員][時間])[區(qū)域][人員][倒序時間]。將查詢條件都作為RowKey后,人員的定位數(shù)據(jù)只剩下非常簡單的三元組(x,y,z)形式,同時也沒有必要將這三個數(shù)據(jù)分開存放,這樣列族的數(shù)量只有一個,此時存放的數(shù)據(jù)即為定位的數(shù)據(jù)。
2) HDFS的設(shè)計
從上圖可知:上位機主要是用來接收人員定位產(chǎn)生的數(shù)據(jù),然后多個客戶端可以從上位機上查詢數(shù)據(jù)。NameNode存儲的是數(shù)據(jù)的索引,即文件名,無真實的數(shù)據(jù);DataNode存儲的是真正的數(shù)據(jù),即磁盤。當(dāng)收到訪問請求時,通過Name節(jié)點中的索引來決定所需匹配的DataNode;當(dāng)DataNode發(fā)出定期心跳消息時,NameNode根據(jù)消息查詢文件并映射元數(shù)據(jù)返回DataNode;當(dāng)DataNode 沒有發(fā)送心跳消息時,NameNode進行自我修復(fù),重新復(fù)制丟失在塊上的數(shù)據(jù),并完成交互功能。
客戶端向NameNode發(fā)送任務(wù)請求,NameNode先對客戶進行合法性做驗證,然后將文件分成數(shù)據(jù)塊;接著根據(jù)各個DataNode狀態(tài)進行分配任務(wù),這樣就可以決定數(shù)據(jù)塊存儲在具體哪個DataNode中,并通知客戶端;最后客戶端可以直接與DataNode通信。
2.4 云存儲在人員定位中可能存在的隱患
1)安全問題
相對于傳統(tǒng)的存儲方式,云存儲中的數(shù)據(jù)更具有條理性、完整性。但云存儲提供的是在線數(shù)據(jù)存儲服務(wù),將數(shù)據(jù)放在服務(wù)端,企業(yè)用戶不僅依賴于,同時也受制于服務(wù)器供應(yīng)商。另外,必須時刻連接Internet,將導(dǎo)致數(shù)據(jù)的外泄。
2)速度問題
云存儲是一種在線的服務(wù),其存儲速度是由寬帶的速度來決定的,這將受到多方面的干擾。目前,隨著互聯(lián)網(wǎng)寬帶的速度不斷提升,用戶的需求量也在不斷擴大,所產(chǎn)生的數(shù)據(jù)將驟增,這樣就導(dǎo)致了寬帶的速度逐漸無法負荷數(shù)據(jù)的存在。
3)數(shù)據(jù)所有權(quán)問題
對傳統(tǒng)的存儲方式而言,數(shù)據(jù)在本地存儲中,企業(yè)內(nèi)部人員對其有絕對的控制權(quán);但當(dāng)數(shù)據(jù)轉(zhuǎn)移到云服務(wù)后,這類支配的權(quán)利就逐漸轉(zhuǎn)移。 另外,云存儲還增加了不確定性,很難對存儲數(shù)據(jù)進行實質(zhì)性的管理,管理人員只能依據(jù)服務(wù)水平協(xié)議確定數(shù)據(jù)。
3 結(jié)束語
本文結(jié)合淮北朱仙莊礦實際情況,運用云存儲技術(shù),提出基于Hadoop框架的平臺,初步解決井下人員定位系統(tǒng)產(chǎn)生的海量數(shù)據(jù)。利用云存儲量身定制的優(yōu)勢,在企業(yè)內(nèi)部建立私有云,快捷、高效的處理數(shù)據(jù),在很大程度上帶動企業(yè)順應(yīng)社會的發(fā)展。但云存儲作為一項新型技術(shù),仍不夠完善,需要我們在以后的應(yīng)用實踐中,不斷的發(fā)現(xiàn)問題并且改進。
參考文獻:
[1] 江秋菊.基于云存儲的數(shù)字圖書館資源存儲[J].圖書館學(xué)刊,2012(2):109-111.
[2] 劉金芝,余丹,朱率率.一種新的云存儲服務(wù)模型研究[J].計算機應(yīng)用研究,2011,28(5):1869-1872.
[3] 黃燕.云存儲影響下的數(shù)字圖書館[J].圖書館界,2011(5):3-4.
[4] 劉貝,湯斌.云存儲原理及發(fā)展趨勢[J].科技信息,2011(5):470-471.
[5] 熊聰聰,馮龍,陳麗仙.云存儲在校園信息化中的應(yīng)用與優(yōu)化[J].天津科技大學(xué)學(xué)報,2012,27(5):69-73.
[6] 孫福權(quán),張達偉,劉超.基于Hadoop企業(yè)私有云存儲平臺的構(gòu)建[J].遼寧工程技術(shù)大學(xué)學(xué)報:自然科學(xué)版,2011,30(6):913-916.
[7] 曹英忠,謝曉蘭,趙鵬.基于Hadoop的云存儲實踐[J].現(xiàn)代計算機:專業(yè)版,2011(24):25-26.
[8] 多雪松,張晶,高強.基于Hadoop的海量數(shù)據(jù)管理系統(tǒng)[J].微計算機信息,2010(13):202-204.
[9] 劉豪.基于Hadoop集群的海量數(shù)據(jù)計算和存儲技術(shù)研究[D].武漢:武漢理工大學(xué),2012.
[10] Venner J.Pro Hadoop[M].New York:Apress,2009.
[11] 黃曉云.基于HDFS的云存儲服務(wù)系統(tǒng)研究[D].大連:大連海事大學(xué),2010.
[12] 陳平華.海量數(shù)據(jù)存儲模式的研究[D].廣州:廣東工業(yè)大學(xué),2012.
[13] 陳慶奎,周利珍.基于HBase的大規(guī)模無線傳感網(wǎng)絡(luò)數(shù)據(jù)存儲系統(tǒng)[J].計算機應(yīng)用,2012,32(7):1920-1923.
[14] 張榆,馬友忠,孟小峰.一種基于HBase的高效空間關(guān)鍵詞查詢策略[J].小型微型計算機系統(tǒng),2012(10):2141-2145.
[15] 劉延齡.基于物聯(lián)網(wǎng)的煤礦人員定位系統(tǒng)解決方案[J].煤礦機械,2011(5):222-223.