刁永洲
【摘 要】海洋测绘数据越来越多,其多样性、异构性、复杂性等特征决定了传统的数据采集、存储及处理技术已经难以满足需求;以Hadoop为代表的大数据技术可以很好地解决海量海洋测绘数据的上述问题。
【关键词】海洋测绘;Hadoop;Hbase;数据分析;存储
0 前言
在开发海洋资源过程中,要及时测绘海洋环境的变化就需要有效的实现对海洋测绘数据的采集、存储和处理。我国目前正在建立一个立体化的海洋测绘系统,势必会使海洋测绘数据呈现从GB、TB到PB级别的增长。大数据技术的关键是并行存储、分布式计算,它们可以有效解决海量海洋测绘数据存在的复杂、异构以及海量的问题。
1 大数据技术
目前应用广泛的大数据技术主要包括Hadoop、Hbase、Hive等[1]。作为一个分布式计算平台,Hadoop包括HDFS文件系统和MapReduce计算框架两部分;HDFS是一个并行的文件系统,提供高扩展性、高容错性,保证用于能够将大量低廉机器组织为一个分布式系统,以存放并管理海量数据。
作为一个分布式文件系统,HDFS(Hadoop Distributed File System)非常容易扩展,在存储海量海洋测绘数据时不需要将数据存放在一个集中的服务器上,而可以分散存儲于不同的节点。HDFS的目的就是存放海量数据,所以比较适合处理TB甚至PB级别的数据。MapReduce也是Hadoop的核心组件,是一种并行计算模型,可以利用大量计算机的运算处理能力解决复杂的技术问题。
HBase是一个分布式NoSQL数据库,和传统的关系型数据库不同,HBase产生之初的目的是处理数据量很大的表,处理能力高达10亿行;HBase存储海量数据时通常结合HDFS文件系统。HBase中的数据表现为稀疏的、多维度的映射表,其中行关键字、列关键字以及时间戳充当了行索引,所有数据都是字符串类型。
Hive是基于HDFS文件系统的数据仓库框架,其组成部分和功能包括:ETL工具、数据存储管理、大型数据集的查询等;查询是通过类似SQL的HiveQL实现的。Hive提供了命令行(CLI)及图形界面(WebGUI)两种用户接口,也通过Thrift server提供了API接口。
2 海洋测绘数据分析
海洋测绘数据种类繁多,不仅包括温度、盐度、深度等水文信息,也包含地址信息、生物信息以及遥感信息等,这些不同类型的数据有不同的特点,在对它们进行存储和处理时需要考虑到它们的处理需求和存储格式。
在分析了海量的海洋测绘数据后可以发现,海洋测绘数据的特点如下[2]:(1)海量。在进行海洋测绘时会有大量的监测点,它们收集到的数据结构复杂,而且是动态变化的,这就决定了势必会产生大量的测绘数据,仅仅使用本地存储难以满足海量数据的存储需求。(2)数据格式及结构存在差异。不同的测绘数据的记录格式是不同的,存储结构也随之不同,造成测绘数据在存储时并没有一个统一的数据结构标准。
已经收集到的海量海洋测绘数据包含了海洋、地址、水文等多方面工作人员的辛劳汗水,所以在收集到的数据的积累、存储等方面需要慎重考虑,需要结合海洋测绘数据的特点提高存储、处理的高效性和安全性;另外,还需要考虑海洋测绘数据的稳定性。
海洋测绘数据的种类很多,比如海底地形数据、海岸带航空遥感数据、海岸线测量数据等,不同种类的数据格式也存在很大的差异,这就需要对这些有差异的数据进行数据加工处理,形成标准统一的矢量数字海图、航空摄影正射数字影像等。
3 海洋测绘数据的存储
采集到测绘数据后,首先会在本地保存,然后再通过Hadoop提供的API上传到HDFS文件系统中。所有的测绘点都是以client身份将测绘数据上传到HDFS,上传成功的数据的组织形式是透明的,即HDFS分布式文件系统对应本地存储的一个位置,测绘数据会不间断的存储到此位置,然后在固定的时间间隔上传到HDFS,用户并不会意识到测绘数据是存储在本地存储还是HDFS文件系统[3]。海洋测绘数据上传到HDFS的过程如图1所示:
4 海洋测绘数据挖掘
海洋测绘数据存储到HDFS文件系统后,要从海量存储的海洋测绘数据中找到需要的信息,就使用到数据挖掘工具。可以按照功能将数据挖掘工具分为管理层、计算层以及存储层[4]。
管理层的作用是海洋测绘数据系统和用户的交互界面,用户能够借助管理层对海洋测绘数据集进行操作,比如上传、下载、浏览等。计算层提供常用的数据挖掘分析算法,用户进行数据挖掘时使用的算法就来源于此。存储层借助HDFS文件系统保存了海洋测绘数据相关的文件,并实现了数据冗余备份等高可用措施。
一般在进行数据挖掘前,HDFS分布式文件系统中并没有相关的文件,需要先将数据上传到HDFS中。进行数据挖掘后产生的中间文件和结果文件也保存在HDFS文件系统中,要想在本地访问需要再将其下载到本地文件系统。
图1 文件上传到HDFS的流程
5 总结与展望
本文对海洋测绘过程中涉及到的大数据技术进行了介绍,其中Hadoop用户处理海量海洋测绘数据有很大的优势:首先,它可以运行在大量低成本机器构成的分布式存储系统上,易于扩展;其次,Hadoop也可以具备对故障的自动检测和恢复功能,具备良好的健壮性。Hbase数据库中的数据都是以类似字符串的形式存储的,所以海量海洋测绘数据向HBase中拷贝时不必考虑不同数据类型的区别。
【参考文献】
[1]张兴旺,李晨晖,秦晓珠.云计算环境下大规模数据处理的研究与初步实现[J].现代图书情报技术,2017,5(22):3.
[2]Wang D, Xiao L. Storage and Query of Condition Monitoring Data in Smart:Grid Based on Hadoop[A], Computational and Information Sciences (ICCIS), 2016 FourthInternational Conference on. IEEE[C], 2016: 211-230.
[3]谢长波.基于Hadoop遥感影像存储与管理系统的设计与实现[D].昆明理工大学,2016.
[4]刘子栋.面向海洋观测与模式数据的客户端软件设计与实现[D].中国海洋大学,2016.endprint