物联网、大数据、数据挖掘是近几年受到各行各业普遍关注的新概念。物联网的目标就是将所有的设备进行连接,实现设备之间的通信与数据交换。物联网概念与相关技术层出不穷,目前应用较为广泛的物联网平台有EdgeX Foundry,NB-loT[1],LoRa等,物联网的整体感知、可靠传输和智能处理可实现舰艇物与物、物与人的泛在连接。物联网中需要进行大量的数据交换与数据处理工作,舰艇大数据具有4V特征[2],Volume(数据量大)、Velocity(速度快)、Variety(多样化)、Value(价值密度低),舰艇物联网中的大数据,不仅精确涵盖所有数据,更加关注数据间的因果关系和相关关系,依托舰艇大数据平台可对海量舰艇数据进行分布式存储并为进一步的数据挖掘提供强大算力。数据挖掘是统计学的延伸,指通过机器学习、深度学习等算法在海量数据中迭代学习,搜索其中隐藏信息的过程,经过迭代学习的数学模型可在后续的生产中起到辅助决策的作用。物联网、大数据、数据挖掘三者关系如图1所示,设备产生的数据通过物联网平台进行采集,大数据平台为物联网平台提供海量数据的存储服务,为数据挖掘分析平台提供算力支撑,数据挖掘平台通过分析处理物联网采集的海量数据得出有价值信息并反馈给物联网平台,进行设备的有效控制。
国内外在物联网、大数据与智能计算方面已经进行了广泛的研究。物联网方面,赵梓铭等[3]阐述了边缘计算的定义,明确了未来边缘计算的发展方向,并在物联网与移动应用方面列举了实例,展现出了边缘计算在这些方向上的巨大优势。温华斌[4]基于对不同边缘计算平台的研究,综合各平台优势提出了改进的边缘计算架构,增强了平台的适应能力。大数据处理平台方面,潘卫军等[5]对空管大数据处理平台架构进行研究,规划了大数据处理平台的层次架构,对空管大数据处理平台架构进行了应用分析,验证了平台架构的可行性,为智慧空管的建设提供了平台技术支持。戚红雨[6]介绍了主流的分布式流处理平台,对流处理平台的特点与优势进行了总结分析,并给出了详细的对比分析。在数据挖掘平台方面,郭乔进等[7]对目前市场上常见的深度学习计算平台进行了综述,并对相关平台的应用案例进行了简单介绍。
本文在分析主流大数据平台与数据挖掘平台优缺点的基础上,结合舰艇信息化现状与国内外大数据与数据挖掘技术发展现状,对舰艇大数据处理平台架构进行研究,规划了舰艇大数据平台的层次架构,提出了基于EdgeX的舰艇大数据处理平台。本文提出的舰艇大数据处理平台可以实时采集舰艇设备与传感器数据,针对不同的数据挖掘计算场景可以提供不同的计算处理引擎。最后通过模拟实验验证了舰艇大数据处理平台架构的可行性,为智能舰艇的发展提供平台技术支撑。
1 基于EdgeX的舰艇大数据处理平台组成分析 1.1 物联网平台舰艇设备硬件架构种类繁多,操作系统多样,设备管理较为分散,数据的采集难度较大,数据的内在价值较高。为了对舰艇平台的数据进行采集、存储、挖掘、运用需要一套支持多种硬件架构、兼容多种操作系统、支持不同通信协议的物联网数据采集与控制平台。
EdgeX Foundry[8]是由Linux基金会主持的开源项目,EdgeX Foundry可以适用于多种操作系统,对硬件架构的支持性较好,可以同时满足不同协议设备间的通信需求。EdgeX Foundry提出了物联网南向和北向的概念,北向指能够提供功能的基础和软件,具体为IT基础设施以及应用软件。南向代表了数据的来源,具体为设备的传感器、执行器。EdgeX Foundry的微服务架构可以分为4个服务层和2个基础系统服务,其中服务层由核心服务层、支持服务层、导出服务层及设备服务层;其系统服务由安全服务和管理服务构成。EdgeX Foundry的架构大幅提高了工作效率,其可剪裁特性使其能够在性能较低的设备上流畅运行。
1.2 离线处理计算引擎离线处理是指海量数据的离线挖掘,可用在舰艇的显控操作记录、日志安全审计、航路轨迹分析、故障定位预测、能源消耗预测、离线模型训练等方面。离线处理主要挖掘历史数据,对计算平台的运算能力与存储能力具有较高的要求,对计算的实时性要求较低。
Spark[9]在海量数据的分析方面具有极大优势,其基于内存的处理方式与基于MapReduce[10]设计的大数据分析平台hadoop[11]相比,可通过减少磁盘交互操作降低延迟提高处理速度,并利用弹性分布式数据集(Resiliennt Distributed Datasets,RDD)算子实现更多复杂算法,为大数据分析挖掘提供强大算力支持,同时其机器学习算法库使其优势更加明显。
1.3 实时处理计算引擎实时处理指海量数据的在线处理,主要用在目标快速识别、航线实时规划、自动行动控制、异常操作告警、资源占用量实时预测等方面。实时计算主要分析系统实时产生的数据,具有数据规模较小,但对数据的处理速度有较高的要求。
Spark Streaming具有高吞吐量、高性能、高容错率的特点,可以实现实时流数据处理,其内部可以通过接收kafka,flume等组件的实时数据流,并根据时间间隔将数据量处理成不同的匹数据,然后通过Spark Streaming的API进行数据的批处理,得出实时流数据的处理结果。Spark Streaming可以与spark的其他组件结合使用,大大增强其数据分析能力。例如与MLlib结合使用机器学习算法对流数据进行实时分析,利用Spark SQL可以使用类似SQL的程序语言进行流数据分析。
Flink是一个面向流处理和批处理的分布式计算框架,Flink在实现流处理和批处理时与已有解决方法存在差异,Flink在实现流处理和批处理时,与传统的一些方案完全不同,Flink将流处理和批处理二者统一起来。Flink是完全支持流处理,也就是说作为流处理看待时输入数据流是无界的,批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。Flink与所有常见的集群资源管理器(如Hadoop YARN,Apache Mesos和Kubernetes)集成,也可以设置为独立集群运行。
1.4 深度学习平台深度学习平台主要用于海量数据的分析处理,通过对待分析的问题进行建模分析,利用深度学习算法进行模型实现,利用历史数据进行模型训练与参数调优,在海量数据中探索数据的内在关系,挖掘数据包含的价值。目前常用的深度学习框架主要包括TensorFlow,PyTorch等。TensorFlow使用较为灵活,用户可以根据自己需求建立深度学习模型,或者直接调用框架已有的模型进行训练,解决自己的问题。新版本的TensorFlow与keras进行结合,使用keras可以事半功倍,大幅提高模型的开发效率。PyTorch以其在图像处理领域的深耕和易用性而著称,PyTorch具有易上手的特点,受到许多数据分析工作人员的青睐。2个框架都支持GPU加速,使用GPU可以加快模型的训练速度。
2 平台整体架构基于EdgeX的舰艇大数据处理平台架构设计主要包括运行支撑环境、数据源、数据采集平台、数据交换层、数据存储、数据处理层、数据应用层等。
舰艇大数据处理平台以舰艇私有云环境为基础,舰艇私有云环境采用基于KVM的虚拟化技术完成对硬件资源的虚拟化管理,用户可通过统一接口实现对虚拟资源的集中调配,舰艇私有云平台提高了硬件资源利用率,保证了系统的安全可靠运行。
数据采集平台主要负责舰载设备的数据采集,数据采集平台支持多种硬件架构、兼容多种操作系统、支持不同通信协议的物联网数据采集与控制系统。通过数据采集系统可以将来自声呐、雷达、传感器等舰载设备的实时数据进行采集、传输和存储,通过数据采集平台也可以进行舰载设备的控制。数据采集平台通过舰艇私有云的容器云平台进行部署,容器云平台可以保障数据采集平台的高可用性,采集平台的高可用从源头处对数据的完整性进行了保障。
数据采集层使用微服务风格的EdgeX架构,EdgeX使用RAML这一RESTful API建模语言定义了核心服务、设备服务、支持服务、导出服务、安全服务、系统管理服务6个API接口。EdgeX的总体数据流如下:设备服务首先从设备采集实时数据,然后将设备实时数据发送给核心服务,并进行本地持久化存储,核心服务会将实时数据发送给导出服务,导出服务可以将数据发送到云端服务器或者舰艇信息系统。
数据交换层主要提供3个核心的功能,解耦、异步、削峰。通过消息队列,平台不同功能模块之间实现了松耦合,数据采集平台只需将数据发送到消息队列即可,不需要关注其他功能模块的实时状态,也不需要关注数据的实际用户。通过消息队列不同模块之间可以进行异步处理,提高了系统的整体响应速度,提升了平台的效能。消息队列可以起到缓存的作用,如果数据采集的峰值较大,如果直接进行处理会导致处理模块压力较大,通过消息队列对数据进行缓存可以有效降低相关模块的处理压力,提升系统整体的可靠性。
数据交换层采用Kafka[12]消息队列,Kafka主要包括生产者、消费者、连接器、流处理4种核心API,其中生产者是指应用程序发布时间流到Kafka的一个或多个主题,消费者是指应用程序订阅Kafka的一个或多个主题并处理数据流,连接器将Kafka主题和已有数据源进行连接,数据可以互相导入和导出,流处理从Kafka主题消费输入流,经过处理后产生输出流到指定主题。Kafka对硬件资源消耗相对较少,支持多个生产者和消费者,利用副本集机制实现数据冗余,最大程度保证数据不丢失,通过分批发送压缩的方式,减少网络的数据传输开销,提升数据吞吐量,并且可以保证在大数据量的情况下亚秒级消息延迟。可以很好地实现解耦、异步、削峰功能,提升舰艇数据处理平台的可靠性。
数据存储索结合了Elasticsearch与Hadoop的特点,Hadoop通过分布式文件存储可以保证海量数据文件的安全可靠存储,Elasticsearch在实时搜索、数据交互方面具有明显优势,并且支持与多种数据可视化工具结合进行数据的可视化展示,通过ES-Hadoop插件可以实现强强联合,完成数据在Elasticsearch和Hadoop之间轻松的双向移动。EdgeX获取到的源数据经预处理后通过Kafka首先存入HDFS实现长期存档,然后与Elasticsearch结合实现对数据的实时访问与检索。
数据处理由离线批量计算与实时数据流计算两部分构成,离线批量计算主要采用Hadoop的MapReduce加hive的方式。Hadoop上的并行应用程序开发是基于MapReduce编程框架。通过将复杂的、运行于大规模集群上的并行计算过程抽象为Map和Reduce两个函数来实现基本的并行计算任务,自动划分处理数据和计算任务,最大程度地减少并行计算通信开销,并对外提供并行编程接口来完成自定义数据处理。实时数据流计算主要采用Spark Streaming进行处理,将数据交换层传输的实时数据流以秒级的时间片划分成块,再把每块数据作为一个单独的RDD,利用RDD对分块的数据实现操作处理。另外,Spark Streaming可以和MLlib实现很好的融合以完成进一步的机器学习计算任务。
应用层主要依赖数据处理层所提供的算力以及源数据对数据进行进一步的挖掘分析,针对应用需求所抽象成的智能学习任务,对机器学习、深度学习算法模型进行分布式迭代训练,并对初步训练获得的算法模型进行效果评估。将性能较好的模型应用在目标识别与定位、态势感知与分析、故障告警与预测等舰艇使用场景中,生成静态报表及动态规划、预测、报警等信息,为舰艇运行过程中的相关决策提供支持,提升舰艇指控、作战智能化水平。
3 实验验证采用x86架构pc机,在基于KVM的私有云上搭建了大数据处理平台。
仿真系统数据流图如图5所示。在EdgeX上通过仿真模拟程序产生船舱机房中单个机柜的温度、湿度、CPU使用率和内存使用率数据,Kafka通过EdgeX数据读取端口获取JSON格式的模拟数据,温度、湿度等较稳定的数据在hdfs上进行存储并实现离线数据计算分析其变化趋势,CPU使用率及内存使用率等实时数据通过Spark Steaming进行实时流处理,在前端页面实现数据可视化监控展示,并使用PyTorch平台进行进一步挖掘,分析资源使用率、建立应用健康度模型。
如图6所示,可以在前端页面查看舰艇机柜资源的使用情况以及健康度情况,通过EdgeX仿真程序生成的舰艇坐标仿真数据可以与cesium前端页面进行交互,查看实时的舰艇位置。
本文在分析主流大数据平台与数据挖掘平台优缺点的基础上,结合舰艇信息化现状与国内外大数据与数据挖掘技术发展现状,对舰艇大数据处理平台架构进行研究,规划了舰艇大数据平台的层次架构,提出了基于EdgeX的舰艇大数据处理平台。本文所提出的舰艇大数据处理平台可以实时采集舰艇设备与传感器数据,针对不同的数据挖掘计算场景和计算任务可以提供不同的计算处理引擎。通过模拟实验验证了舰艇大数据处理平台架构的可行性,为智能舰艇的发展提供了平台技术支撑。
[1] |
WANG Y P E, LIN X, ADHIKARY A, et al. A primer on 3GPP narrowband internet of things (NB-IoT)[J]. IEEE Communications Magazine, 2016, 55(3). |
[2] |
李学龙, 龚海刚. 大数据系统综述[J]. 中国科学: 信息科学, 2015, 45(1): 1-44. DOI:10.3969/j.issn.0253-2778.2015.01.001 |
[3] |
赵梓铭, 刘芳, 蔡志平, 等. 边缘计算: 平台、应用与挑战[J]. 计算机研究与发展, 2018, 55(002): 327-337. |
[4] |
温华斌. 基于Cloudlet三层结构模型的移动协同计算平台的研究与实现[D]. 哈尔滨: 哈尔滨工业大学, 2015.
|
[5] |
潘卫军, 刘铠源, 王润东, 等. 民航空管大数据处理平台架构研究[J]. 计算机应用与软件, 2020, 37(6): 48-52, 113. DOI:10.3969/j.issn.1000-386x.2020.06.010 |
[6] |
戚红雨. 流式处理框架发展综述[J]. 信息化研究, 2019. |
[7] |
郭乔进, 胡杰, 宫世杰, 等. 深度学习计算平台发展综述[J]. 信息化研究, 2019(3). |
[8] |
ESCAMILLA-AMBROSIO P. J., RODRÍGUEZ-MOTA A., et al.. Distributing computing in the internet of things: cloud, fog and edge computing overview[J]. Studies in Computational Intelligence, 2018, 87-115. |
[9] |
ZAHARIA M, CHOWDHURY M, DAS T, et al. Resilient distributed datasets: a fault-tolerant abstraction for in-memory cluster computing[C]//In: Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation, Berkeley, 2012.2.
|
[10] |
DEAN J, GHEMAWAT S. MapReduce: simplified data processing on large clusters. Commun ACM, 2008, 51: 107–113.
|
[11] |
WHITE T. Hadoop: The Definitive Guide[J]. O'rlly Media Inc Gravenstn Highway North, 2012, 215(11): 1-4. |
[12] |
GOODHOPE K, KOSHY J, KREPS J, et al. Building LinkedIn’s real-time activity data pipeline[J]. Data Engineering, 2012, 35: 33-45. |