龔 強,李 萌
一種基于大數(shù)據(jù)云計算的地震房屋損失評估模型
龔 強1,2,李 萌1,2
(1.中國地震局工程力學(xué)研究所,黑龍江 哈爾濱 150080;2.中國地震局地震工程與工程振動重點實驗室,黑龍江 哈爾濱 150080)
針對地震房屋損失評估問題,提出一種基于大數(shù)據(jù)云計算的評估模型,該模型采用HBase數(shù)據(jù)庫存儲采集到的地震房屋損失數(shù)據(jù),運用HadoopMapreduce分布式計算模型對數(shù)據(jù)庫進行計算操作,最后得到地震房屋損失的評估值。
大數(shù)據(jù); 云計算; 損失評估;Hadoop
地震的災(zāi)害損失評估工作一直倍受重視。快速和比較精準(zhǔn)的災(zāi)害損失評估能夠?qū)c災(zāi)和災(zāi)害重建問題起到非常有益的指導(dǎo)作用。大數(shù)據(jù)的特點是數(shù)據(jù)量大、數(shù)據(jù)高速增長、數(shù)據(jù)異構(gòu)化和數(shù)據(jù)具有價值性。云計算是基于其核心的虛擬化技術(shù),將Internet作為載體,面向用戶的一種大規(guī)模資源共享模型。對于用戶來說不需要明白其具體的運行機制,只需要提交自己的資源需求給云端,就能得到云端響應(yīng),而且這種資源共享模型是可按需分配資源的,地震災(zāi)害數(shù)據(jù)具備以上的特點。隨著地震災(zāi)害數(shù)據(jù)量的逐年累積以及數(shù)據(jù)采集方式的多樣化發(fā)展,運用比較傳統(tǒng)的計算模型已經(jīng)不再具備優(yōu)勢,針對以上的瓶頸,隨著大數(shù)據(jù)云計算的方法引入,都能得到解決。地震災(zāi)害損失包括很多方面:道橋、生命線工程、房屋等。地震的災(zāi)害數(shù)據(jù)的結(jié)構(gòu)類型也多樣化,本文數(shù)據(jù)僅限于文本信息。對于房屋的震害損失評估也分為多個方面,這里只討論房屋結(jié)構(gòu)的直接經(jīng)濟損失。
HBase是一個分布式的、高性能、可伸縮的面向列的非關(guān)系型數(shù)據(jù)庫。它是Google“BigTable”非關(guān)系型數(shù)據(jù)庫的開源實現(xiàn),利用HDFS分布式文件系統(tǒng)能夠提供分布式文件存儲,從而利用大量廉價的計算機組成一個龐大的云端數(shù)據(jù)存儲系統(tǒng)。
1.1 HBase分布式數(shù)據(jù)庫優(yōu)點1
根據(jù)已有的研究可以發(fā)現(xiàn)HBase數(shù)據(jù)庫具有以下優(yōu)點:
(1)列的可擴展性。在最初建表的時候,只有列簇(Column Family)和行鍵(RowKey)是需要預(yù)先定義的,但是列簇可以由許多的列(Column)組成,可以根據(jù)后續(xù)的需要進行動態(tài)擴展。
(2)可以實現(xiàn)高性能的并發(fā)讀寫操作。這是直接運用HDFS文件系統(tǒng)所辦不到的。
(3)能夠?qū)?shù)據(jù)實現(xiàn)切分。當(dāng)表中的數(shù)據(jù)超過某一個閥值以后,HBase會自動切分該數(shù)據(jù),能夠大大提高HBase數(shù)據(jù)的寫入速度。
(4)高可靠性。在HBase中,數(shù)據(jù)是冗余存儲的,一份數(shù)據(jù)被拷貝了很多份,存儲在不同的節(jié)點,保證了數(shù)據(jù)不會因為部分節(jié)點的宕機而丟失破損。
1.2 房屋震害數(shù)據(jù)庫設(shè)計
Hbase是以表的形式來存儲數(shù)據(jù)的,數(shù)據(jù)以Key-Value的鍵-值對形式存儲在表格中。Key是行鍵是一行信息的標(biāo)識符。Value則是具體的數(shù)據(jù)信息。根據(jù)GBT18208.4-2011,計算地震房屋破壞直接損失的公式為:

