龚 强,李 萌
一种基于大数据云计算的地震房屋损失评估模型
龚 强1,2,李 萌1,2
(1.中国地震局工程力学研究所,黑龙江 哈尔滨 150080;2.中国地震局地震工程与工程振动重点实验室,黑龙江 哈尔滨 150080)
针对地震房屋损失评估问题,提出一种基于大数据云计算的评估模型,该模型采用HBase数据库存储采集到的地震房屋损失数据,运用HadoopMapreduce分布式计算模型对数据库进行计算操作,最后得到地震房屋损失的评估值。
大数据; 云计算; 损失评估;Hadoop
地震的灾害损失评估工作一直倍受重视。快速和比较精准的灾害损失评估能够对赈灾和灾害重建问题起到非常有益的指导作用。大数据的特点是数据量大、数据高速增长、数据异构化和数据具有价值性。云计算是基于其核心的虚拟化技术,将Internet作为载体,面向用户的一种大规模资源共享模型。对于用户来说不需要明白其具体的运行机制,只需要提交自己的资源需求给云端,就能得到云端响应,而且这种资源共享模型是可按需分配资源的,地震灾害数据具备以上的特点。随着地震灾害数据量的逐年累积以及数据采集方式的多样化发展,运用比较传统的计算模型已经不再具备优势,针对以上的瓶颈,随着大数据云计算的方法引入,都能得到解决。地震灾害损失包括很多方面:道桥、生命线工程、房屋等。地震的灾害数据的结构类型也多样化,本文数据仅限于文本信息。对于房屋的震害损失评估也分为多个方面,这里只讨论房屋结构的直接经济损失。
HBase是一个分布式的、高性能、可伸缩的面向列的非关系型数据库。它是Google“BigTable”非关系型数据库的开源实现,利用HDFS分布式文件系统能够提供分布式文件存储,从而利用大量廉价的计算机组成一个庞大的云端数据存储系统。
1.1 HBase分布式数据库优点1
根据已有的研究可以发现HBase数据库具有以下优点:
(1)列的可扩展性。在最初建表的时候,只有列簇(Column Family)和行键(RowKey)是需要预先定义的,但是列簇可以由许多的列(Column)组成,可以根据后续的需要进行动态扩展。
(2)可以实现高性能的并发读写操作。这是直接运用HDFS文件系统所办不到的。
(3)能够对数据实现切分。当表中的数据超过某一个阀值以后,HBase会自动切分该数据,能够大大提高HBase数据的写入速度。
(4)高可靠性。在HBase中,数据是冗余存储的,一份数据被拷贝了很多份,存储在不同的节点,保证了数据不会因为部分节点的宕机而丢失破损。
1.2 房屋震害数据库设计
Hbase是以表的形式来存储数据的,数据以Key-Value的键-值对形式存储在表格中。Key是行键是一行信息的标识符。Value则是具体的数据信息。根据GBT18208.4-2011,计算地震房屋破坏直接损失的公式为:
式中:
Sis—— i评估子区s类房屋建筑总面积,单位为平方米(m2);
Risj—— i评估子区s类房屋j级破坏的破坏比;
Disj—— i评估子区s类房屋j级破坏的损失比;
Pis—— i评估子区s类房屋重置单价,单位为元每平方米。
根据上述公式可以看出计算地震房屋破坏直接损失需要用到的数据分别是Sis、Risj、Disj和Pis四项数据。因为Hbase数据读取时是按行读取的,所以对行键的设计要便于以后的查询,本文只录入数字信息,可以简单设行健为Num表示房屋的编号,列簇里面则存放相关的信息,这里设为Info 。将上面的四项数据设为Info里面的四列S、R、D和 P,设计表格如下(表1):
可以将需要处理的数据批量录入HBase数据表中,当数据表大小超过阈值时就会被自动分割成多份splits,成为regions,以供后续的Mapreduce程序调用。
表1 HBase数据表
2.1 Mapreduce编程模型介绍
Mapreduce是一种编程模型,运用Mapreduce模型编写的程序能够在上千台计算机上同时运行。从下面的Mapreduce工作原理图中可以看出,它主要包含两个核心的函数抽象类Mapper和Reducer。大型文件会被分割成多个数据块,然后在不同的节点被处理,其中每个节点的Map模块将输入数据转化为Key-Value键-值对的形式输出,这些键-值对数据再由Reduce模块获取,Reduce模块会将有着相同的Key值的Value值合并起来最后得到结果。图1描述了Mapreduce编程模型的工作原理。通过以上步骤将本来在一台计算机上的运算任务分散到多个运算节点共同协作,大大提高了运算速度,这就是云计算区别于传统运算的优势。
图1 Mapreduce工作原理图Fig.1 Diagram of mapreduce working principle
2.2 程序流程设计
地震房屋破坏直接损失从计算公式上来看可以很容易的将其与Mapreduce计算模型联系起来。公式中需要先计算出单栋房屋的震害损失,然后再逐个累加得到总和。相关的计算数据被预先存进了HBase数据库表格中。这里可以将计算过程分为两个Mapreduce任务,第一个Mapreduce任务用来计算所有房屋的单体震害损失,第二个Mapreduce任务则计算总和(表2)。
表2 第一个Mapreduce运算过程
上表最右侧一列是示例,详细说明了从HBase数据库中读取到的数据处理过程。每行数据首先被Mapper1转变成新的键-值对,这里新的Key为建筑物的编号。从Mapper1输出以后,经中间过程Shuffle排序,最后在Reducer中,具有相同建筑物编号的Value值会被合并成(K2,list(V2))这样的形式,最后计算得到房屋的单体震害损失。
第二个Mapreduce任务是个求和过程表3。表3第三列也是示例,第一个Mapreduce任务的输出数据作为下一个任务的输入。在Mapper过程中,将所有数据的新Key值设为1,则每个运算节点上的相关数据都具有相同的Key值,会被对应的Reducer合并在一起,最后一步求和得出结果,最终结果会被写入HBase数据库中。
表3 第二个Mapreduce运算过程
因为没有收集到足够的数据来验证该评估模型的优异性,这里只能从理论上与传统评估模型进行分析比较。在传统的地震房屋损失评估方法中,采取抽样的方式来获取计算数据样本,抽样率一般只在20%以下,从数据源方面来讲就一定程度上降低了评估结果的精度。云计算的数据源则是全部录入,不需采样,所以得出的评估结果理论上更具有可信度。而且HBase数据库能够对传统的关系型数据库无法处理的海量数据进行实时录入、查询和修改,冗余存储的特点也使其比传统的数据库更加安全可靠。在计算过程中,相比较于传统的单机串行计算方式(如MATLAB),分布式计算不要求单台计算机的性能,而是从计算机的数量上取胜。一台计算机的工作量被成千上万的云端计算机分担,计算速度呈指数倍增长。而且云计算系统可靠性高,单个节点的故障并不会影响整个计算过程。更方便的是,云资源可以通过付费方式来获取,如比较有名的商用云平台,微软的Azure、Google AppEngine、阿里巴巴云等,随用随付费,不需要自己来购买高性能的计算机,非常经济。
本文提出将云计算的方法运用到地震房屋损失评估上。从最初的数据存储开始,将需要计算的数据保存在分布式非关系型数据库HBase里面,设计了建表的具体格式,然后再运用Mapreduce编程读取HBase里面的数据来处理。本文就求解过程设计了两个Mapreduce任务,并且给出了详细的运算设计过程,具体到每一步的Key-Value定义。本文只是一个小小的尝试,其实云计算在地震领域的应用范围非常广泛。云计算可以用来处理多样化的数据,包括音频、图像、文本等。分布式的文件存储系统和计算过程能够大大降低储存成本和加快运算速度,对于如地震速报、震害预测以及震后救援工作都具有非常重要的意义。
[1] 张德丰. 云计算实战[M].北京:清华大学出版社, 2012.
[2] 龚强. 云计算关键技术之编程模型认知研究[J]. 信息技术, 2015(1):1-3.
[3] 龚强. 云计算关键技术之分布式计算认知研究[J].信息技术,2014(8):1-3.
[4] GBT 18208.4-2011, 地震现场工作第4部分: 灾害直接损失评估[S].
[5] 鲍亮, 陈荣.深入浅出云计算[M]. 北京: 清华大学出版社, 2010.
[6] 吴朱华. 云计算核心技术剖析[M]. 北京: 人民邮电出版社, 2011.
[7] [美]怀特. Hadoop权威指南(中文版)[M]. 周傲英, 曾大聃(译). 北京: 清华大学出版社, 2010.
[8] 陆嘉恒. Hadoop实践[M]. 第2版. 北京: 机械工业出版社, 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] 曹强. 海量网络存储系统原理与设计[M]. 武汉: 华中科技大学出版社, 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 -),男,满族,黑龙江省哈尔滨市人,博士后,教授,博士生导师,研究员,现主要从事测绘与GIS、现代经济与管理、网格计算与地理空间信息网格、云计算等方面的研究及教学工作。