热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

地图开发科普篇:如何利用大数据技术处理海量GPS数据

我秀中国物联网地图服务平台目前接入的监控车辆近百万辆,每天采集GPS数据7亿多条,产生日志文件70GB,使用传统的数据处理方式非常耗时。比如,仅仅对GPS做一些简单的统计分析,程序

我秀中国物联网地图服务平台目前接入的监控车辆近百万辆,每天采集GPS数据7亿多条,产生日志文件70GB,使用传统的数据处理方式非常耗时。

比如,仅仅对GPS做一些简单的统计分析,程序就需要几个小时才能跑完一天的数据,完全达不到实时分析的要求,更无法对数据进行一些深层次的挖掘。

另外历史数据的存储也是一个亟待解决的问题,目前大多采用的方式是将日志文件进行压缩后上传到服务器上进行存储。

这种方式既原始又不可靠,一是需要作业员每天定时手动上传数据,操作不方便;二是一旦存储数据的服务器出现问题,可能会造成大量数据的丢失,造成不可挽回的损失。

随着大数据技术的成熟和普及,我们发现借助于大数据技术可以完美的解决上述问题。根据目前的需求和对大数据相关软件的掌握,我们对GPS日志分析系统做了初步的设计,架构如下图所示:

《地图开发科普篇:如何利用大数据技术处理海量GPS数据》
《地图开发科普篇:如何利用大数据技术处理海量GPS数据》

大数据日志分析主要是对开源大数据组件进行整合开发而成,分为:数据采集层、数据预处理层、数据存储层、数据处理层和数据分析层等5个层次。

01、数据采集层

数据采集层主要利用开源组件Flume对日志文件进行采集。Flume是一个分布式、高可靠、高可用的海量日志采集软件,支持定制各类的数据发送方,在收集数据的同时能够对数据进行简单的处理,然后写到各种数据接收方。

目前我们是对Flume采集的日志文件做两个操作,一是直接发送给kafka进行缓存,二是将数据进行压缩后写入HDFS供之后的分析用。

02、数据预处理

数据预处理主要对日志文件进行初步的简单处理。目前采用Storm从Kafka接收数据,然后对数据进行实时统计。

Storm是一个分布式、容错的实时计算系统。它的编程模型非常简洁,主要包括三个组件:Topology、Spout和Bolt。Topology是一个由多个计算节点构成的拓扑图,Spout和Bolt是两种结算节点,它们一起构成了一个完整的数据流向图。

《地图开发科普篇:如何利用大数据技术处理海量GPS数据》
《地图开发科普篇:如何利用大数据技术处理海量GPS数据》

03、数据存储层

数据存储层主要用于数据的存储。目前采用MongoDB存储结果数。

通过Storm处理后的数据,首先缓存到Redis中,每隔一定得时间间隔,将数据批量转存到MongoDB中。

MongoDB是一个高性能、易部署、易使用的分布式数据存储系统,介于结构化数据库和非结构化数据库之间,数据存储格式不固定,可以非常方便的进行扩充。

04、数据处理层

数据处理层主要采集一些数据挖掘算法对数据进行挖掘,或者进行实时计算。

数据挖掘主要借助于统计学方法、机器学习方法、神经网络方法等对数据进行知识挖掘,发掘潜在的价值。

比如利用线性回归算法,预测车辆的停留时间。利用k-means算法对位置临近的出租车做聚类分析,从而发现最有可能搭载乘客的热点区域。根据速度将轨迹数据进行分段,从而分析某个时间段的道路畅通状况等。

05、数据分析层

数据分析层主要是数据的展示和分析。

比如将GPS数据加载到地图上,利用抓路算法将GPS数据和地图数据进行融合,对分段的轨迹进行不同颜色的显示,可以让调度人员对当前时间段的道路通行情况一目了然,辅助车辆的调度。

《地图开发科普篇:如何利用大数据技术处理海量GPS数据》
《地图开发科普篇:如何利用大数据技术处理海量GPS数据》

我们不断提高自身数据处理能力,就是为了给您提供更快速、更精准、更丰富的数据分析功能。


推荐阅读
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 本文探讨了卷积神经网络(CNN)中感受野的概念及其与锚框(anchor box)的关系。感受野定义了特征图上每个像素点对应的输入图像区域大小,而锚框则是在每个像素中心生成的多个不同尺寸和宽高比的边界框。两者在目标检测任务中起到关键作用。 ... [详细]
  • 基于结构相似性的HOPC算法:多模态遥感影像配准方法及Matlab实现
    本文介绍了一种基于结构相似性的多模态遥感影像配准方法——HOPC算法,该算法通过相位一致性模型构建几何结构特征描述符,能够有效应对多模态影像间的非线性辐射差异。文章详细阐述了HOPC算法的原理、实验结果及其在多种遥感影像中的应用,并提供了相应的Matlab代码。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 深入剖析 DEX 赛道:从 60 大头部项目看五大趋势
    本文通过分析 60 大头部去中心化交易平台(DEX),揭示了当前 DEX 赛道的五大发展趋势,包括市场集中度、跨链协议、AMM+NFT 结合、新公链崛起以及稳定币和衍生品交易的增长潜力。 ... [详细]
author-avatar
红红的累累vdHRC_958
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有