赵树平 禹小弦

摘要:针对大量海洋3S数据的存储处理复杂和低效率的问题,提出了一种海洋3S数据存储处理的设计方案。该系统通过海洋遥感ORS连续影像处理和GPS立体测量,建立三维形状模型,然后提取目标特征更新海洋地理系统MGIS的数据,并将收集到的海洋3S数据通过Hadoop架构的HDFS进行存储、MapReduce进行处理。该系统运用Hadoop技术进行海洋3S数据存储与处理并提供了可行性的方案。

关键词:海洋3S数据;存储处理;Hadoop;HDFS;MapReduce

中图分类号:P73        文献标识码:A

文章编号:1009-3044(2019)13-0003-03

Abstract: Aiming at the complexity and low efficiency of storage processing of a large number of marine 3S data, a design scheme of marine 3S data storage processing is proposed. The system uses the remote sensing ORS continuous image processing and GPS stereo measurement to establish a three-dimensional shape model, and then extracts the target feature to update the marine geographic system MGIS data, and collects the collected marine 3S data through the Hadoop architecture HDFS for storage and MapReduce processing. The system uses Hadoop technology to store and process marine 3S data and provides a viable solution.

Key words: Marine 3S data; storage processing; Hadoop; HDFS; MapReduce

随着人们对海洋环境和资源的高度重视,越来越多的海洋数据被大量发掘出来,包括水文信息,还有地形,地貌等地质数据,还有各种卫星遥感和浮标等获得的海洋数据。海洋3S数据是通过海洋遥感ORS采集或通过海洋中的各种传感器捆绑GPS定位数据采集和海洋遥感ORS数据及GPS定位数据通过海洋地理系统MGIS分析处理得到的综合海洋数据。它具有属性多样性,动态不稳定性,复杂性和无序性等特点[1-4]。

本文主要是以大量海洋3S数据作为基础,结合海洋3S数据和Hadoop,构建一个简单的包含数据的存储部分以及数据的处理部分的海洋3S数据存储处理系统的整体框架[5-7]。

1 海洋3S数据存储处理系统框图

海洋3S数据存储处理系统分为数据收集模块、数据在HDFS存储模块、数据转换模块和MapReduce数据处理模块。数据收集模块是以海洋3S技术探测为背景,通过连续影像处理和立体测量,建立三维形状模型,然后提取目标特征更新MGIS数据并获得数据,并将收集到的海洋3S数据按照特定的原则暂时存储在本地上;数据在HDFS上的存储模块包含了数据存储功能和重复数据的删除功能。所有监测获取的数据文件最终都会自动存储进HDFS分布式文件系统中。如果在传输过程中遇到被破损的文件或者重复多次传输的情况,那幺为了节省HDFS的有限存储空间,此模块将对传输的所有数据进行去重工作;数据转换模块是因为存储在HDFS中的数据并不是接收所有格式的文件,因此,此模块将不接收的数据格式,转换为HDFS接收的数据格式,使数据正常进入数据库中。MapReduce处理模块是转换格式后的数据将在此模块中进行数据的格式转换操作,并将数据传入HDFS中存储。根据海洋数据的不同种类进行数据的处理,提供并保证了数据处理的功能[8-9]。

如图1所示,此系统可以看成4个层次,由上至下分别为数据层,过渡层,处理层,存储层[10]。。首先数据层是通过海洋遥感及GPS精确定位对海洋3S数据进行初始的收集以及对其数据进行相应的简单处理并进行物理上的存储,在过渡层,可以输入的格式将直接通过DFS外壳的过渡将数据转到HDFS中存储,不可以输入的格式将会通过数据格式的转换后转到HDFS中存储,起到了对服务的过渡以及相应的格式转换调用的作用,而处理层包括MapReduce,它与HDFS的数据相互交互以及共同作用是对海洋数据进行高效处理的主要部分,同时也拥有着存储的作用,处理完的所有的数据最终都会存储在HDFS上,最后放在存储层上的为HDFS服务器,其中存储着所有的数据。在对数据进行存储处理的过程中,应该先把所有通过监测点收集到的数据全部存储到HDFS分布式文件存储系统中,对数据进行去重的操作, 然后进行数据格式的转换和转换后数据的处理操作,并根据查询条件MapReduce实现对数据的查询操作。

2 海洋3S数据存储处理软件流程图

2.1 数据存储软件流程图

