公共交通出行服务大数据平台解决方案1概述随着近几年我省经济的快速发展,公众出行方式日趋多样化,公众对交通出行信息的需求日益增强。如何辅助出行者迅速获取有效交通信息,提高出行效率,提升服务水平,是交通部门面临的一个现实问题。2005年,交通部将“公众出行交通信息服务系统”确定为三大交通信息化示范工程之一,在交通信息化工作基础较好的几个省市相继开发了一些应用系统,在一定程度上方便了公众的出行,得到了公众的认可。但这些应用系统主要是基于具体部门业务及所拥有的数据进行开发,信息服务的内容还缺少关联性;其次,现有的各类应用系统在服务内容、服务方式、服务质量以及服务范围,以信息发布和推送为主,很少接收来自公众的出行反馈信息,没有形成数据闭环。目前我省各交通管理部门已经建立了功能相对完善的交通指挥控制中心,包括交通信号控制系统、道路交通监控系统、交通诱导显示系统、停车管理系统、交通违章处理系统等,初步实现了交通信号控制、道路监控、交通信息综合查询、有/无线指挥调度及交通诱导等基础功能。公安交管部门不仅具备了交通基础信息,还拥有了各类动态数据,如车辆实时营运信息、道路交通状况等,采集的数据类型包括属性数据、空间数据、影像数据等。对交通三要素(人流、车辆、道路)连续不断采集的多源交通数据流产生了巨量的交通数据,具有典型的“3V”特性:大容量、多样性、高速度,也具有价值、复杂性的特点,属于名符其实的交通“大数据”。数据是智能交通的核心,数据为王的大数据时代已经到来。如何高效地从海量数据中分析、挖掘所需的信息和规律,结合已有经验和数学模型,实现对城市道路交通的整体运营水平和人们出行规律的深度挖掘,生成更高层次的决策支持信息,获得各类分析、评价数据,为交通诱导、交通控制、交通需求管理、紧急事件管理等提供决策支持,为交通管理者、运营者和个体出行者提供交通信息,成为当务之急。本文面对交通大数据,就如何存储、组织和管理数据,并提供政务与商务两方面的公共交通出行服务,提出了解决方案。本文分析了交通大数据分析平台需具备的特点,提出了公共交通出行服务大数据平台逻辑框架,并在现有技术基础上,阐述了平台构建方案。2功能需求如前所述,交通服务要提供全面的路况,需要交通综合监测网络对城市道路交通状况、交通流信息、交通违法行为等的全面监测,采集、处理及分析大量的实时监测数据,具有数据量巨大的特点;随着城市机动车保有量不断提高,城市道路交通状况日趋复杂化,交通流特性呈现随时间变化大、区域关联性强的特点,需要根据实时的交通流数据及时全面采集、处理、分析等,因此具有系统负载时变性高、波动大的特点,应支持低延时、高并发事务;公众出行服务对交通信息发布的时效性要求高,需将准确的信息及时提供给不同需求的主体,信息处理、分析实时性要求高;公共交通出行服务大数据平台需面向政府、社会和公众提供交通服务,为出行者提供安全、畅通、高品质的行程服务,保障交通运输的高安全、高时效和高准确性,必须具有高可用性和高稳定性。这给公共交通出行服务大数据平台提出了挑战。表1公共交通出行服务大数据平台需具备的特性特性简要说明高度可扩展性横向大规模可扩展,大规模并行处理实时性对交通数据流、事件的实时处理高性能、低延迟分析快速响应复杂查询与深度分析、实时分析结果高度容错性系统在硬件级、软件级实现容错可用性系统具有相当高的可靠性支持异构环境对硬件平台一致性要求不高,适应能力强开放性、易用性系统之间可实现数据共享、服务集成较低成本较高的性价比公共交通出行服务大数据平台面对海量数据,系统不能仅依靠少数几台机器的升级(Scale-up,纵向扩展)满足数据量的增长,必须做到横向可扩展(Scale-out),既满足性能的要求,也满足存储的要求(包括结构性数据、非结构形式、半结构性数据)。由于服务需求的多样性,平台既要支持交通数据流的实时分析与处理又要支持复杂查询与深度分析所需的高性能、低延迟需求。平台需具有高度容错性,大数据的容错性要求在作业(Job)执行过程中,一个参与节点失效不需要重做整个作业。机群节点数的增加会增加节点失效概率,在大规模机群环境下,节点的失效不再是稀有事件,因此在大规模机群环境下,系统不能依赖于硬件来保证容错性,要更多地考虑软件级容错,同时增加系统的可用性。系统的开放性也是十分重要的,作为一个复杂系统,各子系统之间数据交换、共享以及服务集成是必不可少的,同时要求系统支持迭代开发,可不断更新/增加功能;系统服务不但专业人员可以使用,业务人员也可以使用,分析可以实现大众化。另外,平台应支持异构环境。公共交通出行服务大数据平台的建设是分步骤、分阶段进行的,设备的采购、更新会造成硬件系统的异构,建设同构大规模机群难度较大;另外,对异构环境的支持可以有效地利用历史上积累的计算机资源,降低硬件成本的投入。3逻辑框架公共交通出行服务大数据平台是一个复杂系统,内容庞多、结构复杂、技术含量高,需要多个领域、多个部门的长期合作。同时,公共交通出行服务大数据平台涉众面广,包括政府部门、企业、公众,由此决定了其信息服务需求的多样性:交通指挥部门需要实时连续交通监控(如流量、平均车速、饱和度、占有率等);城市规划部门需要当前和历史路网交通流和交通需求数据;出行者需要即席查询交通信息等。因此,涉及交通数据流实时分析处理(RTAP)、联机事务处理(OLTP)、联机分析处理(OLAP)、联机分析与挖掘(OLAM)等功能。图1大数据分析与处理平台通用体系结构为此,构建公共交通出行服务大数据平台需要结合分布式并行处理技术与实时数据流处理技术。其逻辑功能框架如图1所示。层次功能结构逻辑如图1右半部分所示,自底向上分别是分布式存储层、分布式处理层、元数据服务层、处理分析层(包括复杂事件处理CEP、实时分析处理RTAP、联机分析处理OLAP、深度分析OLAM)以及交通大数据分析处理应用层;同时,需要对分布式系统进行作业、资源调度、管理的协调与监控中间件的支持,支持工作流及其调度的设施。而在图1左半部分则展示了交通大数据分析与处理平台的部件结构图,在逻辑上可划分为实时数据流处理子系统与大数据深度分析(知识获取与模式发现)子系统。实时数据流处理子系统接受实时交通数据流,数据流元组记录随时间变化的空间(如位置、区域等)信息、以及车牌、卡口、速度等属性数据或视频、图像数据,具有动态、海量、高维、时效、连续、多源、无限等特性。该子系统是实现实时交通监控系统的数据基础,能够为指挥调度、道路规划、事故预警等交通信息管理和决策提供支持,为交通用户提供更为全面和便捷的服务。该子系统包含数据流管理系统,提供对数据流的连续查询和混合查询支持。连续查询用于实时持续不断地监控,如“查询超速的车辆信息”以及“开始监控违法车辆行踪”是连续运行的查询,后者涉及空间数据库。用户可以指定连续查询的滑动时间窗口,对于进入窗口且符合查询条件的事件进行报警监控。混合查询用于那些不仅需要涉及动态流数据还需要访问静态历史和空间数据的复杂查询,如“统计未来5分钟内从长沙市流出的客流量”。深度分析子系统运用各种先进的数据处理技术,包括数据集成技术、人工智能与数据挖掘技术、决策支持与专家系统等,根据各交通子系统的需求和它们之间的内在联系,对来自多来源渠道、格式不一致的数据在综合交通信息的基础上进行抽取、集成,并进行深度分析与处理,获得可用于决策的模式、模型、规则和知识。需要改造传统的数据挖掘、机器学习算法,以适应大数据的需要。平台对外提供各种交通信息服务,实现多种模式交通信息发布,包括Web交通信息服务、电台电视台、交通服务咨询热线、手机与车载导航等移动终端、触摸屏查询终端、可变情报板、交通指南等载体的交通信息发布。各种应用与服务之间通过一个统一的服务接口进行连接,服务接口向上层应用提供一致的调用接口,屏蔽底层细节,它是一个接口规范,用以隔离应用与服务,实现两者的独立性,以期达到平台功能扩展的灵活性。平台的数据则来自ITS交通数据采集监控网,该层包括网络层(信息传输)和感知层(信息感知与获取)。4平台的构建4.1云平台对大数据进行分析的基本策略是把计算推向数据,而不是移动大量的数据;对大数据处理、分析的性能优化,分布式并行是必然选择,并且软件系统性能的提升可以降低企业对硬件的投入成本、节省计算资源,提高系统吞吐量;但异构节点之间的性能差异可能导致系统“木桶效应”,因此,异构机群需要特别关注负载均衡、任务调度等方面的设计;交通数据量及其多样性给数据管理系统提出了新的要求,在存储以及处理方式需要具备较好的扩展性,无共享结构(Shared-nothing)的存储方式是较好的候选方案,传统数据库缺少水平扩展的能力,在系统设计决策中根据数据大小、性能瓶颈、处理能力等因素决定哪些数据由传统数据库来管理,哪些数据应当由新出现的NoSQL(NotonlySQL)存储管理系统来管理。根据以上分析,云计算平台是一种可选方案。云计算是分布式处理、并行处理和网格计算的发展,是这些计算机科学概念的商业实现,具有分布式、大规模、虚拟化、高可靠性、通用性、高可扩展性、低廉等特点,它实现对共享可配置计算资源(包括网络、服务器、存储、应用和服务等)的按需服务。云计算中的平台(集群计算框架)有谷歌的MapReduce与微软的Dryad[13]等,而Hadoop是一个实现了MapReduce的开源分布式并行编程框架。基于Hadoop的应用可以运行于机群上,实现对海量数据的处理。此外,Hadoop平台已经形成了一个生态系统,提供一个分布式文件系统(HDFS),HBase是基于HDFS的对BigTable的开源实现,是面向列、可伸缩的分布式存储系统,支持事务以及B树范围查询和排序;Hive是基于Hadoop的大型数据仓库,其目标是简化Hadoop上的数据聚集、即席查询及大数据集的分析等操作,以减轻程序员的负担;Pig是Yahoo!提出的类似于Hive的大数据集分析平台,它提供的类SQL语言叫PigLatin,一种基于操作符的数据流式的接口,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算;Mahout是可伸缩的机器学习算法;工具Sqoop用于传统数据库和HDFS进行数据交换;Oozie是工作流调度工具;ZooKeeper是一个分布式的应用程序协调器,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。基于Hadoop的大数据分析平台构建如图3所示。需要注意的是,Hadoop适用于长顺序扫描,基于Hadoop的Hive会导致较高的延迟,因此不适用于需要快速响应的场景;Hive基于只读的,不适用于事务处理的场景。4.2实时数据处理平台为解决交通数据处理的实时性问题,如交通流的实时监控、交通拥堵状况的实时信息、交通诱导等应用均要求系统能够返回当前的交通状态;在另一些场景则需要进行连续监控,在技术上涉及连续查询。在构建公共交通出行服务大数据平台中,实时交通数据流处理子系统是关键系统之一。该系统中涉及的关键技术包括:高速数据转换,将获取的事件数据流由随机访问格式转换为分布式并行分析格式,将几分钟前获取的交通数据即时处理呈现最新分析结果;灵活的资源分配方案,不同类型的数据处理组件(即事件处理服务)与可伸缩分布式键值存储灵活连接,可以便捷地构造新的服务而不影响现有系统的运行;基于滑动窗口的连续计算技术;自适应负载平衡与资源分配优化。建议基于storm实现分布式实时流计算框架。Storm具有高容错性、水平扩展性好、快速、可靠处理消息等优点,支持节点在集群中动态增加或移除。Storm的缺点是属于全内存计算,所需的内存资源多,成本相对较高。Storm采用创建拓扑结构(topology)来转换数据流,不同于Hadoop作业,这些转换会持续处理到达的数据。Storm为流转换提供的基本组件有:喷口(Spout)和螺栓(Bolt)。Spout是一个输入流组件,负责将数据分发到多个Bolts执行处理任务(如过滤、聚合、查询等),Bolts执行后可产生新的流作为下级Bolts的输