龔 強(qiáng),李 萌
一種基于大數(shù)據(jù)云計(jì)算的地震房屋損失評估模型
龔 強(qiáng)1,2,李 萌1,2
(1.中國地震局工程力學(xué)研究所,黑龍江 哈爾濱 150080;2.中國地震局地震工程與工程振動重點(diǎn)實(shí)驗(yàn)室,黑龍江 哈爾濱 150080)
針對地震房屋損失評估問題,提出一種基于大數(shù)據(jù)云計(jì)算的評估模型,該模型采用HBase數(shù)據(jù)庫存儲采集到的地震房屋損失數(shù)據(jù),運(yùn)用HadoopMapreduce分布式計(jì)算模型對數(shù)據(jù)庫進(jìn)行計(jì)算操作,最后得到地震房屋損失的評估值。
大數(shù)據(jù); 云計(jì)算; 損失評估;Hadoop
地震的災(zāi)害損失評估工作一直倍受重視??焖俸捅容^精準(zhǔn)的災(zāi)害損失評估能夠?qū)c災(zāi)和災(zāi)害重建問題起到非常有益的指導(dǎo)作用。大數(shù)據(jù)的特點(diǎn)是數(shù)據(jù)量大、數(shù)據(jù)高速增長、數(shù)據(jù)異構(gòu)化和數(shù)據(jù)具有價值性。云計(jì)算是基于其核心的虛擬化技術(shù),將Internet作為載體,面向用戶的一種大規(guī)模資源共享模型。對于用戶來說不需要明白其具體的運(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ù)據(jù)云計(jì)算的方法引入,都能得到解決。地震災(zāi)害損失包括很多方面:道橋、生命線工程、房屋等。地震的災(zāi)害數(shù)據(jù)的結(jié)構(gòu)類型也多樣化,本文數(shù)據(jù)僅限于文本信息。對于房屋的震害損失評估也分為多個方面,這里只討論房屋結(jié)構(gòu)的直接經(jīng)濟(jì)損失。
HBase是一個分布式的、高性能、可伸縮的面向列的非關(guān)系型數(shù)據(jù)庫。它是Google“BigTable”非關(guān)系型數(shù)據(jù)庫的開源實(shí)現(xiàn),利用HDFS分布式文件系統(tǒng)能夠提供分布式文件存儲,從而利用大量廉價的計(jì)算機(jī)組成一個龐大的云端數(shù)據(jù)存儲系統(tǒng)。
1.1 HBase分布式數(shù)據(jù)庫優(yōu)點(diǎn)1
根據(jù)已有的研究可以發(fā)現(xiàn)HBase數(shù)據(jù)庫具有以下優(yōu)點(diǎn):
(1)列的可擴(kuò)展性。在最初建表的時候,只有列簇(Column Family)和行鍵(RowKey)是需要預(yù)先定義的,但是列簇可以由許多的列(Column)組成,可以根據(jù)后續(xù)的需要進(jìn)行動態(tài)擴(kuò)展。
(2)可以實(shí)現(xiàn)高性能的并發(fā)讀寫操作。這是直接運(yùn)用HDFS文件系統(tǒng)所辦不到的。
(3)能夠?qū)?shù)據(jù)實(shí)現(xiàn)切分。當(dāng)表中的數(shù)據(jù)超過某一個閥值以后,HBase會自動切分該數(shù)據(jù),能夠大大提高HBase數(shù)據(jù)的寫入速度。
(4)高可靠性。在HBase中,數(shù)據(jù)是冗余存儲的,一份數(shù)據(jù)被拷貝了很多份,存儲在不同的節(jié)點(diǎn),保證了數(shù)據(jù)不會因?yàn)椴糠止?jié)點(diǎn)的宕機(jī)而丟失破損。
1.2 房屋震害數(shù)據(jù)庫設(shè)計(jì)
Hbase是以表的形式來存儲數(shù)據(jù)的,數(shù)據(jù)以Key-Value的鍵-值對形式存儲在表格中。Key是行鍵是一行信息的標(biāo)識符。Value則是具體的數(shù)據(jù)信息。根據(jù)GBT18208.4-2011,計(jì)算地震房屋破壞直接損失的公式為:
式中:
Sis—— i評估子區(qū)s類房屋建筑總面積,單位為平方米(m2);
Risj—— i評估子區(qū)s類房屋j級破壞的破壞比;
Disj—— i評估子區(qū)s類房屋j級破壞的損失比;
Pis—— i評估子區(qū)s類房屋重置單價,單位為元每平方米。
根據(jù)上述公式可以看出計(jì)算地震房屋破壞直接損失需要用到的數(shù)據(jù)分別是Sis、Risj、Disj和Pis四項(xiàng)數(shù)據(jù)。因?yàn)镠base數(shù)據(jù)讀取時是按行讀取的,所以對行鍵的設(shè)計(jì)要便于以后的查詢,本文只錄入數(shù)字信息,可以簡單設(shè)行健為Num表示房屋的編號,列簇里面則存放相關(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ù)表大小超過閾值時就會被自動分割成多份splits,成為regions,以供后續(xù)的Mapreduce程序調(diào)用。
表1 HBase數(shù)據(jù)表
2.1 Mapreduce編程模型介紹
Mapreduce是一種編程模型,運(yùn)用Mapreduce模型編寫的程序能夠在上千臺計(jì)算機(jī)上同時運(yùn)行。從下面的Mapreduce工作原理圖中可以看出,它主要包含兩個核心的函數(shù)抽象類Mapper和Reducer。大型文件會被分割成多個數(shù)據(jù)塊,然后在不同的節(jié)點(diǎn)被處理,其中每個節(jié)點(diǎn)的Map模塊將輸入數(shù)據(jù)轉(zhuǎn)化為Key-Value鍵-值對的形式輸出,這些鍵-值對數(shù)據(jù)再由Reduce模塊獲取,Reduce模塊會將有著相同的Key值的Value值合并起來最后得到結(jié)果。圖1描述了Mapreduce編程模型的工作原理。通過以上步驟將本來在一臺計(jì)算機(jī)上的運(yùn)算任務(wù)分散到多個運(yùn)算節(jié)點(diǎn)共同協(xié)作,大大提高了運(yùn)算速度,這就是云計(jì)算區(qū)別于傳統(tǒng)運(yùn)算的優(yōu)勢。
圖1 Mapreduce工作原理圖Fig.1 Diagram of mapreduce working principle
2.2 程序流程設(shè)計(jì)
地震房屋破壞直接損失從計(jì)算公式上來看可以很容易的將其與Mapreduce計(jì)算模型聯(lián)系起來。公式中需要先計(jì)算出單棟房屋的震害損失,然后再逐個累加得到總和。相關(guān)的計(jì)算數(shù)據(jù)被預(yù)先存進(jìn)了HBase數(shù)據(jù)庫表格中。這里可以將計(jì)算過程分為兩個Mapreduce任務(wù),第一個Mapreduce任務(wù)用來計(jì)算所有房屋的單體震害損失,第二個Mapreduce任務(wù)則計(jì)算總和(表2)。
表2 第一個Mapreduce運(yùn)算過程
上表最右側(cè)一列是示例,詳細(xì)說明了從HBase數(shù)據(jù)庫中讀取到的數(shù)據(jù)處理過程。每行數(shù)據(jù)首先被Mapper1轉(zhuǎn)變成新的鍵-值對,這里新的Key為建筑物的編號。從Mapper1輸出以后,經(jīng)中間過程Shuffle排序,最后在Reducer中,具有相同建筑物編號的Value值會被合并成(K2,list(V2))這樣的形式,最后計(jì)算得到房屋的單體震害損失。
第二個Mapreduce任務(wù)是個求和過程表3。表3第三列也是示例,第一個Mapreduce任務(wù)的輸出數(shù)據(jù)作為下一個任務(wù)的輸入。在Mapper過程中,將所有數(shù)據(jù)的新Key值設(shè)為1,則每個運(yùn)算節(jié)點(diǎn)上的相關(guān)數(shù)據(jù)都具有相同的Key值,會被對應(yīng)的Reducer合并在一起,最后一步求和得出結(jié)果,最終結(jié)果會被寫入HBase數(shù)據(jù)庫中。
表3 第二個Mapreduce運(yùn)算過程
因?yàn)闆]有收集到足夠的數(shù)據(jù)來驗(yàn)證該評估模型的優(yōu)異性,這里只能從理論上與傳統(tǒng)評估模型進(jìn)行分析比較。在傳統(tǒng)的地震房屋損失評估方法中,采取抽樣的方式來獲取計(jì)算數(shù)據(jù)樣本,抽樣率一般只在20%以下,從數(shù)據(jù)源方面來講就一定程度上降低了評估結(jié)果的精度。云計(jì)算的數(shù)據(jù)源則是全部錄入,不需采樣,所以得出的評估結(jié)果理論上更具有可信度。而且HBase數(shù)據(jù)庫能夠?qū)鹘y(tǒng)的關(guān)系型數(shù)據(jù)庫無法處理的海量數(shù)據(jù)進(jìn)行實(shí)時錄入、查詢和修改,冗余存儲的特點(diǎn)也使其比傳統(tǒng)的數(shù)據(jù)庫更加安全可靠。在計(jì)算過程中,相比較于傳統(tǒng)的單機(jī)串行計(jì)算方式(如MATLAB),分布式計(jì)算不要求單臺計(jì)算機(jī)的性能,而是從計(jì)算機(jī)的數(shù)量上取勝。一臺計(jì)算機(jī)的工作量被成千上萬的云端計(jì)算機(jī)分擔(dān),計(jì)算速度呈指數(shù)倍增長。而且云計(jì)算系統(tǒng)可靠性高,單個節(jié)點(diǎn)的故障并不會影響整個計(jì)算過程。更方便的是,云資源可以通過付費(fèi)方式來獲取,如比較有名的商用云平臺,微軟的Azure、Google AppEngine、阿里巴巴云等,隨用隨付費(fèi),不需要自己來購買高性能的計(jì)算機(jī),非常經(jīng)濟(jì)。
本文提出將云計(jì)算的方法運(yùn)用到地震房屋損失評估上。從最初的數(shù)據(jù)存儲開始,將需要計(jì)算的數(shù)據(jù)保存在分布式非關(guān)系型數(shù)據(jù)庫HBase里面,設(shè)計(jì)了建表的具體格式,然后再運(yùn)用Mapreduce編程讀取HBase里面的數(shù)據(jù)來處理。本文就求解過程設(shè)計(jì)了兩個Mapreduce任務(wù),并且給出了詳細(xì)的運(yùn)算設(shè)計(jì)過程,具體到每一步的Key-Value定義。本文只是一個小小的嘗試,其實(shí)云計(jì)算在地震領(lǐng)域的應(yīng)用范圍非常廣泛。云計(jì)算可以用來處理多樣化的數(shù)據(jù),包括音頻、圖像、文本等。分布式的文件存儲系統(tǒng)和計(jì)算過程能夠大大降低儲存成本和加快運(yùn)算速度,對于如地震速報、震害預(yù)測以及震后救援工作都具有非常重要的意義。
[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)場工作第4部分: 災(zāi)害直接損失評估[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ì)算平臺的文本處理算法的研究與改進(jìn)[J]. 天津科技, 2016(01): 52-55.
[12] 曹強(qiáng). 海量網(wǎng)絡(luò)存儲系統(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)主要從事測繪與GIS、現(xiàn)代經(jīng)濟(jì)與管理、網(wǎng)格計(jì)算與地理空間信息網(wǎng)格、云計(jì)算等方面的研究及教學(xué)工作。