曹星艳
(北京全路通信信号研究设计院集团有限公司,北京 100070)
基于交通行业的大数据处理平台应用
曹星艳
(北京全路通信信号研究设计院集团有限公司,北京 100070)
对交通大数据平台架构进行研究搭建,可支撑PB级的异构数据管理及复杂交通业务处理,平台提供开发API,实现对数据的存储、查询、计算分析;提供类SQL查询功能,能够对海量数据进行方便的查询;通过虚拟化资源管理和Hadoop分布式并行计算,实现基于Hadoop进行原型搭建的交通大数据处理平台。
交通;大数据平台;系统构架;技术实现
交通大数据处理平台将基于Hadoop进行基础建模,虚拟化技术和Hadoop分布式并行计算是该平台构建的两大核心。
虚拟化资源管理平台是基于XEN虚拟化技术开发的一个平台,该平台主要包括系统管理、资源管理、安全机制、智能调度、日志查看等几个核心模块。系统管理包括虚拟机模板管理性能监控和远程接入管理。虚拟机模板管理主要用于快速定制和安装业务系统,即通过现有物理机或虚拟机中存在的生产环境或试验环境进行智能化的模板备份;资源管理包括虚拟机生命周期管理、物理机生命周期管理和云存储管理等基础模块;安全管理包括用户角色管理、统一授权管理和安全审计管理;智能调度则包含资源均衡迁移、省电模式迁移和弹性扩充3个模块。
Hadoop是一个分布式系统基础架构,由Apache基金会开发,用户可以在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的威力高速运算和存储Hadoop,包括多个子项目,但主要由分布式存储HDFS、分布式计算MapReduce两个基础部分组成。其典型基本部署架构如图1所示。
交通行业数据的功能主要是完成数据多元化存储、可视化管理和运行监测、对海量数据的处理、快速实现数据接入和共享交换的需求以及数据安全。
2.1数据存储
分布式存储是目前大数据存储的主流方式,多采用普通硬件设备作为基础,主要解决数据的可扩展性、数据的一致性、全局命名空间、缓存等技术问题。分为C/S架构和P2P架构。海量数据分布式存储可存储多源异构的交通数据(包括结构化、非结构化、半结构化数据),支持PB级数据规模,通过简单增加硬件的条件实现存储容量的扩展,能方便的删除、迁移历史数据,针对大量小文件例如海量图片提供优化的存储,能够实现数据按照某分类标准进行方便的分类存储,能够实现数据的快速查询读取,单个小文件定位应在ms级别,读取在s级。
2.1.1Hadoop 框架
Hadoop是由HDFS、Mapreduce、Hbase、Hive和Zookeeper等组成。其中,核心组成部分是HDFS和Mapreduce。一个是分布式文件系统,一个是分布式处理模式和执行环境。其余的是数据库以及数据仓库等。
2.1.2HDFS分布式文件系统
HDFS( Hadoop Distributed File System),是一个高度容错的分布式系统,适合大文件的存储,交通行业有很多历史数据和实时数据,这个分布系统可以满足PB级的大文件。系统架构采用Master/Slave,其中NameNode对内可以维护元数据,对外可实现创建、打开、删除和重命名功能,DateNote可存储数据并负责数据的读写和处理请求。
2.1.3MapReduce
MapReduce是一种软件架构及框架计算,Map主要完成对数据的打散,Reduce完成对数据的聚集。对交通行业的数据进行数据挖掘和应用分析,用户只需要实现Map和Reduce两个接口,即可实现TB级数据的计算。这种架构会把输入的数据集切分成若干独立的数据块,用并行的方式完成处理,对输出的先后进行排序,并完成结果的输入。
2.1.4去重
DEDUPE技术大量用于数据备份系统中,有离线和在线两种。离线在数据的上传过程中,直接写到存储设备中,当用户数据上传结束后,再进行去重处理,这样对存储容量需求没有进行改进。在线用户数据上传到备份系统时,数据去重就会发生,用户的系统会被分成不同部分,每个部分被视为一个块,每个块都会保留成一个相应的指纹,然后通过指纹去查找相应块的存在可能性。
2.1.5分层存储
分层存储能更好发挥新的存储介质在读、写性能上的优势。分层存储是集成硬盘和SSD于一体,利用分析访问数据的频度和智能监控,将不同频度的数据灵活实时的在不同层级存储介质中,进行自动或手动数据迁移。使用频度高的交通数据被迁移到读、写性能优良的SSD卡上,频度低的数据放在价格低廉的硬盘矩阵上。
2.2数据交换
实现大数据平台和关系数据库之间的数据交换、多种数据来源导入到大数据平台中,包含且不限于以下种类:本地文件到大数据平台、FTP文件到大数据平台、Oracle数据库到大数据平台。针对不同导入需求通过配置或者少量开发可以灵活实现,具有定时任务的功能,能够满足各种定时导入数据的要求,导入过程保证了数据的一致性、完整性,对导入失败的数据能够进行方便的重处理。数据交换技术如图2所示。
2.2.1数据交换流程
数据交换服务是本平台的核心业务,系统管理模块的一切功能都是为数据交换服务的,数据交换服务长期驻留内存并运行,实时完成网络内各用户、各系统之间的信息交换与共享。
数据交换指共享方与订阅方之间的信息互通和数据交换。一个订阅方可以订阅多个共享方的共享数据,同理一个共享方也会受理多个订阅方的订阅请求。实际上产生数据交换的过程就是共享方向订阅方发送数据的过程。
数据交换流程如图3所示,当订阅方订阅了信息后,共享方轮询读取数据,并对数据进行封装,然后发送给订阅方,订阅方接到数据后,首先对数据进行验证、解析、整编,最后将合法数据保存(如果验证数据不合法,则丢弃并发送错误信息给共享方,要求重新发送),并封装确认信息返回给共享方。共享方在接到回复后,记录订阅概要信息(或重新读取数据进行发送),完成数据交换过程。
2.2.2数据交换内容
消息管理。本平台提供消息管理机制,统一管理经过平台的一切消息。平台采用特征验证码的方式为每条消息加注特征码,同时总结各用户端传送消息的特性,分析消息的归属类别,根据消息的特点对消息进行分类(如发送、请求、回复、接收、报错等)、整理、预排序,准备使用各自的通道进行传输,避免消息混乱的状态发生。消息的归类规则及特征码信息可以在目录服务中进行维护。
队列管理。当通过本平台的请求较多时,如果不对各类消息加以控制会产生资源争用或并发冲突的现象,并且可能会出现优先级较高的请求反而等待时间过长现象。因此本平台采用有效的队列管理手段,根据消息本身的特性优先级等信息调动、排列各进程,使所有请求有序高效的得以执行,从而最大程度的优化系统。
发送管理。本交换平台在处理各类数据交换与共享请求时,会产生各种信息及数据的发送操作,平台依据发送数据包的特征标识找到接收方,并首先探测网络状况,许可时即进行发送操作,并自动记录发送日志(根据日志记录设置情况而定)。
接收管理。与发送管理相对应,本平台在接收各用户传送过来的信息时,首先验证数据包的有效性,有效则接收下来进入下一步处理;否则,丢弃此包同时发送错误信息给发送方,并记录相关日志(根据日志定制部分的设置而定)。
封装解析。封装是指数据在发送之前进行的加密、压缩、封装过程。平台对准备发送的数据按一定规则加密压缩后,进行封装,并且一个数据包的大小是固定的(参见其他参数设置部分)。当欲传送数据大于规定包的大小时,系统自动将数据分成多个包进行传送,并记录各个包之间的先后关系,同时在包中加入明显的可供验证的标记。
解析即是接收方在接收到对方传来的数据包后,对数据包进行规则解密,验证数据的有效性,通过后即可整编保存数据。
2.2.3数据整编
数据接收并经解析后,要根据数据特性标识进行整编、再分析、归类、关联计算及相关转换处理,然后准备保存。数据整编主要指对经过解析检验的数据进行归类、按数据类型对应关系进行转换处理的过程。
2.2.4数据保存
整编无误的数据即可以保存到目的数据库的相关表内,完成数据交换的整个流程,并记录相关日志(依据日志设置而定)。数据保存处理流程如图4所示。
2.3 数据查询
基于海量数据存储模型,进行二级索引优化查询速度,提供类SQL、API两种查询方式,API应具有更高的效率、类SQL应具有更强的易用性,对类SQL查询支持对分布式存储的文件,按照索引键值进行查询。
2.4数据计算
数据计算完成平台提供的各种并行处理能力,实现对海量交通数据、多种计算模型的分析统计。2.4.1 MapReduce模式
MapReduce的计算模式主要有两个阶段,Map阶段和Reduce阶段,并定义了相应的函数来处理大数据集,这个计算过程就是将大数据集分解成若干个小数据集,每个数据集分别由集群中的一个节点进行处理并生成中间结果,中间结果又有大量的结点进行合并,形成最终结果。并行编写定制数据处理功能中的很多问题,如分布式存储、工作调度、负载平衡、网络通信等都由MapReduce负责处理,非常智能和灵活。
多个Reduce任务的MapReduc数据流程如图5所示。
计算模型的核心是Map和Reduce两个函数,由程序员负责实现,按照一定的影射规则,将输入的<key,value>对转换成另一个<key,value>对输出。
2.4.2MapReduce的总体执行流程分析
MapReduce的系统执行流程,依次为分割文件、指派任务、用户调用MapReduce的执、读取、本地写入、远程读写、写到输出文件、返回,如图6所示。
数据预处理是通过交通大数据处理平台从大量的数据中提取出对目标有重要影响的数据以免产生原始数据的冗余,或是处理一些无效数据,从而改善数据质量和提高数据分析的速度,数据预处理的内容包括数据筛选、数据变换和数据归约等,且数据预处理的结果是由数据分析目的决定的。
数据集成主要是通过交通大数据处理平台将多文件或多数据库运行环境中的异构数据进行合并处理。该环节主要包括数据的选择、数据的冲突问题以及数据不一致的处理。由于数据可能来自多个系统,所以存在异构数据的转换问题;另外,多个数据源的数据之间,还存在许多的不一致,如命名、结构、单位、含义等。因此,数据集成并非是简单的数据合并,而是把数据进行统一化和规范化处理的复杂过程。它需要统一原始数据中的所有矛盾之处,如字段的同名异义、异名同义、单位不统一、字长不一致等,从而把原始数据在最低层次上加以转换、提炼和聚集,形成最初始的挖掘数据。
3.1交通行业数据处理的主要功能
对交通大数据处理平台进行架构,可支撑PB级的异构数据管理及复杂交通业务处理,平台提供开发API,实现对数据的存储、查询、计算分析;提供类SQL查询功能,能够对海量数据进行方便的查询;通过灵活配置等能够实现不同查询需求最优的查询速度,精确查询可达到ms、s级别。模糊查询、多条件查询根据数据量大小、集群规模等不同,可以达到s级、min级响应,大规模数据分析、复杂模型算法等可以允许更长的响应时间。
提供对集群最基本的状态监控功能,能够满足日常维护需求。监控内容应至少包含:整体状态、总体数据量、存储空间使用情况、数据分布情况、动态的资源使用情况。
为保证系统的高可靠性,对平台中的关键节点提供HA方案,故障切换时间要控制在min级别,10 min以内。自动监控故障发生,切换过程要自动完成,不需要人工干预。
交通行业数据的处理可以解决跨越行政区域的限制、智能的配置交通资源、提高交通运行速率、提高交通预测水平、提高环境监测水平等。
3.2公交线网基础数据准备
公交站点聚合与线路匹配。把相同站名的站点位置坐标统一,每个独立站点单方向有且仅有唯一的坐标位置;基于A*搜索算法,检索公交行驶路径;对每条公交运行线路进行校核,以线路实际运行的路径为参照,确保线路运行轨迹正确,运行弧段号正确并且连贯,保证线路的完整性;并根据线路的站点位置与线路运行信息,计算线路相邻站点间的距离。
3.3公交定位数据预处理
1)按照车辆编号、时间顺序提取定位数据文件。
2)车辆定位数据转换与坐标偏移。将原始定位数据的时间格式由格林威治时间转换为北京时间、经纬度转换为WGS-84,再将经纬度由WGS-84偏移匹配为公用地图坐标。
3)地图匹配,并判断定位数据GPS坐标是否合法。按照线路、车辆分组,生成每车辆GPS文件,结合坐标位置信息,逐一匹配到地图,并判断GPS坐标是否合法。
4)按照GPS坐标搜索“最短距离”,定位车辆所在弧段具体位置。假定车辆行驶方向为1(环路不需要假定,仅一个方向),匹配该点所在线路的弧段编号和弧段位置, 按照指定线路方向进行全弧段序列匹配,弧段垂直距离最小者为该点所在弧段,如果最小值大于设定的阈值,则认为该数据为无效数据。
5)计算公交车定位数据与弧段起始点的距离,计算位于弧段的百分比位置车辆行驶轨迹。在最小垂直距离的基础上计算出公交车定位数据与弧段起始点的距离,以及位于弧段的百分比位置,从而将公交车定位数据匹配到相应弧段上,确定车辆行驶轨迹。如果GPS位置无法匹配成功某个弧段,则将该点记录匹配不成功弧段列表,对于非环路线路,连续匹配不成功GPS点数量大于4时,则调换线路方向,重新匹配所有GPS点序列,以适应线路双向异路的情况。
6)根据线路的方向1路径走向,判断所经过弧段是否连续,进行弧段弥补。
由于公交车运行在城市中,而城市高楼的遮挡和反射是造成测量误差的重要原因之一。同时,在林荫路、隧道及立交桥下行驶时,很容易发生数据丢失的情况。此外,公交定位数据每隔30 s回传一次,由于采样频率设定的间隔较大,也会发生匹配弧段不连续情况。
因此,如果两点所在弧段不连续,则进行弥补,计算两点间线路距离,弧段上如有站点,则认为车辆行驶过一站点,确认该弧段为站点弧段,并根据站点位置计算到站时间,弧段上没有站点,则计算进入弧段时间。满足以下两个条件的数据,不进行弧段弥补:
两点时间间隔如果超出设定的阈值,则废弃该点前所有数据。
计算两点间直线距离,如果两点直线距离行驶速度大于等于设定的速度值,则废弃该点数据,认为该点偏移较大,为飞点。
7)判断该GPS点所在弧段是否站点弧段。对于首站的GPS点如果离开站点在一定距离内时,则认为该点弧段仍为首站站点弧段,该点时间为到站时间。对于中途的GPS点只有该点在弧段的位置比例大于等于站点位置比例,方可认定该点弧段为站点弧段,并根据线路距离计算到站时间。
8)基于所驶过站点进行车辆行驶方向判别,确定是公交行驶方向。若公交车定位数据已经经过的两个站点的站点编号是顺序排列的,则计算的公交行驶方向正确;若站点编号是倒序,则公交行驶方向错误。需要改变匹配线路方向,按照之前的方法重新计算所有公交车定位数据,重新进行定位,以确定正确的方向。
9)公交定位数据预处理结果输出。以两相邻公交站点间路径为基本处理单位,通过数据的预处理,计算得到各车辆每个站点的到站时间,即每个站点区间的起始时间和结束时间,以数据表的形式输出,再导入到数据库中,作为公交运送速度计算或与其他类别公共交通数据匹配的基础。
基于交通行业的大数据处理平台通过Hadoop基础架构,利用交通大数据处理验证平台,实现交通行业的数据存储、数据交换、数据查询和数据计算的功能。
[1]周宝曜,刘伟,范承工.大数据[M].北京:电子工业出版社,2013.
[2]杨正洪.智慧城市—大数据、物联网和云计算之应用[M].北京:清华大学出版社,2014.
The paper introduces how to build a big data platform architecture for traffic industry. The platform can support the PB-level heterogeneous data management and complex transportation business processing, provide API development, and can fulfi ll data storage, query, calculation and analysis. It also can provide SQL-like query function for conveniently query mass data. The Hadoop-based big data processing platform is built through the virtual resource management and Hadoop distributed parallel computing. Keywords: traffi c; big data platform; system architecture; technology
10.3969/j.issn.1673-4440.2016.02.020
2014-06-11)