龔 強(qiáng),李 萌
一種基于大數(shù)據(jù)云計(jì)算的地震房屋損失評(píng)估模型
龔 強(qiáng)1,2,李 萌1,2
(1.中國(guó)地震局工程力學(xué)研究所,黑龍江 哈爾濱 150080;2.中國(guó)地震局地震工程與工程振動(dòng)重點(diǎn)實(shí)驗(yàn)室,黑龍江 哈爾濱 150080)
針對(duì)地震房屋損失評(píng)估問題,提出一種基于大數(shù)據(jù)云計(jì)算的評(píng)估模型,該模型采用HBase數(shù)據(jù)庫(kù)存儲(chǔ)采集到的地震房屋損失數(shù)據(jù),運(yùn)用HadoopMapreduce分布式計(jì)算模型對(duì)數(shù)據(jù)庫(kù)進(jìn)行計(jì)算操作,最后得到地震房屋損失的評(píng)估值。
大數(shù)據(jù); 云計(jì)算; 損失評(píng)估;Hadoop
地震的災(zāi)害損失評(píng)估工作一直倍受重視??焖俸捅容^精準(zhǔn)的災(zāi)害損失評(píng)估能夠?qū)c災(zāi)和災(zāi)害重建問題起到非常有益的指導(dǎo)作用。大數(shù)據(jù)的特點(diǎn)是數(shù)據(jù)量大、數(shù)據(jù)高速增長(zhǎng)、數(shù)據(jù)異構(gòu)化和數(shù)據(jù)具有價(jià)值性。云計(jì)算是基于其核心的虛擬化技術(shù),將Internet作為載體,面向用戶的一種大規(guī)模資源共享模型。對(duì)于用戶來說不需要明白其具體的運(yùn)行機(jī)制,只需要提交自己的資源需求給云端,就能得到云端響應(yīng),而且這種資源共享模型是可按需分配資源的,地震災(zāi)害數(shù)據(jù)具備以上的特點(diǎn)。隨著地震災(zāi)害數(shù)據(jù)量的逐年累積以及數(shù)據(jù)采集方式的多樣化發(fā)展,運(yùn)用比較傳統(tǒng)的計(jì)算模型已經(jīng)不再具備優(yōu)勢(shì),針對(duì)以上的瓶頸,隨著大數(shù)據(jù)云計(jì)算的方法引入,都能得到解決。地震災(zāi)害損失包括很多方面:道橋、生命線工程、房屋等。地震的災(zāi)害數(shù)據(jù)的結(jié)構(gòu)類型也多樣化,本文數(shù)據(jù)僅限于文本信息。對(duì)于房屋的震害損失評(píng)估也分為多個(gè)方面,這里只討論房屋結(jié)構(gòu)的直接經(jīng)濟(jì)損失。
HBase是一個(gè)分布式的、高性能、可伸縮的面向列的非關(guān)系型數(shù)據(jù)庫(kù)。它是Google“BigTable”非關(guān)系型數(shù)據(jù)庫(kù)的開源實(shí)現(xiàn),利用HDFS分布式文件系統(tǒng)能夠提供分布式文件存儲(chǔ),從而利用大量廉價(jià)的計(jì)算機(jī)組成一個(gè)龐大的云端數(shù)據(jù)存儲(chǔ)系統(tǒng)。
1.1 HBase分布式數(shù)據(jù)庫(kù)優(yōu)點(diǎn)1
根據(jù)已有的研究可以發(fā)現(xiàn)HBase數(shù)據(jù)庫(kù)具有以下優(yōu)點(diǎn):
(1)列的可擴(kuò)展性。在最初建表的時(shí)候,只有列簇(Column Family)和行鍵(RowKey)是需要預(yù)先定義的,但是列簇可以由許多的列(Column)組成,可以根據(jù)后續(xù)的需要進(jìn)行動(dòng)態(tài)擴(kuò)展。
(2)可以實(shí)現(xiàn)高性能的并發(fā)讀寫操作。這是直接運(yùn)用HDFS文件系統(tǒng)所辦不到的。
(3)能夠?qū)?shù)據(jù)實(shí)現(xiàn)切分。當(dāng)表中的數(shù)據(jù)超過某一個(gè)閥值以后,HBase會(huì)自動(dòng)切分該數(shù)據(jù),能夠大大提高HBase數(shù)據(jù)的寫入速度。
(4)高可靠性。在HBase中,數(shù)據(jù)是冗余存儲(chǔ)的,一份數(shù)據(jù)被拷貝了很多份,存儲(chǔ)在不同的節(jié)點(diǎn),保證了數(shù)據(jù)不會(huì)因?yàn)椴糠止?jié)點(diǎn)的宕機(jī)而丟失破損。
1.2 房屋震害數(shù)據(jù)庫(kù)設(shè)計(jì)
Hbase是以表的形式來存儲(chǔ)數(shù)據(jù)的,數(shù)據(jù)以Key-Value的鍵-值對(duì)形式存儲(chǔ)在表格中。Key是行鍵是一行信息的標(biāo)識(shí)符。Value則是具體的數(shù)據(jù)信息。根據(jù)GBT18208.4-2011,計(jì)算地震房屋破壞直接損失的公式為:
式中:
Sis—— i評(píng)估子區(qū)s類房屋建筑總面積,單位為平方米(m2);
Risj—— i評(píng)估子區(qū)s類房屋j級(jí)破壞的破壞比;
Disj—— i評(píng)估子區(qū)s類房屋j級(jí)破壞的損失比;
Pis—— i評(píng)估子區(qū)s類房屋重置單價(jià),單位為元每平方米。
根據(jù)上述公式可以看出計(jì)算地震房屋破壞直接損失需要用到的數(shù)據(jù)分別是Sis、Risj、Disj和Pis四項(xiàng)數(shù)據(jù)。因?yàn)镠base數(shù)據(jù)讀取時(shí)是按行讀取的,所以對(duì)行鍵的設(shè)計(jì)要便于以后的查詢,本文只錄入數(shù)字信息,可以簡(jiǎn)單設(shè)行健為Num表示房屋的編號(hào),列簇里面則存放相關(guān)的信息,這里設(shè)為Info 。將上面的四項(xiàng)數(shù)據(jù)設(shè)為Info里面的四列S、R、D和 P,設(shè)計(jì)表格如下(表1):
可以將需要處理的數(shù)據(jù)批量錄入HBase數(shù)據(jù)表中,當(dāng)數(shù)據(jù)表大小超過閾值時(shí)就會(huì)被自動(dòng)分割成多份splits,成為regions,以供后續(xù)的Mapreduce程序調(diào)用。
表1 HBase數(shù)據(jù)表
2.1 Mapreduce編程模型介紹
Mapreduce是一種編程模型,運(yùn)用Mapreduce模型編寫的程序能夠在上千臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行。從下面的Mapreduce工作原理圖中可以看出,它主要包含兩個(gè)核心的函數(shù)抽象類Mapper和Reducer。大型文件會(huì)被分割成多個(gè)數(shù)據(jù)塊,然后在不同的節(jié)點(diǎn)被處理,其中每個(gè)節(jié)點(diǎn)的Map模塊將輸入數(shù)據(jù)轉(zhuǎn)化為Key-Value鍵-值對(duì)的形式輸出,這些鍵-值對(duì)數(shù)據(jù)再由Reduce模塊獲取,Reduce模塊會(huì)將有著相同的Key值的Value值合并起來最后得到結(jié)果。圖1描述了Mapreduce編程模型的工作原理。通過以上步驟將本來在一臺(tái)計(jì)算機(jī)上的運(yùn)算任務(wù)分散到多個(gè)運(yùn)算節(jié)點(diǎn)共同協(xié)作,大大提高了運(yùn)算速度,這就是云計(jì)算區(qū)別于傳統(tǒng)運(yùn)算的優(yōu)勢(shì)。
圖1 Mapreduce工作原理圖Fig.1 Diagram of mapreduce working principle
2.2 程序流程設(shè)計(jì)
地震房屋破壞直接損失從計(jì)算公式上來看可以很容易的將其與Mapreduce計(jì)算模型聯(lián)系起來。公式中需要先計(jì)算出單棟房屋的震害損失,然后再逐個(gè)累加得到總和。相關(guān)的計(jì)算數(shù)據(jù)被預(yù)先存進(jìn)了HBase數(shù)據(jù)庫(kù)表格中。這里可以將計(jì)算過程分為兩個(gè)Mapreduce任務(wù),第一個(gè)Mapreduce任務(wù)用來計(jì)算所有房屋的單體震害損失,第二個(gè)Mapreduce任務(wù)則計(jì)算總和(表2)。
表2 第一個(gè)Mapreduce運(yùn)算過程
上表最右側(cè)一列是示例,詳細(xì)說明了從HBase數(shù)據(jù)庫(kù)中讀取到的數(shù)據(jù)處理過程。每行數(shù)據(jù)首先被Mapper1轉(zhuǎn)變成新的鍵-值對(duì),這里新的Key為建筑物的編號(hào)。從Mapper1輸出以后,經(jīng)中間過程Shuffle排序,最后在Reducer中,具有相同建筑物編號(hào)的Value值會(huì)被合并成(K2,list(V2))這樣的形式,最后計(jì)算得到房屋的單體震害損失。
第二個(gè)Mapreduce任務(wù)是個(gè)求和過程表3。表3第三列也是示例,第一個(gè)Mapreduce任務(wù)的輸出數(shù)據(jù)作為下一個(gè)任務(wù)的輸入。在Mapper過程中,將所有數(shù)據(jù)的新Key值設(shè)為1,則每個(gè)運(yùn)算節(jié)點(diǎn)上的相關(guān)數(shù)據(jù)都具有相同的Key值,會(huì)被對(duì)應(yīng)的Reducer合并在一起,最后一步求和得出結(jié)果,最終結(jié)果會(huì)被寫入HBase數(shù)據(jù)庫(kù)中。
表3 第二個(gè)Mapreduce運(yùn)算過程
因?yàn)闆]有收集到足夠的數(shù)據(jù)來驗(yàn)證該評(píng)估模型的優(yōu)異性,這里只能從理論上與傳統(tǒng)評(píng)估模型進(jìn)行分析比較。在傳統(tǒng)的地震房屋損失評(píng)估方法中,采取抽樣的方式來獲取計(jì)算數(shù)據(jù)樣本,抽樣率一般只在20%以下,從數(shù)據(jù)源方面來講就一定程度上降低了評(píng)估結(jié)果的精度。云計(jì)算的數(shù)據(jù)源則是全部錄入,不需采樣,所以得出的評(píng)估結(jié)果理論上更具有可信度。而且HBase數(shù)據(jù)庫(kù)能夠?qū)鹘y(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)無法處理的海量數(shù)據(jù)進(jìn)行實(shí)時(shí)錄入、查詢和修改,冗余存儲(chǔ)的特點(diǎn)也使其比傳統(tǒng)的數(shù)據(jù)庫(kù)更加安全可靠。在計(jì)算過程中,相比較于傳統(tǒng)的單機(jī)串行計(jì)算方式(如MATLAB),分布式計(jì)算不要求單臺(tái)計(jì)算機(jī)的性能,而是從計(jì)算機(jī)的數(shù)量上取勝。一臺(tái)計(jì)算機(jī)的工作量被成千上萬的云端計(jì)算機(jī)分擔(dān),計(jì)算速度呈指數(shù)倍增長(zhǎng)。而且云計(jì)算系統(tǒng)可靠性高,單個(gè)節(jié)點(diǎn)的故障并不會(huì)影響整個(gè)計(jì)算過程。更方便的是,云資源可以通過付費(fèi)方式來獲取,如比較有名的商用云平臺(tái),微軟的Azure、Google AppEngine、阿里巴巴云等,隨用隨付費(fèi),不需要自己來購(gòu)買高性能的計(jì)算機(jī),非常經(jīng)濟(jì)。
本文提出將云計(jì)算的方法運(yùn)用到地震房屋損失評(píng)估上。從最初的數(shù)據(jù)存儲(chǔ)開始,將需要計(jì)算的數(shù)據(jù)保存在分布式非關(guān)系型數(shù)據(jù)庫(kù)HBase里面,設(shè)計(jì)了建表的具體格式,然后再運(yùn)用Mapreduce編程讀取HBase里面的數(shù)據(jù)來處理。本文就求解過程設(shè)計(jì)了兩個(gè)Mapreduce任務(wù),并且給出了詳細(xì)的運(yùn)算設(shè)計(jì)過程,具體到每一步的Key-Value定義。本文只是一個(gè)小小的嘗試,其實(shí)云計(jì)算在地震領(lǐng)域的應(yīng)用范圍非常廣泛。云計(jì)算可以用來處理多樣化的數(shù)據(jù),包括音頻、圖像、文本等。分布式的文件存儲(chǔ)系統(tǒng)和計(jì)算過程能夠大大降低儲(chǔ)存成本和加快運(yùn)算速度,對(duì)于如地震速報(bào)、震害預(yù)測(cè)以及震后救援工作都具有非常重要的意義。
[1] 張德豐. 云計(jì)算實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社, 2012.
[2] 龔強(qiáng). 云計(jì)算關(guān)鍵技術(shù)之編程模型認(rèn)知研究[J]. 信息技術(shù), 2015(1):1-3.
[3] 龔強(qiáng). 云計(jì)算關(guān)鍵技術(shù)之分布式計(jì)算認(rèn)知研究[J].信息技術(shù),2014(8):1-3.
[4] GBT 18208.4-2011, 地震現(xiàn)場(chǎng)工作第4部分: 災(zāi)害直接損失評(píng)估[S].
[5] 鮑亮, 陳榮.深入淺出云計(jì)算[M]. 北京: 清華大學(xué)出版社, 2010.
[6] 吳朱華. 云計(jì)算核心技術(shù)剖析[M]. 北京: 人民郵電出版社, 2011.
[7] [美]懷特. Hadoop權(quán)威指南(中文版)[M]. 周傲英, 曾大聃(譯). 北京: 清華大學(xué)出版社, 2010.
[8] 陸嘉恒. Hadoop實(shí)踐[M]. 第2版. 北京: 機(jī)械工業(yè)出版社, 2014.
[9] Hadoop. Apache. http://hadoop.apache.org/. 2017.
[10] HBase官方文檔0.97. http://abloz.com/hbase/book.html#splitter . 017.
[11] 陳靜. 基于Hadoop云計(jì)算平臺(tái)的文本處理算法的研究與改進(jìn)[J]. 天津科技, 2016(01): 52-55.
[12] 曹強(qiáng). 海量網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)原理與設(shè)計(jì)[M]. 武漢: 華中科技大學(xué)出版社, 2010.
Seismic Damage Assessment Based on Big Data Cloud Computing
GONG Qiang1,2,LI Meng1,2
(1. Institute of Engineering Mechanics,China Earthquake Administration,Heilongjiang Harbin 150080,China ;2. Key Laboratory of Earthquake Engineering and Engineering Vibration,China Earthquake Administration,Heilongjiang Harbin 150080,China)
In order to solve the problem of earthquake house loss assessment, this paper puts adopts the data of earthquake house loss which collected by HBase database, then uses HadoopMapreduce distributed computing model to calculate the database, and finally obtains the evaluation value of earthquake house loss.
big data; cloud computing; loss assessment; Hadoop
P315.9
A
10.13693/j.cnki.cn21-1573.2017.01.013
1674-8565(2017)01-0075-04
2016-11-25
2017-01-01
龔強(qiáng) (1956 -),男,滿族,黑龍江省哈爾濱市人,博士后,教授,博士生導(dǎo)師,研究員,現(xiàn)主要從事測(cè)繪與GIS、現(xiàn)代經(jīng)濟(jì)與管理、網(wǎng)格計(jì)算與地理空間信息網(wǎng)格、云計(jì)算等方面的研究及教學(xué)工作。