APP下载

基于Spark Streaming的车辆电子围栏技术实现与应用

2024-01-01吴宇昊

西部交通科技 2024年5期

摘要:文章提出一种基于Spark Streaming实时数据流处理框架,使用Kafka作为车辆轨迹数据的消息队列服务,结合拓扑关系判断算法射线法的车辆电子围栏技术。应用表明,该技术能够处理高吞吐率、强实时性的车辆动态数据,满足车辆动态精细化监管需求。

关键词:电子围栏;Spark Streaming;Kafka;射线法

U495A551773

0 引言

随着物联网、大数据、人工智能等新兴技术在交通领域的推广与应用,在缓解道路拥堵、优化出行服务、保障交通安全上取得了显著成效,推进了智能、安全、高效的交通系统建设。新兴技术在为交通建设提供新的智慧化、科技化实施方案的同时,也为交通领域的发展带来新的方向与挑战。为预防和减少道路运输交通事故,交通运输部自《道路运输车辆动态监督管理办法》公布施行起一直大力推进道路运输车辆动态监管工作。因此,如何利用智能数字化手段,提升交通安全风险监测预警能力与精细化管理能力具有非常重要的意义。

车辆动态轨迹数据作为交通大数据,具有实时性强、数据量大、数据共享需求等特点,传统的交通数据处理框架已无法满足有高吞吐率、强实时性的交通智能化时代交通大数据的管理与应用需求。交通大数据领域的应用例如车辆轨迹监测、危险车辆识别、车流量预测等,大部分使用MapReduce框架处理离线数据,实时性与计算效率较低,无法满足实时处理的需求。

电子围栏技术,是指在电子地图中绘制虚拟边界,电子围栏系统根据监控实体的地理位置数据,实时判断监控实体与电子围栏区域拓扑关系的技术。相较于需要实体围栏边界设备的围栏技术,电子围栏技术具有低成本、实时性、可扩展等特点,能够对车辆动态进行有效的实时监测,对车辆安全风险进行预警。

本文提出一种基于Spark Streaming的车辆电子围栏技术,利用物联网、大数据等技术,可以满足高效、实时的车辆动态精细化监管需求。

1 关键技术

1.1 Kafka

Apache Kafka是一个高吞吐、持久性、实时性的开源分布式消息订阅和发布系统,常用作实时数据流枢纽、系统日志服务、消息队列服务,在海量数据的传输与处理上被广泛应用[1]。

生产者(Producer)、消费者(Consumer)、代理(Broker)三大组件构成Kafka的基本架构。其中,生产者是消息的来源,负责收集消息推送至代理;代理负责接收消息,将数据存储并持久化;消费者接收并处理代理推送的消息。每条发布到Kafka集群的消息都有一个主题(Topic),每个主题都有若干个队列分区(Partition),每个分区内的每条消息都有一个唯一递增的序列号偏移量(Offset)。生产者将消息发往选定主题的选定分区,消费者接收选定主题的消息,保存偏移量信息。

本文使用Apache Kafka作为车辆实时数据的消息队列服务。

1.2 Spark Streaming

Apache Spark Streaming是基于Apache Spark的实时数据流处理框架,具有高吞吐、扩展性、容错性等特点,支持Kafka、Flume、HDFS等多数据源,提供map、reduce、join和window等高级功能及复杂算子处理流数据,最终将数据处理结果输出至文件系统、数据库、实时流[2]。

Spark Streaming在运行过程中将实时数据流按照一定的时间间隔分隔成不同批次数据,切片数据经由Spark Engine处理得到对应批次结果。Spark Streaming提供表示在切片内部连续,切片之间相互独立,高度抽象的特有数据类型DStream。DStream由一系列连续的RDD(弹性分布式数据集)构成,按照时间间隔分隔的实时数据流切片数据对应一个RDD实例。实时数据流会通过一个先进先出的队列,由Spark Engine处理,依次取出切片数据,并把切片数据封装成RDD。开发者可借助Spark Streaming提供的高级功能实现复杂、高效的流计算。图1为Spark Streaming运行过程示意图。

相较于传统的大数据处理框架Hadoop MapReduce,Spark Streaming因其高吞吐、可扩展、容错性等特点更能解决实时与快速计算需求,故本文使用Apache Spark Streaming作为车辆实时数据的实时数据流处理框架。

1.3 拓扑关系判断算法

地理空间中的空间目标之间存在各种空间关系,主要有度量空间关系、顺序空间关系、拓扑空间关系[3]。拓扑关系描述了空间对象在拓扑变换下具有的拓扑不变量,是空间关系中最重要的基本关系[4]。本文关注的拓扑关系是车辆与电子围栏区域之间的拓扑关系,主要涉及的拓扑关系判断是点与面的拓扑关系判断。

