APP下载

地震监测数据的Hadoop存储解决方案

2020-10-20

华南地震 2020年3期
关键词:台站监测数据集群

赵 辉

(内蒙古自治区地震局,呼和浩特 010000)

0 引言

在地震系统内,日常的地震监测数据都是保存在服务器或者相关电脑上,对数据的应用也是将数据保存到本地主机后再进行分析使用,然而随着日常地震监测数据量的增长,常规的单机以及服务器存储方式逐渐将无法满足日常监测数据的存储需求。以测震数据为例,内蒙古自治区地震局共有测震台站48个,日均产生的测震数据在1.4 G以上,这些数据在存储的过程中又分为“台站卷”与“台网卷”,所以每日最终所产生的需要存储的测震数据就在4.48G以上,光测震数据的年均存储量就在1.6T以上。

因此,为了满足地震监测数据的存储需求,创新性的将目前较为流行hadoop技术应用到地震监测数据的存储中,既解决了海量监测数据的存储问题,也增加了监测数据的分析手段。本文将会从物理环境到软件配置以及对数据的简单操作给出相应的实现方法和解决策略,以实现对地震监测数据的大规模存储。

1 关于Hadoop和大数据

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题,具有高可靠性、高扩展性、高效性、高容错性等特点。广义上来说,Hadoop通常指一个更广泛的概念—Hadoop生态圈。

Hadoop由HDFS、MapReduce、YARN、Common等组件构成,这四个组建是其基本生态圈的框架。

1.1 MapReduce离线计算

MapReduce是Hadoop中的计算工具,主要用于进行离线计算,其将计算过程分为两个阶段。首先Map阶段对输入的数据进行并行处理,然后Reduce阶段对Map阶段所处理数据的结果进行汇总。将MapReduce技术应用到对地震监测数据的分析上,便可以实现对历史地震监测数据的大规模并行处理分析。这样在分析过程中,所获得的数据将更为全面准确。

1.2 YARN资源调度

YARN是Hadoop的资源管理器,主要负责集群的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大的好处。

YARN主要由四部分构成。ResourceManager是总调度,用来处理请求,资源分配与调度。NodeManager负责单个节点上的资源管理。ApplicationMaster负责管理任务job,申请资源。Container是对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等,任务运行相关信息(图1)。

由于YARN在整个Hadoop中起着最为关键的作用,因此在部署集群的过程中, YARN是否能部署好,直接关系到整个方案的成败。下文在部署集群时将会着重说明如何部署YARN。

图1 YARN资源调度流程图Fig.1 Resources schedule flow chart of YARN

2 地震监测数据存储方案

以测震数据为例,内蒙古自治区地震局48个测震点分布相对稀疏,需要处理的测震数据相对较分散。因此从测震数据的使用需求来看,更加侧重于数据分析,即对历史测震数据进行分析研究。但是,现阶段采用的是将监测数据存储到服务器与PC扩展硬盘上,随着数据量的不断增长,存储介质易损坏、恢复难、数据导入导出慢等问题也日益突出,构建可靠性高的存储分析系统也更为重要。

2.1 监测数据的存储结构

以测震数据为例,目前国家地震台网中心采用基于JOPENS的SSS流服务器来负责接收和分发波形数据,接收512字节的纯数据SEED卷(Miniseed数据),包含有固定头段本分(48字节)和数据部分,主要记录台站名、起始时间、样本数目、测震数据等,以一个台站一个分项[1]。而对测震数据的分析与应用所使用的软件是Jopens-msdp5.2,所以考虑到应用数据时的便捷性,我们在数据的存储过程仍采用这一结构对数据进行存储,数据包为seed格式。同理,其他监测数据也均采用目前所使用的格式直接进行存储。

2.2 大数据的数量级

数据的存储结构可以确定后,就需要确定数据的数量级以便选择合适的硬件。内蒙古地震局测震数据存储量年均在1.6 T以上,加上分析后所产出的测震数据,年均需要存储量在6T以上。另外还有前兆的相关监测与分析数据,年数据规模在10 T以上。面对如此规模庞大的数据量需要引入大数据的数量级这一概念来加以探讨。因此以大数据的数量级来看,根据内蒙古地震局的数据规模以及确保系统有一定的数据冗余这两点要求来确定大数据数量级,需要达到EB级。所以在选择服务器与存储矩阵时要遵循EB级的数量级这一原则。

2.3 物理硬件选择

对集群硬件的选择往往被轻视,认为选择配置较高价格较贵的硬件既可满足一切需要。然而几乎在所有情形下,MapReduce要么会在从硬盘读取数据时遇到瓶颈,要么在处理数据数时遇到瓶颈,前者称为IO受限后者称为CPU受限。所以在选择硬件时,一定要根据工作负载进行选择。在这里可以将根据工作负载选择硬件的一般原则总结成一张图(图2)。

因此,根据对使用需求以及内蒙古自治区地震局现有的监测数据量进行分析,依据工作负载,在性能和经济性上选择硬件的最佳平衡。基于硬件选择的规律,在这里选择了通用的服务器均衡配置,结果见表1。

图2 根据工作负载选择服务器原则Fig.2 Principles for selecting servers based on workload