海洋3S数据存储部分采用了主从结构,此部分包含有一个主元数据节点,一个辅助元数据节点和几个数据分节点。主元数据节点是整个HDFS的主节点,有且只能有一个,其中存储着HDFS的元数据信息。它的作用多且强大,它可以用来管理文件的数据信息,如文件的属性、大小、位置、名称等;在用户对文件的修改、删除、增加等操作的相关部分信息也可以起到维护的作用,同时保持文件与数据块之间的对应关系也可以用到它。辅助元数据节点虽然可以看作是主元数据节点的备份,但并不是主元数据节点的备份,因为当主元数据节点出现故障时,辅助元数据节点并不能迅速、彻底顶替它的位置。辅助元数据节点会定期合并元数据信息,并推送给主元数据节点,当主元数据节点出现故障时,它会暂时接替主元数据节点继续进行工作。 数据分节点是HDFS中的从属节点,存储实际的数据块并执行数据块的读写功能。HDFS客户端可以实现数据的等量拆分,它是通过与主元数据节点之间的相互交流来确定文件的具体位置信息,还通过与数据分节点的相互交流来读写入数据。在HDFS当中,文件会被分割为很多的等大的数据块,且这些数据块的默认值为64MB,所有的数据块会根据特定的方案存储在数据分节点上,同时,这些数据文件的存储位置以及相关信息会记入主元数据节点中,如果其中有分节点出了问题,可以在其他的节点中获取一样的数据。具体存储过程为,首先,数据分节点1以数据包的形式从HDFS客户端收进数据时会立刻在本地存储,同时给数据分节点2传送数据,同样当数据分节点2收到数据时在本地存储并发给数据分节点3,以此类推,数据包就会被所有的数据分节点备份上,那幺所有数据分节点都收到数据后都会向自己的前一个数据分节点发一个确认消息,直到数据分节点1发送给HDFS客户端,此时,HDFS客户端会与主元数据节点进行数据存储到所有节点的相互确认。

数据存储流程图见图2,数据监测点采集到数据后先把数据放在本地,然后将海洋数据存储到HDFS上面,系统通过Hadoop提供的接口把本地获取的3S数据上传并存储到HDFS上。每个监测点都作为一个端口,将海洋3S数据上传到HDFS端口中,实时更新中的数据文件们将被监测点收集并不间断存储进特定的文件中。因为数据是在不断更新中的,所以要设置一个合理的时间间隔,那幺每到达一次指定时间,数据就会从本地再次向HDFS通道进行数据的存储。并且在确认文件存储完成时直接删除已经进行过操作的本地文件。按照上面的过程反复执行,可以将实时更新的数据,准时、高效的存储到HDFS中[11-15]。

首先收集的文件开始存储,因为数据是在不断地更新中,因此设置了一个时间的间隔,那幺每到达这个时间间隔时将会进行数据的更新同时再次存储文件,此时要判断文件是否存储成功,如果不是,则直接结束并删除掉数据,反之存储成功则直接进行本地文件存储,并建立HDFS存储通道,此时判断该数据文件是否为可以读取的信息,是则将本地文件存储到HDFS通道后进行下一批次的判断,反复执行,直到出现不是,然后结束存储,并关闭HDFS的通道,同时直接删除掉已经成功存储完成的本地文件数据,避免空间的过度浪费。反复执行以上操作,这样可以实时的更新HDFS的数据,保证完整性以及准确度。上述的流程,在存储数据的过程中,系统的故障和网络传输延迟都可能会导致发送处理中的数据的波动,导致海洋3S数据文件被反复的上传到HDFS中。这样会极大浪费存储空间,所以在数据存储之前需要进行数据的检查和去重工作,使每个文件在HDFS中只有一个,保证数据的唯一性。

2.2 数据处理软件流程图

数据处理部分以Map和Reduce为核心。首先是Map阶段把输入的数据按照标准切分,每个输入分块的大小都应该是一样的。在没有手动更改的情况下,数据块的大小与输入块的大小是一样的。如果以数据块的大小是初始的默认值64MB,输入文件有两个,一个大于64MB,一个小于64MB。那幺大文件会分为两个数据块,也就是两个分块,而小的文件是一个分块,一共会产生三个文件的分块。每一个分块会由一个Mapper进程处理,三个数据分块,就会有三个Mapper进程处理。然后是对数据分块中的内容依靠一定的方法分解成为键值对,其中把每一行文本内容解析成默认规定的键值对, “键”是每行的初始位置,“值”是本行的内容。接下来是运用Map方法,在前面解析出来的每一个键值对,都使用一次Map方法,有多少个键值对就会使用多少次,每一次使用Map方法都会不定的输出多个或者零个键值对。然后在一定的原则基础上对上面得出的键值对进行详细分区,分区是基于键进行的,相同的键值对放到一个区域中。在默认的情况下只有一个区, Reduce任务运行的数量与分区的数量有着直接的关系,因此默认只有一个Reduce任务。下一步是对每个分区当中的键值对进行排序。按照键的优先级比值高来进行排序,那幺对于键值对的键一样的情况下,按照值的大小来进行排序。

