高廣飛 姚 軍
(西安科技大學(xué)通信與信息工程學(xué)院)
精確的位置定位服務(wù)可以為礦井的安全生產(chǎn)和管理提供權(quán)威的數(shù)據(jù)參考。由于煤礦井下巷道狹長壁表面的巖石和煤層結(jié)構(gòu)[1],使得井下電波傳播環(huán)境存在多徑效應(yīng)、駐波、非視距傳播等問題。正是由于井下電磁環(huán)境的特殊性和復(fù)雜性,井下人員定位方法一直是人們研究的熱點。而傳統(tǒng)的定位方法因使用環(huán)境的局限性,很難移植應(yīng)用到井下環(huán)境。電波信號的多徑傳播對環(huán)境具有依賴性,每個位置上信道的多徑結(jié)構(gòu)是唯一的,場景指紋匹配定位算法可以巧妙地結(jié)合利用井下每個位置的多徑結(jié)構(gòu),采集實際環(huán)境中不同位置的信號強度,構(gòu)建實際位置和信號強度之間的映射匹配關(guān)系獲取位置信息。
精確的指紋匹配定位算法需要建立龐大的離線數(shù)據(jù)庫,而傳統(tǒng)的指紋匹配定位算法因計算匹配的性能低而不得不采用粗粒度的測量柵格和網(wǎng)絡(luò)密度,成為定位精度提高的瓶頸。Hadoop是專為離線處理和大規(guī)模數(shù)據(jù)分析而設(shè)計的,非常適合于一次寫入,多次讀取的數(shù)據(jù)存儲需求。因此,本研究以礦井為應(yīng)用場景說明基于Hadoop云平臺的指紋匹配定位算法的應(yīng)用優(yōu)勢。
云計算[2](cloud computing)是以數(shù)據(jù)為中心,依托并行數(shù)據(jù)處理技術(shù)、編程模式和虛擬化等技術(shù),基于互聯(lián)網(wǎng)向個人或企業(yè)用戶提供按需即取的計算。其基本原理是將存儲和計算服務(wù)分布在大量分布式計算機上,可將分布式計算機的數(shù)據(jù)處理資源和數(shù)據(jù)存儲資源整合在一起協(xié)同工作。按照提供服務(wù)的不同,云計算一般認為包含以下幾個層次的服務(wù):①Software as a Service,軟件即服務(wù),簡稱SaaS,這層的作用是將應(yīng)用作為服務(wù)提供給客戶。②Platform as a Service,平臺即服務(wù),簡稱PaaS,這層的作用是將一個開發(fā)平臺作為服務(wù)提供給用戶。③Infrastructure as a Service,基礎(chǔ)設(shè)施即服務(wù),簡稱IaaS,這層的作用是提供虛擬機或者其他資源作為服務(wù)提供給用戶。
Hadoop[3]是一個用于運行應(yīng)用程序在大型集群的廉價硬件設(shè)備上的軟件框架,Hadoop實現(xiàn)了類似于GFS(Google file system,Google文件系統(tǒng))的分布式文件系統(tǒng)HDFS(Hadoop Distributed File System)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。Hadoop MapReduce實現(xiàn)了Google MapReduce的基本功能,其工作原理是把大的數(shù)據(jù)集分發(fā)到Hadoop集群上的每一個Datanode上實現(xiàn)數(shù)據(jù)的可靠性,每個Datanode會周期性的返回自己完成的工作狀態(tài)報告。HDFS、MapReduce、Hadoop Common是Hadoop的核心技術(shù)。
圖1 指紋匹配定位算法
指紋匹配定位算法分為以下2個階段。
(1)場強離線數(shù)據(jù)庫建立階段[5]。離線階段的主要工作是在定位場景內(nèi)按照一定的方法選取一些重要的位置建立該位置的場景指紋信息,對于該位置的確定,可以將定位場景劃分成一定的網(wǎng)格,按比例選取劃定好的網(wǎng)格坐標位置采集周圍ZigBee協(xié)調(diào)器信號強度值,將采集的數(shù)據(jù)根據(jù)相應(yīng)ZigBee協(xié)調(diào)器的MAC地址作為采集指紋數(shù)據(jù)庫的“指紋數(shù)據(jù)”存入相應(yīng)的位置數(shù)據(jù)庫。該數(shù)據(jù)庫記錄了與該點所在位置有關(guān)的無線環(huán)境信息。將采集到的場景指紋信息存入指紋數(shù)據(jù)庫中,待在線定位階段使用。
(2)在線定位階段。這個階段的待定位人員的位置是未知的,且是移動的,因此得到的場景指紋信息也是實時的,該組指紋信息將用于與建庫階段的場強數(shù)據(jù)庫中的各組指紋數(shù)據(jù)按照一定的匹配算法進行匹配,得到待定位人員的位置信息,完成定位過程。
基于Hadoop云平臺的礦井人員定位系統(tǒng)分為井下數(shù)據(jù)采集定位和井上數(shù)據(jù)處理中心2部分。以下內(nèi)容對2部分分別做設(shè)計說明。
對于井下的定位[6]階段,當(dāng)待定位人員(ZigBee終端器)進入井下由無線傳感器網(wǎng)絡(luò)組成的ZigBee網(wǎng)絡(luò)時,ZigBee終端器將實時接收到的RSS值及相應(yīng)ZigBee協(xié)調(diào)器的MAC地址以無線信道的方式通過ZigBee路由器傳送給ZigBee協(xié)調(diào)器,最后ZigBee協(xié)調(diào)器通過串行接口或者工業(yè)以太網(wǎng)與井上數(shù)據(jù)中心連接,由井上數(shù)據(jù)中心的Hadoop云平臺對接收到的位置信息與離線階段建立的離線數(shù)據(jù)庫按照一定的匹配算法處理,實現(xiàn)井下人員的定位。如圖2所示。
圖2 井下定位部分
基于Hadoop云平臺的礦井人員定位就是利用云計算的技術(shù)和理念構(gòu)建井上數(shù)據(jù)中心的基礎(chǔ)設(shè)施和服務(wù),根據(jù)井下人員定位的服務(wù)要求,采用Hadoop開源軟件構(gòu)建一個基于云計算的礦井人員定位系統(tǒng)的離線數(shù)據(jù)處理中心模型,如圖3所示。
圖3 井上數(shù)據(jù)中心模型
客戶端是礦山管理人員利用web瀏覽器或應(yīng)用軟件來瀏覽或操作需定位人員的界面。Web服務(wù)器主要作用是用來響應(yīng)來自客戶端的HTTP請求,通過請求/響應(yīng)協(xié)議,將Hadoop云平臺處理后的定位信息通過Web服務(wù)器以網(wǎng)頁的形式直觀的返回給客戶端。應(yīng)用服務(wù)器的主要作用是用戶管理、資源管理、安全管理等。Hadoop集群是由1個master和多個slave組成的集群環(huán)境,其主要作用是將離線階段建立的離線場強數(shù)據(jù)庫實體虛擬成一個文件系統(tǒng),提供數(shù)據(jù)的分布式存儲。
Hadoop集群的搭建過程:配置/etc/hosts文件、安裝JDK及環(huán)境變量設(shè)置、設(shè)置ssh無密碼登陸、安裝Hadoop及Hadoop環(huán)境變量設(shè)置、masters和slaves文件設(shè)置、新建Hadoop用戶及目錄。
基于Hadoop的MapReduce編程模型寫出來的應(yīng)用程序可以以容錯的方式運行在大型集群上,并行地處理海量的數(shù)據(jù)集。MapReduce采用“分而治之”的思想,把對大規(guī)模數(shù)據(jù)集的操作分發(fā)給1個主節(jié)點管理下的各分節(jié)點共同完成。然后通過整合各分節(jié)點的中間結(jié)果,得到最終結(jié)果。
在MapReduce計算模型[7]中,實現(xiàn)基于MapReduce的關(guān)鍵是開發(fā)人員自定義的map函數(shù)和reduce函數(shù)。其中map負責(zé)待計算任務(wù)的分解,reduce負責(zé)匯總各子任務(wù)處理后的結(jié)果。而對于在計算過程中的分布式存儲、容錯處理、工作調(diào)度、網(wǎng)絡(luò)通信與安全等復(fù)雜問題,均由MapReduce框架調(diào)負責(zé)。在map階段,MapReduce模型將任務(wù)的輸入數(shù)據(jù)分割成固定大小的片段(splits),隨后將每個split進一步分解成一批鍵值對(key,value)。Hadoop為每一個split創(chuàng)建一個map任務(wù)用于執(zhí)行開發(fā)人員自定義的map函數(shù)。在reduce階段,reduce把從不同map任務(wù)接收來的數(shù)據(jù)整合在一起并行進行排序,然后調(diào)用開發(fā)人員自定義的reduce函數(shù),對輸入的map結(jié)果進行處理,并將處理結(jié)果輸出到HDFS上。在整個處理過程中,對于開發(fā)人員來說,只用設(shè)計map函數(shù)和reduce函數(shù)的實現(xiàn)即可,將并行程序均需關(guān)注的設(shè)計細節(jié)抽象成公共模塊并交由系統(tǒng)實現(xiàn),簡化了開發(fā)人員的編程工作,使開發(fā)人員解放出來去專注于應(yīng)用程序的邏輯實現(xiàn)。如圖4所示。
圖4 Map Reduce模型
根據(jù)以上的模型,對Hadoop云計算平臺和指紋匹配定位算法的結(jié)合做了初步的分析與設(shè)計,利用Hadoop分布式開源軟件框架,將離線數(shù)據(jù)庫資源存儲在HDFS分布式框架內(nèi),MapReduce處理定位階段的匹配處理,實現(xiàn)井下人員快速準確的定位服務(wù)。
基于Hadoop云平臺的礦井人員定位系統(tǒng)運行在一個包括1個主節(jié)點master與多個子節(jié)點slave的集群環(huán)境中。其中master作為控制節(jié)點,用來管理文件系統(tǒng)的命名空間,將所有的文件和文件夾的元數(shù)據(jù)保存在一個文件系統(tǒng)樹中,并使用事物日志(EditLog)負責(zé)記錄文件是如何分割成數(shù)據(jù)塊的,以及這些數(shù)據(jù)塊分別存儲到哪些slave上。鑒于主節(jié)點master的重要性,在實際應(yīng)用中,通過選擇性能較好的服務(wù)器作為master節(jié)點,可以最大限度地避免主節(jié)點master失效。也可以用另一臺機器作為secondary namenode用作備份節(jié)點。slave節(jié)點負責(zé)子任務(wù)的分布式計算和數(shù)據(jù)資源的存儲,對其性能不作要求。
首先將需要將離線階段的數(shù)據(jù)庫作為待定位信息存儲到hadoop集群的分布式文件系統(tǒng)HDFS中,開發(fā)人員編寫的MapReduce程序通過客戶端操作Web服務(wù)器提交到master主節(jié)點端,在各個slave節(jié)點端,各自的Map Task先將各自維護的離線數(shù)據(jù)庫迭代解析為一個個(key,value)對,生成定位文件并存儲到hadoop集群的分布式文件系統(tǒng)HDFS中。
定位文件被分布式存儲到HDFS中以后,開發(fā)人員設(shè)計用于匹配定位的Map/Reduce函數(shù),并行的進行匹配定位處理。當(dāng)客戶端發(fā)起礦井人員定位請求時,主節(jié)點接到請求,JobTracker接收定位數(shù)據(jù)(需定位人員佩帶的ZigBee節(jié)點所接收到的RSS值及對應(yīng)的ZigBee協(xié)調(diào)器的MAC地址),JobTracker接收完定位數(shù)據(jù)以后,分發(fā)開發(fā)人員編寫的map函數(shù)到各個slave節(jié)點。在各個slave節(jié)點上運行每個map函數(shù)后返回這個定位節(jié)點所發(fā)射出的所有定位信息,并返回一系列〈RSS值及MAC地址,坐標值〉的鍵值對作為臨時結(jié)果存放到本地磁盤上,由MapReduce系統(tǒng)運行時負責(zé)收集這些鍵值對。按照key對(key,value)對進行排序,并存放到〈key,value list〉中,調(diào)用用戶編寫的Reduce函數(shù)處理匹配階段,并將最終匹配結(jié)果存放到HDFS中,完成匹配過程,得到定位信息并反饋給客戶端。如圖5所示。
圖5 定位流程
本研究設(shè)計并開發(fā)了基于Hadoop的礦井人員定位平臺,采用Hadoop集群方案,主要以HDFS分布式文件系統(tǒng),MapReduce并行計算模型作為處理離線數(shù)據(jù)庫的主要方法,在大量的廉價普通計算機上搭建該平臺,達到高精度和快速的人員定位。目前該定位平臺還在開發(fā)中,系統(tǒng)的各個模塊實現(xiàn)的結(jié)果表明,此系統(tǒng)具有良好的擴展性和易維護性,采用的技術(shù)路線和設(shè)計方法是有效和可行的。在下一步的研究中,將致力于進一步提升定位系統(tǒng)性能,同時研究對礦井安全數(shù)據(jù)(溫度、濕度、瓦斯?jié)舛?、礦塵等)的處理,給礦山安全生產(chǎn)提供技術(shù)支撐。
[1] 劉曉文,王振華,王淑涵.基于RSSI算法的礦井無線定位技術(shù)研究[J].煤礦機械,2009,30(3):59-60.
[2] 翟巖龍,羅 壯,楊 凱,等.基于Hadoop的高性能海量數(shù)據(jù)處理平臺研究[J].計算機科學(xué),2013(3):100-103.
[3] 劉樹仁,宋亞奇,朱永利,等.基于Hadoop的智能電網(wǎng)狀態(tài)監(jiān)測數(shù)據(jù)存儲研究[J].計算機科學(xué),2013(1):81-84.
[4] 胡長俊,李 鑫.基于RSSI的井下定位技術(shù)研究[J].煤礦機械,2010,30(10):71-73.
[5] 唐 煒,鄭小林,干紅華,等.基于運動估計的ZigBee無線網(wǎng)絡(luò)定位方法[J].計算機工程,2010(10):256-261.
[6] 劉曉文,張秀均,郝麗娜,等.基于WI-FI的井下定位算法研究[J].傳感技術(shù)學(xué)報,2012(6):854-857.
[7] 楊 喆,陳 鋒.使用MapReduce編程模型進行大規(guī)模FCD并行處理[J].電子技術(shù),2010(9):17-19.