一种轨道交通流数据处理方法技术

技术编号:23710258 阅读:35 留言:0更新日期:2020-04-08 12:10
本发明专利技术公开了一种轨道交通流数据处理方法,该方法基于Kafka的消息分发并且设计Storm拓扑结构,通过Kafka汇总轨道交通客流及设备等监测数据形成数据源,并将数据源发送给Storm进行实时处理;Storm拓扑结构由数据源组件KafkaSpout和三个逻辑处理单元PreBolt、RunBolt以及PostBolt组成;通过ZooKeeper提供的Watcher接口则用于对Storm进行监听,通过监听来了解轨道交通信息等变化,然后控制Kafka集群做出相应的指令处理;本发明专利技术数据在程序的传递过程均采用随机分组的方式,分布式处理的过程使得数据处理的延时大大降低。

A data processing method of rail transit flow

【技术实现步骤摘要】
一种轨道交通流数据处理方法
本专利技术涉及轨道交通领域,尤其涉及一种轨道交通流数据处理方法。
技术介绍
本专利技术使用云平台计算技术来对轨道交通获取到流数据进行处理,来加快对庞大数据的处理,节省处理时间,能更有效的根据数据及时做出反应。云计算只需要很少的管理工作,如与服务器之间的交互,就能够实现从可配置的计算资源共享池中,便捷地通过关联网络获取需要的资源,提供的速度十分迅速,并且在使用完毕后也能够迅速的释放资源。本专利技术加快了轨道交通中不间断的庞大流数据的处理,将处理后的有效数据传递到下一步根据平台预先设置的决策方法来快速的生成对应指令,使得轨道交通中的各项指令步骤能够实时给出,快速完成。此技术是基于主要用于实时处理计算大规模不间断数据流的Storm架构,借助ZooKeeper来协调整个集群,主节点(控制节点)运行Nimbus,负责发布拓扑程序和任务,并对集群状态进行监控;从节点(工作节点),运行Supervisor,负责接收任务并执行。其中有一个拓扑数据入口Spout,将外部传输的数据流转换为元组发送给处理加工的逻辑单元Bolt,一个Bolt完成处理后可以继续传递给后续的Bolt,处理完成后即可得到所需的数据。数据入口Spout和逻辑单元Bolt间采用流分组策略进行链接,它们均能配置成多个实例以达到并行处理的目的,而这些实例最终也就是所需执行的任务,将会在工作节点中被调度执行,最终形成机器所需执行的命令。目前轨道交通流数据进行处理的技术主要存在以下缺点:1、现有技术虽然实时计算延迟度较低,但仍为秒级的延迟而非毫秒级;2、现有技术是准实时的,是将一个时间段内的数据收集起来作为一个RDD(弹性分布式数据集),然后进行处理,而非来一条数据处理一条数据这样纯实时处理。3、现有技术的健壮性一般,没有特别大的容错能力。
技术实现思路
本专利技术目的在于针对现有技术的不足,提出一种基于云计算的轨道交通流数据处理方法,将数据处理的延时进一步降低达到毫秒级别的处理延迟,并且数据的处理过程是纯实时的,急来一条数据处理一条数据,增强数据处理过程中的容错能力,提高平台运行的健壮性。本专利技术的目的是通过以下技术方案来实现的:一种轨道交通流数据处理方法,该方法包括以下步骤:(1)基于Kafka的消息分发,Kafka用于发布与订阅消息,包括控制节点和工作节点,即控制节点运行Nimbus,负责发布拓扑结构和任务,工作节点运行Supervisor,负责接收任务并执行;通过Kafka汇总轨道交通客流及设备等监测数据形成数据源,并将数据源发送给Storm进行实时处理;(2)Storm拓扑结构的设计,所述Storm拓扑结构由数据源组件KafkaSpout和三个逻辑处理单元PreBolt、RunBolt以及PostBolt组成;Storm通过ZooKeeper来控制Kafka集群,控制节点运行的Nimbus进程向ZooKeeper发送轨道交通中所有的状态信息,进而发布Storm拓扑结构中所有逻辑处理单元节点个数和任务,所述轨道交通中所有的状态信息包括保存在Kafka集群上的实时客流量、运载量和运输速率等;ZooKeeper提供的Watcher接口则用于对Storm进行监听,通过监听来了解轨道交通信息等变化,然后控制Kafka集群做出相应的指令处理;(3)KafkaSpout从Kafka集群中拉取数据,并将其处理成元组,传递到后续的逻辑处理单元PreBlot中;传递的方式采用随机分组的方式,使得元组均匀的分布到PreBolt的数据处理程序中,在PreBolt中对元组进行预处理,即根据需求剔除无关的数据,所述无关的数据为除实时客流量、运载量、运输速率之外的数据,然后将剔除后的数据标记数据的来源并处理成特征向量的形式;(4)PreBolt逻辑单元将预处理后的数据传递到RunBolt逻辑单元中,在RunBolt逻辑单元中将特征向量作为VPMCD模型的训练样本,完成VPMCD模型初始化与VPMCD模型的在线增量学习;所述VPMCD模型初始化具体为:首先采用历史数据对模型进行首次训练,将训练好后的模型参数储存到关系型数据库中,然后通过RunBolt读取首次训练后的模型;所述模型的在线增量学习,通过Zookeeper对RunBolt的监听,可以实现模型的增量学习,具体为:随着轨道交通中的客流数据信息变化,当积累了新的训练样本时,ZooKeeper会将把新的训练样本序列化后发送给RunBolt逻辑单元,RunBolt逻辑单元将序列化的训练样本通过getData方法进行反序列操作,获得实际新的训练样本,然后对RunBolt逻辑单元读取的VPMCD模型进行重新训练。(5)RunBolt将标记来源的数据和在线增量学习后的VPMCD模型采用随机分组的方式发送到PostBolt逻辑处理单元中,通过PostBolt逻辑处理单元将标记来源的数据和在线增量学习后的VPMCD模型参数保存于关系型数据库中;所述在线增量学习后的VPMCD模型可用于对轨道交通情况进行预测。进一步地,ZooKeeper对Storm进行监听,具体为:(1)在Storm拓扑结构中设计一个Connection类实现Watcher接口,ZooKeeper通过Watcher接口监听到Kafka、PreBolt、RunBolt、PostBolt等节点状态信息的变化。(2)在KafkaSpout中设计一个DataListener接口,其getDataInfo方法负责将数据从ZooKeeper中获取到拓扑结构中。(3)设计一个能够向拓扑结构传递消息的ZooKeeper客户端,通过此客户端,ZooKeeper能够向拓扑程序发送指令和数据,并能将序列化后的指令或数据发送到节点路径上。进一步地,步骤(4)的模型的在线增量学习中,根据样本的时效性,确定积累的新的训练样本的时间间隔。进一步地,多个PostBolt逻辑处理单元同时运行,而且因为每个数据流均被标记了来源,所以不同数据流的数据可以储存在同一个物理分区中,节省了计算资源,降低延时。进一步地,同时运行的RunBolt逻辑处理单元有多个,而其个数在控制节点发布Storm拓扑结构时已经确定,将个数作为参数传递给PostBolt,并且PostBolt统计收到的VPMCD模型个数,当RunBolt逻辑处理单元个数与统计的VPMCD模型个数相等时执行一次存储操作,避免了重复存储,而在之后的运行过程中导致出错。本专利技术的有益效果:1、延时低,达到毫秒级:数据在程序的传递过程均采用随机分组的方式,分布式处理的过程使得数据处理的延时大大降低;2、数据纯实时处理:ZooKeeper能够实时监测到每个步骤中的数据变化,同时RunBolt逻辑处理单元能够通过监测的数据变化提供新样本进行在线的增量学习,而不会积累太多样本进行处理,因此其学习改进也是近乎实时的;3、健壮性好容错能力强:制定了一个避免重复存储同一个模型分类的策略,PostBolt逻辑本文档来自技高网
...

