加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Uber永久定位系统实时数据分析过程实践!

发布时间:2018-08-26 09:16:59 所属栏目:教程 来源:赵钰莹
导读:根据Gartner所言,到2020年,每个智慧城市将使用约13.9亿辆联网汽车,这些汽车配备物联网传感器和其他设备。城市中的车辆定位和行为模式分析将有助于优化流量,更好的规划决策和进行更智能的广告投放。例如,对GPS汽车数据分析可以允许城市基于实时交通信
副标题[/!--empirenews.page--]

根据Gartner所言,到2020年,每个智慧城市将使用约13.9亿辆联网汽车,这些汽车配备物联网传感器和其他设备。城市中的车辆定位和行为模式分析将有助于优化流量,更好的规划决策和进行更智能的广告投放。例如,对GPS汽车数据分析可以允许城市基于实时交通信息来优化交通流量。电信公司正在使用移动电话定位数据,识别和预测城市人口的位置活动趋势和生存区域。

本文,我们将讨论在数据处理管道中使用Spark Structured Streaming对Uber事件数据进行聚类分析,以检测和可视化用户位置实践。(注:本文所用数据并非Uber内部实际用户数据,文末附具体代码或者示例获取渠道)

首先,我们回顾几个结构化流媒体涉及的概念,然后探讨端到端用例:

使用MapR-ES发布/订阅事件流

MapR-ES是一个分布式发布/订阅事件流系统,让生产者和消费者能够通过Apache Kafka API以并行和容错方式实时交换事件。

流表示从生产者到消费者的连续事件序列,其中事件被定义为键值对。

Uber永久定位系统实时数据分析过程实践!

topic是一个逻辑事件流,将事件按类别区分,并将生产者与消费者分离。topic按吞吐量和可伸缩性进行分区,MapR-ES可以扩展到非常高的吞吐量级别,使用普通硬件可以轻松实现每秒传输数百万条消息。

Uber永久定位系统实时数据分析过程实践!

你可以将分区视为事件日志:将新事件附加到末尾,并为其分配一个称为偏移的顺序ID号。

Uber永久定位系统实时数据分析过程实践!
与队列一样,事件按接收顺序传递。
Uber永久定位系统实时数据分析过程实践!

但是,与队列不同,消息在读取时不会被删除,它们保留在其他消费者可用分区。消息一旦发布,就不可变且永久保留。

Uber永久定位系统实时数据分析过程实践!

读取消息时不删除消息保证了大规模读取时的高性能,满足不同消费者针对不同目的(例如具有多语言持久性的多个视图)处理相同消息的需求。

Uber永久定位系统实时数据分析过程实践!
Spark数据集,DataFrame,SQL

Spark数据集是分布在集群多个节点上类对象的分布式集合,可以使用map,flatMap,filter或Spark SQL来操纵数据集。DataFrame是Row对象的数据集,表示包含行和列的数据表。

Uber永久定位系统实时数据分析过程实践!
Spark结构化流

结构化流是一种基于Spark SQL引擎的可扩展、可容错的流处理引擎。通过Structured Streaming,你可以将发布到Kafka的数据视为无界DataFrame,并使用与批处理相同的DataFrame,Dataset和SQL API处理此数据。

Uber永久定位系统实时数据分析过程实践!

随着流数据的不断传播,Spark SQL引擎会逐步持续处理并更新最终结果。

Uber永久定位系统实时数据分析过程实践!

事件的流处理对实时ETL、过滤、转换、创建计数器、聚合、关联值、丰富其他数据源或机器学习、持久化文件或数据库以及发布到管道的不同topic非常有用。

Uber永久定位系统实时数据分析过程实践!
Spark结构化流示例代码

下面是Uber事件数据聚类分析用例的数据处理管道,用于检测位置。

Uber永久定位系统实时数据分析过程实践!
使用Kafka API将行车位置数据发布到MapR-ES topic

订阅该topic的Spark Streaming应用程序:

  • 输入Uber行车数据流;
  • 使用已部署的机器学习模型、集群ID和位置丰富行程数据;

在MapR-DB JSON中存储转换和丰富数据。

Uber永久定位系统实时数据分析过程实践!

用例数据示例

示例数据集是Uber旅行数据,传入数据是CSV格式,下面显示了一个示例,topic依次为:

日期/时间,纬度,经度,位置(base),反向时间戳

2014-08-06T05:29:00.000-07:00,40.7276,-74.0033,B02682,9223370505593280605

我们使用集群ID和位置丰富此数据,然后将其转换为以下JSON对象:

  1. {  
  2. "_id":0_922337050559328,  
  3. "dt":"2014-08-01 08:51:00",  
  4. "lat":40.6858,  
  5. "lon":-73.9923,  
  6. "base":"B02682",  
  7. "cid":0,  
  8. "clat":40.67462874550765,  
  9. "clon":-73.98667466026531  
Uber永久定位系统实时数据分析过程实践!

加载K-Means模型

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读