点与多边形位置关系的判断是计算几何中的算法,常用的有射线法、转角法、面积判断法、栅格法[5]。射线法的算法核心是从点沿x轴作一条射线,若该射线与多边形边界的交点个数为奇数,则点在多边形内部;若该射线与多边形边界的交点个数为偶数,则点在多边形外部。射线法具有高精度、低时间复杂度等特点,故本文采用射线法作为点与面的拓扑关系判断算法。

2 技术实现

车辆电子围栏技术框架总体结构从上到下可以分为数据终端层、数据接入层、数据处理层、数据写入层、数据分发层,见图2。

数据终端层是识别和管理车辆终端设备,包含车载GPS和其他定位设备。

数据接入层是使用数据接入程序通过809协议获取车辆定位数据,并作为Kafka生产者(Producer)将数据写入Kafka主题(Topics)。

数据处理层作为Kafka消费者(Consumer),读取实时数据流,实时数据流经Spark Streaming转换成DStream,交由射线法判断车辆实时定位与电子围栏区域的拓扑关系,予以相应标识。

数据处理层处理后的数据将作为Kafka生产者,由数据写入层写入至新的Kafka主题与数据库。

数据分发层负责将数据处理层处理后的数据按需分配Kafka消费者,供各个消费终端使用。

3 技术应用

3.1 应用场景

本文研究的基于Spark Streaming的车辆电子围栏技术已应用于广西道路运输“两客一危”营运车辆动态数据电子围栏项目实施。广西道路运输“两客一危”营运车辆动态数据覆盖全区各地市,暂未按照地市对数据进行划分,导致共享给所有单位的都是全区的数据。为降低敏感信息泄露风险,结合广西各有关部门对广西道路运输“两客一危”营运车辆动态数据的共享需求,遵循“属地内数据共享”标准,对广西道路运输“两客一危”车辆轨迹动态数据进行“电子围栏”开发,并进行相关脱敏处理,以支撑相关车辆动态数据的合规共享。

该项目主要包含以下实施内容:

(1)开发数据接入程序模块,解析809协议并将车辆轨迹实时数据写入Kafka消息系统。

(2)基于广西14个地市地理信息数据整理,形成地市区域电子围栏。

(3)基于Spark Streaming流处理框架,开发车辆与电子围栏区域拓扑关系判断算法模块,处理广西道路运输“两客一危”车辆轨迹实时流数据。

(4)将处理后数据存储至数据库,通过厅共享交换平台进行共享分发。

(5)根据应用场景,构建多Kafka主题,供各地市使用。

运行环境如表1所示,搭建有1台集群主机与4个集群节点,Spark、Kafka与Mysql程序均使用集群部署,由ZooKeeper程序统一调度管理;处理后数据分发至Kafka主题,存储至集群Mysql数据库。

3.2 应用效果

本文研究的基于Spark Streaming的车辆电子围栏技术应用于广西道路运输“两客一危”营运车辆动态数据电子围栏项目实践效果良好,如图3的统计数据所示,平均每日处理数据量达1 500万条,总计处理数据量超十亿,针对应用场景分发Kafka主题超过20个,满足了广西“两客一危”车辆电子围栏项目对危险货物运输车辆等重点营运车辆监管与地市交通运输主管部门对交通运输“两客一危”营运车辆动态数据的共享需求,相较于常规数据处理框架技术,能够处理高吞吐、高实时性的应用场景;多应用场景的Kafka主题分发,遵循了“属地内数据共享”标准,实现了数据脱敏。

4 结语

本文提出了使用Kafka作为车辆实时数据的消息队列服务,基于Spark Streaming实时数据流处理框架,结合拓扑关系判断算法射线法的车辆电子围栏技术。本文实现的技术有以下优势:

(1)处理能力强。采用具有高吞吐率、实时性、扩展性的Kafka消息队列服务与实时流处理框架Spark Streaming,能够处理高并发、高吞吐率的车辆实时动态数据,高效运用拓扑关系判断算法,对车辆动态进行有效监管。

(2)可扩展性高。本文使用的Kafka消息系统、Spark Streaming实时流的数据处理框架,均采用分布式集群模式,在实际应用中,面临业务功能与规模的扩展,只需按照当前的集群设计模式扩展并部署,可以减少项目前期的架构设计与建设成本。

(3)应用性强。经处理的车辆动态数据可动态满足数据存储、数据分析、数据共享的需求,应用至车辆轨迹监测、重点车辆安全风险预警、车流量预测等多种业务领域。

参考文献:

[1]Ranjan Rajiv.Streaming big data processing in datacenter clouds[J].IEEE Cloud Computing,2014,1(1):78-83.

[2]崔星灿,禹晓辉,刘 洋,等.分布式流处理技术综述[J].计算机研究与发展,2015,52(2):318-332.

[3]沈敬伟.三维拓扑关系描述、计算和推理研究[D].南京:南京师范大学,2011.

[4]李文林.数学史概论[M].北京:高等教育出版社,2011.

[5]孔令德.计算机图形学[M].北京:清华大学出版社,2013.