表1 服务器配置方案表Table 1 Server configuration schema table

2.4 集群规划部署

HDFS的三个组件均需要部署,YARN的四个组件其中两个组件需要部署。HDFS中的NameNode、SecondaryNameNode比 较 占资 源,需要部署在一个节点上,DataNode为实际存放数据的模块,根据需要部署即可。YARN中需要部署的ResourceManager较占资源,需要部署在一个节点上。NodeManager与NameNode对应部署。因此,根据上述原理,我们为集群规划了3台服务器,并按表2进行规划部署。

从表2中可以看到将比较占用资源的Name No de、Se conda ryNa meNode、ResourceManager部署在了不同的节点上。随着数据量的增多,如果需要对集群进行扩展,我们也可以将这三个较为占资源的服务部署在三个独立的服务器上,其余服务器均作为数据存储服务器,便于日后进行再次扩展。

表2 集群规划部署表Table 2 The table of cluster planning and deployment

2.5 环境配置

根据上述原则做好集群的搭建后,需要对集群环境进行配置。选择Linux系统一般都会选择较为稳定的CentOS-6.8版本。同时需要安装JAVA、ant、maven和protobuf工 具 为 编 译Hadoop做好准备。在这里之所以要重新配置环境变量以及编译Hadoop的源代码,是为了让整个系统与硬件更加适配。所配置的软件与Hadoop源码参考版本如下:

jdk-8u181-linux-x64.tar、ant-1.9.14-bin.tar、maven-3.6.1-bin.tar、protobuf-2.5.0.tar、glibc-2.14.1.tar、hadoop-2.7.7-src.tar。

在这里需要需注意的是,CentOS7.1以前的版本,默认支持的glibc最高版本为glibc-2.12,而hadoop-2.7.1以上的源码所需要的glibc版本需要在2.14以上,如果我们不对CentOS-6.8中的glibc进行升级的话,在进行源码编译的过程中会报错,从而导致编译失败。因此在这里需要下载glibc-2.14.1或以上的版本对原系统中的glibc进行升级。

对相关环境做好配置后,再根据具体情况 与 参 数 做 好core-site.xml、yarn-site.xml、mapred-site.xml这3个核心配置文件的配置,这样Hadoop的存储集群就搭建完毕了。

3 可行性验证

为验证上述方案的可行性,我们通过在电脑上安装VMware软件,并搭建伪分布式集群的形式来进行测震数据的上传存储并对已上传的数据进行简单的操作以验证上传数据的可操作性。所使用的电脑配置参数如下表3所示。

表3 电脑配置参数Table 3 Computer configuration parameters

在VMware上 安 装Linux的CentOS-6.8版本,并在此系统上搭建伪分布式集群,做好相应的集群环境准备。配置好相应的环境后,安装Hadoop2.7.7版本。

3.1监测数据上传测试

启动hadoop,创建“tz”(台站卷)与“tw”(台网卷)文件目录,分别存储对应数据。使用“hdfs dfs –put”命令分别上传内蒙古自治区地震局2018年1月1日的台网卷与台站卷的部分测震数据进行测试(图3)。

从图中可以看出,名为20180101.NM.AGL的台站卷与2018010100.NM的台网卷数据已经上传,并提供了可下载数据的对应地址。因此,此次实验的测震数据已成功上传。

图3 数据上传测试图Fig.3 Data upload test chart

3.2 已上传数据可操作性测试

我们继续使用YARN运行简单的MR程序对已上传的数据进行运算操作,并通过Hadoop的All Applications进行监控(图4、图5)。

图4 数据操作图Fig.4 Data manipulation chart

从图4与图5可以看出,对台站卷数据20180101.NM.AGL与台网卷2018010100.NM的WORDCOUNT操作已经成功运行,分别用时为1分58秒与4分39秒,并在文件夹“tzwc”与“twwc”产出了对应的数据文件。因此,上传至服务器的测震数据文件均可正常使用,并可使用大数据技术对已上传的数据进行操作。

图5 数据操作记录图Fig.5 Data operation record chart

4 总结

根据上述的测试结果来看,本文所提出的地震监测数据的Hadoop存储解决方案可行。虽然本方案还未应用到内蒙古地震局实际工作中,但使用Hadoop技术对地震监测数据进行存储与分析势必将应用到整个地震行业。Hadoop技术不仅可以使地震监测数据在日常存储上具有更高的可靠性,同时在对历史地震监测数据进行处理时,具有了更多的分析统计手段和更快的数据读取速度。同时在地震监测数据不断增长的情况下,使用Hadoop技术对监测数据进行存储日后对服务器进行存储扩展也极为便利。

猜你喜欢

台站监测数据集群
中国科学院野外台站档案工作回顾
地震台站基础信息完善及应用分析
一种适用于高铁沿线的多台站快速地震预警方法
秦皇岛河口湿地环境在线监测数据应用研究
铁路无线电干扰监测和台站数据管理系统应用研究
海上小型无人机集群的反制装备需求与应对之策研究
培育世界级汽车产业集群
一种无人机集群发射回收装置的控制系统设计
勤快又呆萌的集群机器人
基于小波函数对GNSS监测数据降噪的应用研究