利用大数据技术处理海量GPS数据
我秀中国物联网地图服务平台目前接入的监控车辆近百万辆,每天采集GPS数据7亿多条,产生日志文件70GB,使用传统的数据处理方式非常耗时。
比如,仅仅对GPS做一些简单的统计分析,程序就需要几个小时才能跑完一天的数据,完全达不到实时分析的要求,更无法对数据进行一些深层次的挖掘。
另外历史数据的存储也是一个亟待解决的问题,目前大多采用的方式是将日志文件进行压缩后上传到服务器上进行存储。
这种方式既原始又不可靠,一是需要作业员每天定时手动上传数据,操作不方便;二是一旦存储数据的服务器出现问题,可能会造成大量数据的丢失,造成不可挽回的损失。
随着大数据技术的成熟和普及,我们发现借助于大数据技术可以完美的解决上述问题。根据目前的需求和对大数据相关软件的掌握,我们对GPS日志分析系统做了初步的设计,架构如下图所示:

方法/步骤
大数据日志分析主要是对开源大数据组件进行整合开发而成,分为:数据采集层、数据预处理层、数据存储层、数据处理层和数据分析层等5个层次。
01数据采集层
数据采集层主要利用开源组件Flume对日志文件进行采集。Flume是一个分布式、高可靠、高可用的海量日志采集软件,支持定制各类的数据发送方,在收集数据的同时能够对数据进行简单的处理,然后写到各种数据接收方。
目前我们是对Flume采集的日志文件做两个操作,一是直接发送给kafka进行缓存,二是将数据进行压缩后写入HDFS供之后的分析用。
02数据预处理
数据预处理主要对日志文件进行初步的简单处理。目前采用Storm从Kafka接收数据,然后对数据进行实时统计。
Storm是一个分布式、容错的实时计算系统。它的编程模型非常简洁,主要包括三个组件:Topology、Spout和Bolt。Topology是一个由多个计算节点构成的拓扑图,Spout和Bolt是两种结算节点,它们一起构成了一个完整的数据流向图。
数据存储层
数据存储层主要用于数据的存储。目前采用MongoDB存储结果数。
通过Storm处理后的数据,首先缓存到Redis中,每隔一定得时间间隔,将数据批量转存到MongoDB中。
MongoDB是一个高性能、易部署、易使用的分布式数据存储系统,介于结构化数据库和非结构化数据库之间,数据存储格式不固定,可以非常方便的进行扩充。
04数据处理层
数据处理层主要采集一些数据挖掘算法对数据进行挖掘,或者进行实时计算。
数据挖掘主要借助于统计学方法、机器学习方法、神经网络方法等对数据进行知识挖掘,发掘潜在的价值。
比如利用线性回归算法,预测车辆的停留时间。利用k-means算法对位置临近的出租车做聚类分析,从而发现最有可能搭载乘客的热点区域。根据速度将轨迹数据进行分段,从而分析某个时间段的道路畅通状况等。
数据分析层
数据分析层主要是数据的展示和分析。
比如将GPS数据加载到地图上,利用抓路算法将GPS数据和地图数据进行融合,对分段的轨迹进行不同颜色的显示,可以让调度人员对当前时间段的道路通行情况一目了然,辅助车辆的调度。
我秀中国不断提高自身数据处理能力,就是为了给您提供更快速、更精准、更丰富的数据分析功能。
利用大数据技术处理海量GPS数据的更多相关文章
- 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)
原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...
- 大数据技术 - 为什么是SQL
在大数据处理以及分析中 SQL 的普及率非常高,几乎是每一个大数据工程师必须掌握的语言,甚至非数据处理岗位的人也在学习使用 SQL.今天这篇文章就聊聊 SQL 在数据分析中作用以及掌握 SQL 的必要 ...
- TOP100summit:【分享实录-WalmartLabs】利用开源大数据技术构建WMX广告效益分析平台
本篇文章内容来自2016年TOP100summitWalmartLabs实验室广告平台首席工程师.架构师粟迪夫的案例分享. 编辑:Cynthia 粟迪夫:WalmartLabs实验室广告平台首席工程师 ...
- 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载
人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的计 ...
- 玩转大数据:深入浅出大数据挖掘技术(Apriori算法、Tanagra工具、决策树)
一.本课程是怎么样的一门课程(全面介绍) 1.1.课程的背景 “大数据”作为时下最火热的IT行业的词汇,随之而来的数据仓库.数据分析.数据挖掘等等围绕大数据的商业价值的利用逐渐成为 ...
- 大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(重点)
第1章 Flume概述1.1 Flume定义1.2 Flume组成架构1.2.1 Agent1.2.2 Source1.2.3 Channel1.2.4 Sink1.2.5 Event1.3 Flum ...
- 大数据技术大合集:Hadoop家族、Cloudera系列、spark、storm【转】
大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好 的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师 ...
- 大数据技术之_11_HBase学习_01_HBase 简介+HBase 安装+HBase Shell 操作+HBase 数据结构+HBase 原理
第1章 HBase 简介1.1 什么是 HBase1.2 HBase 特点1.3 HBase 架构1.3 HBase 中的角色1.3.1 HMaster1.3.2 RegionServer1.3.3 ...
- 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...
随机推荐
- php 解决上传中文文件名时出现乱码的问题
有时候上传文件是中文的文件名会出现乱码, 可以在移动文件时使用icov('utf-8','gb2312',filename)转换 代码: <?php //header('Content-type ...
- apktool 工具
下载 https://code.google.com/p/android-apktool/ apktool_2.0.0rc2.jar 和apktool linux脚本 ln –s apktool_ ...
- python scrapy,beautifulsoup,regex,sgmparser,request,connection
In [2]: import requests In [3]: s = requests.Session() In [4]: s.headers 如果你是爬虫相关的业务?抓取的网站还各种各样, ...
- 一篇搞定vue请求和跨域
vue本身不支持发送AJAX请求,需要使用vue-resource.axios等插件实现 axios是一个基本Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,同时不再对v ...
- Tickets---hdu1260(简单dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260 题意是有n个人排队买票,第 i 个人买票所需要的时间是a[i],这个人和 i-1 或者 i+1 ...
- static关键字注意事项
/* static关键字注意事项 A:在静态方法中是没有this关键字的 如何理解呢? 静态是随着类的加载而加载,this是随着对象的创建而存在. 静态比对象先存在. B:静态方法只能访问静态的成员变 ...
- Xilinx中解决高扇出的方法
Fanout,即扇出,指模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为net delay较大,不利于时序收敛.因此,在写代码时应尽量避免高扇出的情况.但是,在某些特殊情况下, ...
- Docker 网络之端口绑定
外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射. -P 标记时 Docker 会随机映射一个 49000~49900 的端口到内部容 ...
- 启动Django服务让其他电脑可访问
1.修改 Django项目中的settings.py中的 ALLOWED_HOSTS 的值为 [*] # 准许那些地址访问,* 表示任意地址 ALLOWED_HOSTS = ['*'] # ALLOW ...
- CSS3飘带状3D菜单
在线演示 本地下载