在上面的处理结束后,来到Reduce任务阶段,首先Reduce任务会主动从Mapper任务输出的键值对复制,因为Mapper任务可能并不是只有一个,所以Reduce可能会复制多个Mapper的输出作为输入键值对。然后把整理得到的键值对复制到Reduce本地,把所有的键值对进行合并,也就是把分散开的数据合并成一个大的完整的数据,再次对合并后的数据进行重新排序。最后将排序完成的键值对使用Reduce方法,键相等的键值对使用一次Reduce方法,每次使用都会产生零个或者多个键值对,最后把这些输出的键值对写入到HDFS文件中。

数据处理的流程图如图3所示,开始进行数据处理,对NetCDF格式的数据的处理就是读取出文件中的各种要素并且将读取的数据保存成.txt格式的数据,所以先读取了NetCDF数据,然后经过Hadoop的处理平台中的数据格式转换模块将无法读取的格式的数据进行数据格式的转换,然后通过Map操作,将切分好的数据进行并行处理后结合中间数据传递给Reduce,当Reduce接到数据后再次进行深层次的汇总处理工作,然后输出判断是否读取完成,如果没有读取完成则重新反复地进行数据处理操作,反之,将读取完成的数据以不同的格式存储到HDFS上,处理完成[16-20]。

3 结论

本文探讨了海洋3S数据存储与处理的可行性方案。首先将HDFS搭建在一个便宜的设备上面,然后采用HDFS分布式的存储系统对海洋3S数据进行了存储,实现了大量3S海洋数据的存储,并且使用MapReduce来对数据进行了读取及相应处理,最后输入回HDFS进行存储,实现了部分数据处理的功能。利用MapReduce实现了数据的并行处理,便于数据的分类存储,解决了3S海洋数据动态变化,多样性和复杂性的问题。

参考文献:

[1]刘金凤. 基于Hadoop的海洋数据存储处理系统[D].中国海洋大学,2015.

[2]池亚平,杨垠坦,许萍,杨建喜.基于Hadoop的监控数据存储与处理方案设计和实现[J].计算机应用与软件,2018,35(06):58-63+157.

[3]林文辉. 基于Hadoop的海量网络数据处理平台的关键技术研究[D].北京邮电大学,2014.

[4]邰建华. Hadoop平台下的海量数据存储技术研究[D].东北石油大学,2012.

[5]朱珠. 基于Hadoop的海量数据处理模型研究和应用[D].北京邮电大学,2008.

[6]张弛,龚茂珣.基于云存储的海洋数据存储策略研究[J].海洋信息,2014(01):21-24.

[7]沈飞飞,郭忠文,胡克勇.一种海洋环境数据存储模型设计与应用[J].中国海洋大学学报(自然科学版),2015,45(06):122-127.

[8]谢绍锋,肖化顺.森林资源时态GIS数据存储与时空分析方法研究[J].西北林学院学报,2011,26(01):181-186.

[9]沈飞飞,郭忠文,胡克勇.一种海洋环境数据存储模型设计与应用[J].中国海洋大学学报(自然科学版),2015,45(06):122-127.

[10]黄明哲,王巧艺.“3S技术”在海洋渔业中的应用[J].福建水产,2011,33(01):77-81.

[11]姜凤辉,李树军,姜凤娇.“3S”技术在海洋气象信息处理中的应用[J].测绘科学,2010,35(S1):186-187+238.

[12]李丹. 土地整理项目中3S数据的处理与应用[D].中南大学,2011.

[13]杨海军,邵全琴.GIS空间分析技术在地理数据处理中的应用研究[J].地球信息科学,2007(05):70-75.

[14]赵春宇. 高性能并行GIS中矢量空间数据存取与处理关键技术研究[D].武汉大学,2006.

[15]陈军,蒋捷.多维动态GIS的空间数据建模、处理与分析[J].武汉测绘科技大学学报,2000(03):189-195.

[16]温玉波,黄全中.基于XML的海洋环境基础数据格式转换的研究[J].海洋通报,2017,36(06):700-705.

[17]邹鹤敏,黄海于.大文件分块上传和下载软件的设计与实现[J].电子技术应用,2013,39(08):137-139.

[18]马同星. 网络型海洋环境监测数据挖掘和动态发布信息系统研究[D].山东大学,2006.

[19]逯晨. 海量空间环境数据分布式并行处理关键技术研究[D].电子科技大学,2014

[20]黄冬梅,杜艳玲,王振华.海洋大数据分级存储中迁移模型的研究[J].计算机应用与软件,2014,31(09):45-47.

【通联编辑:王力】