式中:
Sis—— i評估子區(qū)s類房屋建筑總面積,單位為平方米(m2);
Risj—— i評估子區(qū)s類房屋j級破壞的破壞比;
Disj—— i評估子區(qū)s類房屋j級破壞的損失比;
Pis—— i評估子區(qū)s類房屋重置單價,單位為元每平方米。
根據(jù)上述公式可以看出計算地震房屋破壞直接損失需要用到的數(shù)據(jù)分別是Sis、Risj、Disj和Pis四項數(shù)據(jù)。因為Hbase數(shù)據(jù)讀取時是按行讀取的,所以對行鍵的設(shè)計要便于以后的查詢,本文只錄入數(shù)字信息,可以簡單設(shè)行健為Num表示房屋的編號,列簇里面則存放相關(guān)的信息,這里設(shè)為Info 。將上面的四項數(shù)據(jù)設(shè)為Info里面的四列S、R、D和 P,設(shè)計表格如下(表1):
可以將需要處理的數(shù)據(jù)批量錄入HBase數(shù)據(jù)表中,當(dāng)數(shù)據(jù)表大小超過閾值時就會被自動分割成多份splits,成為regions,以供后續(xù)的Mapreduce程序調(diào)用。

表1 HBase數(shù)據(jù)表
2.1 Mapreduce編程模型介紹
Mapreduce是一種編程模型,運用Mapreduce模型編寫的程序能夠在上千臺計算機上同時運行。從下面的Mapreduce工作原理圖中可以看出,它主要包含兩個核心的函數(shù)抽象類Mapper和Reducer。大型文件會被分割成多個數(shù)據(jù)塊,然后在不同的節(jié)點被處理,其中每個節(jié)點的Map模塊將輸入數(shù)據(jù)轉(zhuǎn)化為Key-Value鍵-值對的形式輸出,這些鍵-值對數(shù)據(jù)再由Reduce模塊獲取,Reduce模塊會將有著相同的Key值的Value值合并起來最后得到結(jié)果。圖1描述了Mapreduce編程模型的工作原理。通過以上步驟將本來在一臺計算機上的運算任務(wù)分散到多個運算節(jié)點共同協(xié)作,大大提高了運算速度,這就是云計算區(qū)別于傳統(tǒng)運算的優(yōu)勢。

圖1 Mapreduce工作原理圖Fig.1 Diagram of mapreduce working principle
2.2 程序流程設(shè)計
地震房屋破壞直接損失從計算公式上來看可以很容易的將其與Mapreduce計算模型聯(lián)系起來。公式中需要先計算出單棟房屋的震害損失,然后再逐個累加得到總和。相關(guān)的計算數(shù)據(jù)被預(yù)先存進了HBase數(shù)據(jù)庫表格中。這里可以將計算過程分為兩個Mapreduce任務(wù),第一個Mapreduce任務(wù)用來計算所有房屋的單體震害損失,第二個Mapreduce任務(wù)則計算總和(表2)。

表2 第一個Mapreduce運算過程
上表最右側(cè)一列是示例,詳細說明了從HBase數(shù)據(jù)庫中讀取到的數(shù)據(jù)處理過程。每行數(shù)據(jù)首先被Mapper1轉(zhuǎn)變成新的鍵-值對,這里新的Key為建筑物的編號。從Mapper1輸出以后,經(jīng)中間過程Shuffle排序,最后在Reducer中,具有相同建筑物編號的Value值會被合并成(K2,list(V2))這樣的形式,最后計算得到房屋的單體震害損失。
第二個Mapreduce任務(wù)是個求和過程表3。表3第三列也是示例,第一個Mapreduce任務(wù)的輸出數(shù)據(jù)作為下一個任務(wù)的輸入。在Mapper過程中,將所有數(shù)據(jù)的新Key值設(shè)為1,則每個運算節(jié)點上的相關(guān)數(shù)據(jù)都具有相同的Key值,會被對應(yīng)的Reducer合并在一起,最后一步求和得出結(jié)果,最終結(jié)果會被寫入HBase數(shù)據(jù)庫中。