【技术保护点】
1.一种轨道交通流数据处理方法,其特征在于,该方法包括以下步骤:/n(1)基于Kafka的消息分发,Kafka用于发布与订阅消息,包括控制节点和工作节点,即控制节点运行Nimbus,负责发布拓扑结构和任务,工作节点运行Supervisor,负责接收任务并执行;通过Kafka汇总轨道交通客流及设备等监测数据形成数据源,并将数据源发送给Storm进行实时处理;/n(2)Storm拓扑结构的设计,所述Storm拓扑结构由数据源组件KafkaSpout和三个逻辑处理单元PreBolt、RunBolt以及PostBolt组成;/nStorm通过ZooKeeper来控制Kafka集群,控制节点运行的Nimbus进程向ZooKeeper发送轨道交通中所有的状态信息,进而发布Storm拓扑结构中所有逻辑处理单元节点个数和任务,所述轨道交通中所有的状态信息包括保存在Kafka集群上的实时客流量、运载量和运输速率等;ZooKeeper提供的Watcher接口则用于对Storm进行监听,通过监听来了解轨道交通信息等变化,然后控制Kafka集群做出相应的指令处理;/n(3)KafkaSpout从Kafka集群中拉取数据,并将其处理成元组,传递到后续的逻辑处理单元PreBlot中;传递的方式采用随机分组的方式,使得元组均匀的分布到PreBolt的数据处理程序中,在PreBolt中对元组进行预处理,即根据需求剔除无关的数据,所述无关的数据为除实时客流量、运载量、运输速率之外的数据,然后将剔除后的数据标记数据的来源并处理成特征向量的形式;/n(4)PreBolt逻辑单元将预处理后的数据传递到RunBolt逻辑单元中,在RunBolt逻辑单元中将特征向量作为VPMCD模型的训练样本,完成VPMCD模型初始化与VPMCD模型的在线增量学习;/n所述VPMCD模型初始化具体为:首先采用历史数据对模型进行首次训练,将训练好后的模型参数储存到关系型数据库中,然后通过RunBolt读取首次训练后的模型;/n所述模型的在线增量学习,通过Zookeeper对RunBolt的监听,可以实现模型的增量学习,具体为:随着轨道交通中的客流数据信息变化,当积累了新的训练样本时,ZooKeeper会将把新的训练样本序列化后发送给RunBolt逻辑单元,RunBolt逻辑单元将序列化的训练样本通过getData方法进行反序列操作,获得实际新的训练样本,然后对RunBolt逻辑单元读取的VPMCD模型进行重新训练。/n(5)RunBolt将标记来源的数据和在线增量学习后的VPMCD模型采用随机分组的方式发送到PostBolt逻辑处理单元中,通过PostBolt逻辑处理单元将标记来源的数据和在线增量学习后的VPMCD模型参数保存于关系型数据库中;所述在线增量学习后的VPMCD模型可用于对轨道交通情况进行预测。/n...

