- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实时Hadoop实战篇:基于Storm实时路况分析和实时路径推荐系统
本文介绍的项目,我们基于storm开发了深圳市实时交通路况系统,源码已经在github上开源:
???????能实时计算出深圳市10万多条路段的实时平均速度,进而在地图上用红、黄、绿来代表严重拥堵、轻微拥堵、畅通,实现了交通路况实时播报功能;
2.???????当系统在响应驾车从一个出发点到达另外一个目的地的最佳导航路径查询时,系统能考虑到当前各个路段的时速,给出一个最短行驶时间的路径而非当前大众的地图厂商给出的最短物理路径,从而实现实时推荐。
与当前主流的百度地图、google地图等主流实时交通分析相比,有以下亮点:
1.???????数据来源纯净,准确率高。百度地图声称其准确率可达86%,每3分钟更新一次,而本系统更新频率达1分钟每次,经实地勘察准确率比百度高。原因在于百度地图实时路况数据采集于打开了位置服务的手机以及其他移动设备收集位置信息及移动速度信息,通过各种数据加权估算得到某个路段的交通情况,而本系统的数据全部采集于深圳市正在运行的出租车、公家车上的GPS定位仪,没有外来数据源污染我们的数据源。
2.???????将当前各个路段的平均时速作为考虑权重因子,给出用户一条行驶时间最短的导航路径。而目前的地图导航产品多半用Dijkstra算法来确定一条最短物理路径,而本系统却能考虑到道路的实际拥堵状况。
瞬间觉得该系统高大上了吧,那这个系统后台是如何实现的呢?请使劲往下拖。
2.??????项目背景
2.1.???????????项目来源
智能交通系统利用大量的多源数据,例如车载GPS数据、深圳通卡刷卡、手机蜂窝位置数据等,实现实时采集、存储、挖掘这些数据背后的信息,从而提高城市交通系统的管理与规划水平。
本项目的数据来源于深圳6万多辆出租车、公交车上安装的GPS定位仪,GPS定位仪每15秒向数据中心发送一条位置信息。每天24小时产生数据量大约3.5亿条,存储空间约300G。如果要采用传统的数据库来处理这些信息肯定是非常困难的,而功能强大的hadoop又无法实现实时分析功能,故本系统最终转而采用实时流处理平台storm。
Storm是twitter公司用于实时处理twitter用户的行为,例如关注、点赞、转发等信息流而开发出的分布式流计算平台,后来将其开源并捐献给了apache基金。
2.2.???????????Storm集群
物理机:6台16核处理器、64GB内存的联想服务器
虚拟化:用openstack将其中5台物理机每台虚拟化为4个4核CPU、16GB内存的虚拟机,从而产生了20个计算节点,目的是为了提高各个节点的资源利用率和集群快速部署;另外一台物理机作为Storm的控制节点nimbus和Storm ui?控制台。
集群部署:在一个虚拟机里安装好storm运行环境后,将这个虚拟机的镜像快速复制19份并启动,从而节省了在每个节点都安装一遍storm的人力投入;
软件:storm 0.8, zookeeper 3.4.5, MySQL等.
具体storm集群部署过程可以参考这篇博文:/s/blog_5ca749810101c2dy.html
?
1:?Storm集群组织结构
?
简略介绍下Storm集群的组织架构:
Storm UI是一个用户可以监控、操作storm任务的控制台,相当于hadoop的jobtracker;
Nimbus:是Storm的控制节点,相当于hadoop的namenode;
Supervisor:是Storm的计算节点,相当于hadoop的namenode。
?
3.??????实时计算架构和实现途径
3.1.???????????系统架构
?
图1:?实时交通路况分析系统架构图
实时交通路况的架构可以用这样的图1来简单表示。
其中出租车、公交车上的GPS采集器将数据发送给交通部门的数据中心,数据中心用socket通信将GPS数据发送给服务器,服务器将GPS数据存储一份在云存储器,用于hadoop离线分析,另外一份发给storm平台的spout组件。Storm平台分析完每一条GPS记录后,更新更当前各条道路的平均速度,并将分析结果写Mysql到数据库。前段服务器读取Mysql的数据实现实时展示,并能响应手机等终端的请求,将查询结果通过网页或者微信消息的形式发给用户。
3.2.???????????
流式计算流程图
2:?实时交通路况分析数据流向图
?
如图2所示,?从数据流进入Storm流计算平台到输出到数据库,数据流共经历了4个处理单元:SocketSoupt、MapMatchingBolt、SpeedCalcBolt、DBWritterBolt,其数据流分组的发送方式分别是shuffle grouping, field
文档评论(0)