表3 第二個Mapreduce運算過程
因為沒有收集到足夠的數(shù)據(jù)來驗證該評估模型的優(yōu)異性,這里只能從理論上與傳統(tǒng)評估模型進行分析比較。在傳統(tǒng)的地震房屋損失評估方法中,采取抽樣的方式來獲取計算數(shù)據(jù)樣本,抽樣率一般只在20%以下,從數(shù)據(jù)源方面來講就一定程度上降低了評估結(jié)果的精度。云計算的數(shù)據(jù)源則是全部錄入,不需采樣,所以得出的評估結(jié)果理論上更具有可信度。而且HBase數(shù)據(jù)庫能夠?qū)鹘y(tǒng)的關(guān)系型數(shù)據(jù)庫無法處理的海量數(shù)據(jù)進行實時錄入、查詢和修改,冗余存儲的特點也使其比傳統(tǒng)的數(shù)據(jù)庫更加安全可靠。在計算過程中,相比較于傳統(tǒng)的單機串行計算方式(如MATLAB),分布式計算不要求單臺計算機的性能,而是從計算機的數(shù)量上取勝。一臺計算機的工作量被成千上萬的云端計算機分擔(dān),計算速度呈指數(shù)倍增長。而且云計算系統(tǒng)可靠性高,單個節(jié)點的故障并不會影響整個計算過程。更方便的是,云資源可以通過付費方式來獲取,如比較有名的商用云平臺,微軟的Azure、Google AppEngine、阿里巴巴云等,隨用隨付費,不需要自己來購買高性能的計算機,非常經(jīng)濟。
本文提出將云計算的方法運用到地震房屋損失評估上。從最初的數(shù)據(jù)存儲開始,將需要計算的數(shù)據(jù)保存在分布式非關(guān)系型數(shù)據(jù)庫HBase里面,設(shè)計了建表的具體格式,然后再運用Mapreduce編程讀取HBase里面的數(shù)據(jù)來處理。本文就求解過程設(shè)計了兩個Mapreduce任務(wù),并且給出了詳細的運算設(shè)計過程,具體到每一步的Key-Value定義。本文只是一個小小的嘗試,其實云計算在地震領(lǐng)域的應(yīng)用范圍非常廣泛。云計算可以用來處理多樣化的數(shù)據(jù),包括音頻、圖像、文本等。分布式的文件存儲系統(tǒng)和計算過程能夠大大降低儲存成本和加快運算速度,對于如地震速報、震害預(yù)測以及震后救援工作都具有非常重要的意義。
[1] 張德豐. 云計算實戰(zhàn)[M].北京:清華大學(xué)出版社, 2012.
[2] 龔強. 云計算關(guān)鍵技術(shù)之編程模型認知研究[J]. 信息技術(shù), 2015(1):1-3.
[3] 龔強. 云計算關(guān)鍵技術(shù)之分布式計算認知研究[J].信息技術(shù),2014(8):1-3.
[4] GBT 18208.4-2011, 地震現(xiàn)場工作第4部分: 災(zāi)害直接損失評估[S].
[5] 鮑亮, 陳榮.深入淺出云計算[M]. 北京: 清華大學(xué)出版社, 2010.
[6] 吳朱華. 云計算核心技術(shù)剖析[M]. 北京: 人民郵電出版社, 2011.
[7] [美]懷特. Hadoop權(quán)威指南(中文版)[M]. 周傲英, 曾大聃(譯). 北京: 清華大學(xué)出版社, 2010.
[8] 陸嘉恒. Hadoop實踐[M]. 第2版. 北京: 機械工業(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]. 天津科技, 2016(01): 52-55.
[12] 曹強. 海量網(wǎng)絡(luò)存儲系統(tǒng)原理與設(shè)計[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
龔強 (1956 -),男,滿族,黑龍江省哈爾濱市人,博士后,教授,博士生導(dǎo)師,研究員,現(xiàn)主要從事測繪與GIS、現(xiàn)代經(jīng)濟與管理、網(wǎng)格計算與地理空間信息網(wǎng)格、云計算等方面的研究及教學(xué)工作。