颜廷龙,李 瑛,王凤芹
(海军航空大学,烟台 264001)
随着当今世界的发展,各行各业产生了大量的数据,已经远超常规数据处理手段的处理能力,海量数据处理面临重大挑战[1].作为海量数据处理的有效手段[2],大数据处理技术发展已日趋成熟[3],并在生活服务的各个领域中广泛发展[4].官方也制定了相关政策,推动大数据技术的发展[5].
现代化战机装有众多传感器,能够记录数百个飞行参数.目前,海军航空兵部队,操课,训练,演习都产生了大量的飞行数据.除了这些飞行数据,维修保障基地,军械部门也产生了大量数据.如果可以将这些数据集成分析,可以有效提高飞机飞行安全,提高海军航空兵部队的科学化管理和决策能力.
针对大数据技术在航空系统的应用,目前不少专家已经进行了研究.在航空数据分析领域,Singh和Kaushik 介绍了使用大数据基础架构分析航空大数据的方法,并应用大数据工具为机务维修保障提出辅助决策[6].陈金等基于大数据技术设计了一个飞机健康管理的平台[7].Li 等针对目前机务维修保障存在的维护效率低等问题,提出了一种飞机健康管理的大数据体系架构[8].Rehm 等将高维数据可视化技术应用到航空大数据和天气大数据,解决了航空大数据和天气大数据的数据分析问题[9].
虽然在各大航空公司,大数据技术已经得到广泛应用,但部队的航空数据管理上还尚不成熟.其业务管理模式,数据来源,平台性能需求等方面都与传统的航空大数据平台都有显著不同.这就要求针对部队的实际业务需求设计航空数据平台.
Apache Spark是用于大规模数据处理的统一分析引擎.它提供多种语言的API 接口.它还包含丰富的上层基础应用.相比于Hadoop,使用方便,运行速度快,适用场景更广泛.
航空信息服务平台设计是在针对航空数据的优化采集和分析基础上,面向航空兵部队的应用需要,实现航空大数据平台的开发和设计.本文提出了基于Spark的航空信息服务平台设计方案,首先进行平台的总体框架设计,然后设计了主要的功能模块,最后在实验环境下实现平台的设计与开发,进行仿真实验,验证平台在处理大数据方面的性能优势.
海军航空兵部队的航空信息涵盖飞行训练过程中产生的所有与飞机飞行相关的数据,主要包括:(1)飞参数据;(2)地空数据链(ACARS);(3)作战指挥数据;(4)任务计划数据等,数据量随着海航部队飞机的增多和时间的积累逐步增大.
航空服务信息具有多源异构的属性,包括多来源、多性质、多层次、关联性等特点.
目前,海军航空部队传统的数据存储方案是各个机务部门将数据分散存储到多个系统中.这样不便于工作人员的管理和维护,因此迫切需要一个可以汇总存储多个系统的航空信息信息服务平台.
根据对航空信息的来源的特点,本文设计了一个基于大数据的航空信息服务平台,使用Hadoop 分布式文件系统(HDFS)完成航空信息的存储,基于Spark和相关数据挖掘算法实现航空信息的快速处理,数据挖掘[10].分析部队的实际需求,平台必须满足下列要求:
(1)分布式.根据航空信息的数据量大,来源广等特点,平台需采用分布式文件系统存储,在实现数据的高效存储和高容错性.
(2)并行化.平台必须支持运算并行化来提升计算速度,具有良好的数据处理能力.并且后续仅通过简单的节点增加就可以带来计算速度的提升,以便于相关管理人员日后的维护和管理.
(3)扩展性强.平台应模块化设计,由于海军航空部队的业务需求复杂,需要平台可根据业务需求的变化,更新数据分析模块,满足定制化需求.
(4)可用性强[11].平台以使用者为中心,设计能符合使用者的习惯与需求,简单易用.
本平台基于Spark 进行搭建将航空信息服务平台为四层架构,自顶向下采用接口连接相邻层,数据的获取和存储是最底层,分别为数据源层和数据存储层.再上层为计算分析层,主要提供计算框架和数据处理功能.交互应用层,为平台的用户提供交互界面[12],平台总体框架图如图1所示.
图1 平台总体框架图
数据源层的主要功能是数据的获取,即各个航空单位存储的航空数据,包含需要从原有关系型数据库导入的数据,和新产生的数据,数据具有多源异构的特性.数据源层还会进行数据预处理工作,通常包含清洗、集成、变换以及归约.目的是对重复数据的清洗和对缺少数据的填补;消除数据的冗余性;将数据的存储形式改变以更适合数据处理[13];预处理后的数据经过ETL 处理,采用Sqoop 将处理后的源数据高效的存储到数据存储层的数据仓库中.
数据存储层采用Hadoop的分布式存储框架HDFS,将航空数据以文件形式存储获取到的航空数据,HDFS采用主从架构,由一个NameNode和多个DataNode 组成.NameNode 主要管理文件块的Namespace和Block管理,维护着系统文件树的元数据和各个文件所在的DataNode 位置信息.DataNode 存储和读取具体文件,并定时地向NameNode 发送心跳信息.HDFS 将文件分块存储在各个DataNode 上,默认的Block 块大小为128 MB.为提高平台业务运算效率,采用Hadoop 生态下的开源工具Hive 构建航空信息数据仓库,管理元数据.
计算分析层的作用是对存储的航空数据进行数据分析,实现各种业务需求.包括针对航空数据的数据挖掘,执行SparkSQL 命令等.其中航空数据挖掘基于SparkMllib 库和利用Spark 编程接口自定义的聚类算法完成.
计算分析层的基本工作流程如图2所示,首先,构建运行环境,创建一个SparkContext,并且向资源管理器Yarn 申请Executor 资源,并启动相应资源.然后SparkContext 依据RDD的依赖关系构建DAG 图,同时创建一个DAGScheduler 对象依据作业和任务的依赖,制定调度逻辑,将DAG 图分解成Stage,因为Stage之间存在依赖关系,只有前面的Stage 运算完,后面的才开始运算.最后,将完成的Stage 发送给TaskScheduler,再由TaskScheduler 将Task 发送给Executor 运行,运行结束后释放计算资源[14].
图2 计算分析层基本工作流程
用户交互层主要功能是为用户提供良好的使用界面,并包含数据查询,数据分析,数据可视化等功能,并将航空信息信息直观地展示出来,提高海军航空部队的训练效率和管理效能,平台的数据可以通过图表,直观展示出原始飞参数据,平台的分析结果等.
航空信息服务平台的功能模块主要划分为数据存储模块、数据分析模块和信息查询模块3个功能子模块,如图3所示.数据存储模块的功能保障数据的存储和资源管理.数据分析模块主要实现将数据挖掘算法写入到Spark中,也可以使用Spark 自带的Mllib 机器学习库进行分析现对航空信息的数据挖掘.信息查询模块主要实现对平台基础数据和分析数据查询,还有相关数据的上传下载.
图3 平台主要功能模块设计
数据存储模块的功能是将从多个数据源获取的航空数据传入到HDFS中.主要包括经过预处理后的航空数据以及平台生成的数据,以特定的格式存储到HDFS中.同时,平台针对每一份数据都包含多份备份,提高了平台的容错能力.避免出现数据丢失的情况,此外,还应用Yarn 进行统一的资源管理和调度.
数据分析模块主要是应用Spark的内存计算引擎,实现针对航空信息的数据挖掘处理.利用Spark 自带的编程接口和相关组件实现数据分析模块的调入.平台也根据飞参数据具有多元时间序列数据的特点,自定义了数据分析算法,可根据飞参数据进行飞机的飞行动作识别和划分.
开发了基于航空服务信息服务平台的Web 应用,可对相关数据上传下载,相关数据的可视化展示,应用SparkSQL 实现数据查询功能,为用户提供了统一的数据源访问接口.
为了测试航空信息服务平台的性能,本文将航空信息服务平台(AISP)与基于SQL Server的传统航空数据仓库(TDW)针对航空数据的计算与存储进行对照实验.
本文测试航空信息服务平台采用的实验集群由1 台master 节点和8 台slave 节点组成,集群的节点配置参见表1.
表1 计算机节点配置
实验数据采用海军某场站存储的飞参数据,数据量分别为2.4 MB,20 MB,200 MB,500 MB,1000 MB和2000 MB,共5 组数据,分别进行数据查找和数据预处理测试.
第1 组实验测试使用同一条SQL 语句查找符合条件的数据,实验次数为5 次,查找时间取平均值,测试用SQL 语句为“select type,count(*)as count from test group by type order by count desc;”.SQL 语句执行效率对比如图4所示.
第2 组实验比较航空信息服务平台针对不同数量级的实验数据预处理的情况,采用插值法拟合空缺的数据,实验结果如图5所示.
图4 SQL 语句执行情况
图5 预处理时间使用情况
由实验结果可以看出,当数据量较小的时候,基于SQL Server的传统航空数据仓库数据处理速度优于基于Spark的航空信息服务平台,但是当数据量达到500 MB 时,基于Spark的航空信息服务平台更具优势.通过简要分析,基于Spark的航空信息服务平台在接收到数据处理任务时,需要进行初始化,节点通信,资源调度等,这些将耗费一定的时间和资源,由此可知,在数据量小的时候,大数据平台很多资源都浪费在系统资源开销上,效率反不如单机系统.但大数据在面对海量数据的优势依旧明显.另外,大数据平台可以通过增加集群数量实现性能的扩展,更能适应海军航空兵数据量高速增长的需要.
本文主要实现了基于Spark的航空信息服务平台的设计,采用Hadoop的分布式存储框架HDFS 以文件形式存储获取到的航空数据,和开源工具Hive 构建航空信息数据仓库,并详细介绍了平台3个主要功能模块的设计.另外,本文实验对比了航空信息服务平台与传统航空数据仓库之间的性能对比.最后,实验结果表明,航空信息服务平台在计算大规模数据上具有明显优势.但目前航空信息服务平台的业务还不完善.未来的主要工作一是增加针对其他航空信息的业务应用探索.二是完善针对海军各型飞机的QAR 数据译码工作.