【技术特征摘要】
1.一种轨道交通流数据处理方法,其特征在于,该方法包括以下步骤:
(1)基于Kafka的消息分发,Kafka用于发布与订阅消息,包括控制节点和工作节点,即控制节点运行Nimbus,负责发布拓扑结构和任务,工作节点运行Supervisor,负责接收任务并执行;通过Kafka汇总轨道交通客流及设备等监测数据形成数据源,并将数据源发送给Storm进行实时处理;
(2)Storm拓扑结构的设计,所述Storm拓扑结构由数据源组件KafkaSpout和三个逻辑处理单元PreBolt、RunBolt以及PostBolt组成;
Storm通过ZooKeeper来控制Kafka集群,控制节点运行的Nimbus进程向ZooKeeper发送轨道交通中所有的状态信息,进而发布Storm拓扑结构中所有逻辑处理单元节点个数和任务,所述轨道交通中所有的状态信息包括保存在Kafka集群上的实时客流量、运载量和运输速率等;ZooKeeper提供的Watcher接口则用于对Storm进行监听,通过监听来了解轨道交通信息等变化,然后控制Kafka集群做出相应的指令处理;
(3)KafkaSpout从Kafka集群中拉取数据,并将其处理成元组,传递到后续的逻辑处理单元PreBlot中;传递的方式采用随机分组的方式,使得元组均匀的分布到PreBolt的数据处理程序中,在PreBolt中对元组进行预处理,即根据需求剔除无关的数据,所述无关的数据为除实时客流量、运载量、运输速率之外的数据,然后将剔除后的数据标记数据的来源并处理成特征向量的形式;
(4)PreBolt逻辑单元将预处理后的数据传递到RunBolt逻辑单元中,在RunBolt逻辑单元中将特征向量作为VPMCD模型的训练样本,完成VPMCD模型初始化与VPMCD模型的在线增量学习;
所述VPMCD模型初始化具体为:首先采用历史数据对模型进行首次训练,将训练好后的模型参数储存到关系型数据库中,然后通过RunBolt读取首次训练后的模型;
所述模型的在线增量学习,通过Zookeeper对RunBolt的监听,可以实现模型的增量学习,具体为:随着轨道交通中的客流数据信息变化,当积累了新的训练样本时,ZooKeeper会将把新的训练样本序列化后发送给RunBolt逻辑单元,RunBolt逻辑单元将序...

【专利技术属性】
技术研发人员:黄滔王大海杨逸飞徐晖王刚林宇静高杨刘国庆
申请(专利权)人:浙江邦盛科技有限公司中车唐山机车车辆有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1