基于云计算和大数据的模拟车辆行车监控系统

Flink项目实战篇 基于Flink的城市交通监控平台(下) Flink项目实战篇 基于Flink的城市交通监控平台(上)Flink项目实战篇 基于Flink的城市交通监控平台(下) 阅读详情

一、 系统架构

这是基于云计算和大数据的模拟车辆行车监控系统,可模拟实现在线远程对车辆行车的信息记录以及数据处理。其中,记录信息其中包括车辆的id、经过的地点(经纬度)、时间,数据处理包括对数据的排序、错误数据的排查、通过时间以及地点在地图上获得车辆行驶的轨迹、车辆相遇次数。

系统包括数据产生模块、数据接受与处理模块、数据库模块、客户端模块。其中kafka进行数据的接收,并进行数据过滤,将过滤后的数据传递给Redis,Redis再将数据存入Hbase数据库,Spark从Hbase中获得数据,将处理后的数据再传递回Hbase,客户端从Hbase中获得数据并将其展示在前端。

逻辑架构如下:
这里写图片描述
物理架构图如下:

二、数据流程分析

1. 数据采集过程分析

数据采集过程包括Kafka数据采集、Redis数据过滤、Hbase数据入库三部分,其中包括三个实体:Kafka生产者、Kafka消费者兼Redis发布者、Redis订阅者。

数据采集
各自的作用如下:
Kafka生产者:负责从json文件中以行为单位读取数据源,通过Kafka生产者代码编写生产消息,将json读取的消息发布在topic上。

Kafka消费者兼Redis发布者:负责从topic上消费Kafka生产者生产的消息,将消息通过Redis发布订阅功能发布到一个信道,等待订阅者接受消息。

Redis订阅者:负责订阅发布者相应的信道,接受发布者的消息,将消息存入Hbase数据库。
数据过滤过程使用了Kafka streams对原始数据进行过滤,本小组采用HIGH-LEVEL STREAMS DSL进行处理。Kafka创建一个Filter流,流的源绑定filter-before topic,同时Kafka生成者将消息生产在这个topic上;流的出口绑定filter-after topic,Kafka消费者绑定这个topic消费消息。过滤器消息选择条件过滤掉不正确的经纬度数据,并将这部分数据存放在Redis filter 键里,合格的数据传送到filter-after topic上。

Redis的缓冲作用
在Redis订阅者上,由于生产者生产消息过快,如果选择一条一条的存入数据库,会出现存取数据过慢,导致生产者的消息经过规定的时间(本小组设置的时间是90秒)没有被消费,报出Timeout错误。为避免这样的问题,选择每1000条数据存入数据库一次,这样的方式优点在于每1000条数据才请求连接数据库一次。请求连接数据库是较耗时的一个步骤,频繁的请求连接数据库会拖慢程序的运行时长。在基础项时,选择将所有数据存入list,然后一次请求数据库连接,将所有数据存入数据库,请求数据库连接的时间占比很小。

出现的问题以及解决方案
1000条数据一次存入无法达到实时的记录,这是本小组项目的一个缺点,但同时,这个问题可以通过选择storm 流式框架数据处理来解决,直接在Kafka消费阶段对数据进行流式处理能达到实时效果。

2.数据查询和离线处理分析

数据查询:数据采集完成,所有数据存入Hbase数据库的‘Record’表中,行键设计为eid、placeid、time组合键,在数据查询时,需要将行键截取,获取对应的数据,与查询条件比较,返回满足条件的数据。

spark处理:spark分析过程包含三个阶段——程序源码发布到master节点、master将map程序分配给map节点进行map操作、master将reduce程序分配给reduce节点进行reduce操作。数据流向是map节点从master节点获取Hbase数据索引,进而获取数据,接着运行map程序将数据分散处理。Map程序处理完的数据流入reduce进行聚合处理,最后将reduce结果存入Hbase数据库中。
问题:在进行spark分析时,限于物理机,整个集群仅有一个master节点、一个map worker节点、一个reduce worker节点,在数据分析时出现的情况是map worker节点的工作任务量远远大于reduce worker的工作任务量。在任务启动时,集群中各个节点使用top命令查看当前节点的CPU占比,发现在整个任务中map worker 节点长时间高CPU占比工作,而reduce worker节点在map worker节点处理完成后有10秒左右的高CPU占比工作期,然后整个数据分析完成。鉴于上述的问题,考虑在主机充足的情况下,选择为map任务分配多台主机。使得任务执行量较均匀分布。

三、软件功能分析

1、完成基本搭建系统,完成过车统计功能

系统可根据输入的地点ID进行检索,显示通过该地点的车辆ID、时间、地点以及经纬度;或者根据输入的车辆ID,显示出该车辆经过的地点、经过时间以及对应地点的经纬度。
结果展示:
这里写图片描述

2.系统附加功能分析
(1)原始信息过滤

原始数据包含若干条错误记录,如经纬度不合法等,需要实时对kafka中接收到的数据进行过滤处理,将处理后的数据传递给Redis。
这里写图片描述

(2)车辆行驶轨迹重现

实现方式:我们想出了两种方法实现其轨迹重新。
A、hbase方式
建立一张新表,重新编排行键。
在hbaseTest类中完成具体操作。首先使用HBaseConf类中的getConnection()方法与HBase数据库进行连接。然后利用HBaseConf类中getTableByName()方法得到对表“Record”表的操作句柄。同时使用相同的方法得到对Trace表的操作句柄。之后,使用Table类中的getScanner()方法得到Record表中的所有数据,并记录中“result”中。因为重现轨迹的时候只需要车辆的标识信息(Eid)和车辆经过的时间(time)和经过地方的经纬度(latitude,longitude)所以我们只需要在“Trace”表中存入这些数据即可。
现在我们已经将得到的所有的“Record”表中的数据都存在了“result”中。然后将result中的所有数据扫描一遍,同时将每条记录中的“Eid,time,latitude,longitude”信息记录下来,同时将每一条记录的这些信息作为新的一条记录,以“Eid”为rowKey且以“time”为列族的第一列放在Put类的对象中,最后通过Table类的put()方法将新的记录存在“Trace”表中。这样得到的“Trace”表中的数据即会以“time”自动排序。
当所有数据被读取并被重新放入“Trace”表中后,关闭与数据库的连接,所有的信息即被重新规划好。

B、spark的MapReduce方式
展示结果:
输入要查询的车辆的ID,显示其行驶轨迹。鼠标点击地点,可显示其经纬度。

轨迹展示结果:
这里写图片描述

(3)车辆相遇次数统计

我们定义相遇为“两车之间出现在同一地点的时间间隔小于一分钟”。
首先,通过Spark从Hbase表中读取数据,自身以地点为键进行join操作,计算除自身外的车辆是否相遇;再以地点为键进行分组,同一组内的数据按照时间进行排序,遍历整个列表,找出满足小于一分钟的数据。

结果展示:
输入要查询的车辆Id,查询结果显示与之相遇过的车辆的ID以及次数。
这里写图片描述

四、实验感受及收获

在选修这门课之前,就已经对云计算与大数据产生了浓厚的兴趣,通过这学期对这个项目的完成,更加深了我对云计算与大数据的理解以及实际的应用。此次我负责的部分是hbase对数据的存储,通过这个项目我了解了nosql的特点以及运用。虽然在这个项目过程中,遇到了很多困难,但与队友们一起不厌其烦地解决了,我在这个过程中学到了很多。希望在今后的云计算与大数据的学习道路上,可以克服重重困难,加深对其的学习。

在新基建时代以“数字孪生技术”,助力智慧交通领域的发展与建设 过去三十年,我国道路交通从封闭堵塞走向四通八达,同样受惠于经济的高速发展,人民生活水平不断提升,汽车保有量每年年复合增长率接近12%,直接驱动着交通四要素:人、车、路和环境之间产生了新的诉求和新内涵。 随着各业务的精细化管理的不断提高,监控系统、收费系统、通信系统等三大机电系统得到了广泛使用,中国公路基础设施要想实现新跨越,为其注入强大的高分辨率的数字化能力就成为必然选择。逐步改变过去传统依靠经验的决策方式,培养基于数据和数据价值的科学决策将会是大势所趋。 数字孪生是推动智慧交通建设的关键技术 数字孪生的概 阅读详情

相关推荐

实时即未来,大数据项目车联网之原始数据实时ETL任务HBase调优【九】

hbase的每一次put操作写入数据,实际上是一个RPC操作,将客户端的数据传输到hbase服务器再返回结果,适合小数据量写入,当需要写入大量数据时,每一次put连接一次RPC连接,会增加连接次数,因此会增加传输时间和IO消耗。l HBase基于列簇存储数据,列簇是表的schema信息的一部分,列是基于列簇为前缀加上属性存储,因此对hbase表进行编码压缩,可以认为是对列数据的压缩。如果是,则不会再次存储数据。上一节写入数据,一条条数据put到表中,对于大量数据的写入,效率极低,因此针对此项进行优化。

Maynor的博客 825

HBase 存储船舶轨迹方案

HBase 存储船舶轨迹方案 背景:项目需求要存储三个月的船舶轨迹数据,并且能够根据时间段快速查询单艘船的轨迹数据。船舶数据4~5万,5分钟记录一次轨迹。 1、环境基础:已经安装部署完成hbase 集群环境 ,安装部署链接: https://blog.youkuaiyun.com/weixin_41352552/article/details/109851768. 2、运用 springboot 集成hbase 1、目录架构 2、pom.xml文件 <?xml version="1.0" encoding="U

ljy啊虎的博客 1937

车辆大数据

车辆大数据平台是根据公共安全车辆管理信息化需求,构建的综合性大数据实战平台。

阿里云HBase Ganos在海量实时轨迹中的应用(一)

场景需求 在移动对象轨迹监控与分析的项目中,收集了数十万的车辆信息,每个车辆会定时的上报当前位置、事件、状态等信息,每天约数亿条轨迹点,需要能够存储。且前端用户在查询时,要能快速返回目标船舶的信息。 入库需求: 轨迹数据,每日新增10亿条左右,包括时间点、经纬度坐标、对象当前的属性信息基本不涉及到数据的修改(不断的追加数据) 查询需求: 区域回放:根据...

weixin_33841503的博客 921

Web车辆监控系统网站源代码

开发环境:VS2010 SQL2008,前台界面采用ASP.NET开发,后台数据处理部分采用C#编写。地图采用google地图API2.0,程序能够编译运行。功能有最后位置、实时监控、历史轨迹、地图标注、设置围栏、指令下发、里程统计、地图搜索、报警管理、用户和组管理、报表查询等功能。由于上传空间有限,数据库及配置文件分开上传:https://download.youkuaiyun.com/download/liujj8189/13610532

道路监控视频资源

十个 视频资源 搞视频分割,背景建模的同学可下载 道路监控视频

项目篇--处理大数据量的车辆行驶记录

(kafka+redis+hbase+spark+javaweb开发) 集群搭建 一千万条消息的接收和处理,高峰期达到2万条/秒。数据源:用本地JSON文件,用socket发送文件中的数据模拟机具采集发送给云平台。数据接入与实时处理:采用kafka消息中间件接收到数据,过滤不合法的数据,存储到内存数据库Redis作为缓冲。数据存储与分析:采用Spark框架对HBase中的数据进行业务处理,结果存储...

ShaneHolmes 3608

Godot 2D游戏开发实战:用GDScript复刻10款经典小游戏(附完整源码)

本文是一份Godot 2D游戏开发实战指南,通过使用GDScript语言复刻10款经典小游戏,帮助开发者快速掌握引擎核心功能。内容涵盖从环境配置、GDScript基础到贪吃蛇、Flappy Bird、打砖块、俄罗斯方块等项目的核心逻辑与代码实现,并附有完整源码,旨在通过实践提升独立开发能力。

gold的博客 779

好程序员云计算学习路线分享软件包管理

好程序员云计算学习路线分享软件包管理,安装/查询/卸载 一、软件的类型 A. 源码包 需要编译 nginx-1.12.1.tar.gz B. 二进制包 已编译 mysql-community-common-5.7.12-1.el7.x86_64.rpm常见二进制包 系统平台 包类型 工具 在线安装(自动解决依赖关系) RedHat/Centos RPM rpm,rpmbuild yum Ubunt...

qq_35970166的博客 283

告别Arduino IDE!用VSCode搭建Arduino UNO R3开发环境(含代码补全配置)

本文详细指导如何用VSCode替代Arduino IDE搭建Arduino UNO R3开发环境,包含代码补全配置和高效开发技巧。通过安装必要插件、配置项目结构和优化工作流,可显著提升开发效率,特别适合复杂项目开发。文章还提供了常见问题解决方案和高级功能调优方法。

weixin_30698297的博客 480

Vivado固化程序与Flash型号添加实战指南

本文详细介绍了Vivado程序固化到Flash芯片的完整流程,包括基础操作、Flash型号添加方法及疑难问题排查。针对Vivado官方支持列表缺失的Flash型号,提供了手动添加配置的详细步骤和参数说明,并分享了高级技巧与安全操作建议,帮助开发者高效完成FPGA程序固化。

weixin_29291573的博客 567

浅谈人工智能下智慧交通的深入应用

什么是智慧交通? 智慧交通是融入了物联网、云计算、大数据、移动互联网等科学技术,提供实时交通下的交通信息服务,实现智慧交通的系统性、实时性、信息交流的交互性以及服务的广泛性。综合运用 Al、系统方法、交通科学等理论与工具,使得车、路、人三者相互协同,从而建立起来的具有全面感知、主动服务等特性的实时动态交通运输信息服务体系。 智慧交通主要解决了以下方面的应用需求: 1、大数据可视化分析决策平台 利用云计算、物联网和大数据技术,将交通系统中所涉及到的人、车、行车道路和行车周围的环境结合在一起,建立一个完

weixin_55551028的博客 2101

一窥Memory测试算法及自我修复机制

摘要 为了满足新一代设备的需求,Memory的大小每三年就会增加4倍。深亚微米设备包含大量面积更小、访问速度更快的Memory。针对此类设计制定自动测试策略可以减少ATE(自动测试设备)的时间和成本。 内存故障的行为与经典的“Stuck-At”故障不同。因此,Memory的故障模型(由于其阵列结构)与标准逻辑的设计也是不同的。Memory测试除了进行故障检测和定位,还可以实现用冗余单元对...

路科验证 2万+

从智能到智慧:大数据让智慧交通“跑起来”

刚刚结束的上海车展是一场“智能驾驶”的盛会。各种黑科技层出不穷, Jeep公布了生物识别技术在智能驾驶领域的应用;DS发布了驾驶人员注意力监控系统,随时监测驾驶者是否出现疲劳、面部及头部偏离前方道路、出现分心现象等三种信号…… 而在中国的另一边——贵州贵阳,一场“智慧交通”的盛会——2017年中国“云上贵州” 智慧交通大数据创新大赛也于5月初拉开帷幕。 ...

weixin_34326558的博客 402

【立创开源】太阳能板充电方案单节3.7v锂电池充电

一直对太阳能板感兴趣,老是感觉充电好麻烦,要是放在那里就可以自己充电多好,所以尝试做了一个太阳能充电板。因为这几天都是阴天,所以测试效果不太好,但是下雨天也是能充电的,但是基本只能维持电量不掉,电压差不多4.2v以上,电流只有2mA。中午出太阳的时候,隔着玻璃放在太阳下测试,电流有12mA以上。能充起一点点电。等大晴天看一看能不能达到卖家说50mA。┗( T﹏T )┛感觉达不到。这个东西只能当一个玩具(;′⌒`)。不过如果汽车上一些行车记录仪加一个这个,汽车经常在太阳下停车,可能再也不用充电了。

贾saisai的博客 1万+

【异常】Error loading ASGI app. Could not import module ‘main‘

出现或。

奶爸的编程之路,也就一周冷个三天 1857

高校/企业如何去做数据挖掘呢?

随着近年来人工智能及大数据、云计算进入爆发时期,依托三者进行的数据分析、数据挖掘服务已逐渐成为各行业进行产业升级的载体,缓慢渗透进我们的工作和生活,成为新时代升级版的智能“大案牍术”。

tipdm0526的博客 2363

SeaTunnel 实战:Apache SeaTunnel Web 安装与部署

复制引擎服务中配置文件到 Web 配置目录下面。就是上述 application.yml 文件中配置的端口号。默认是从 mvvm 下载,可能下载速度很慢,我这边安装了 Maven 并且配置了阿里云仓库,因此将脚本中的。如果环境变量有冲突需要改下环境变量的名字以及 init_sql.sh 中的环境变量的名字,可以加上前缀。初始化数据库有两种方式,一是使用官方提供的初始化脚本,二是直接运行初始化 SQL。初始化数据库的脚本,使用之前需要修改。

SmartSi 3914

人工智能主要应用的七大领域

人工智能研究的内容大致有:机器学习与知识获取、知识表示、自然语言理解、自动推理与搜索方法、智能机器人、知识处理系统、计算机视觉、自动编程等方面。人工智能未来的发展前景非常广阔。人工智能的应用主要包括:零售、医疗、交通、教育、家居、物流、安防等七大领域。 1、 零售 人工智能在零售业的应用非常广泛:客流统计、智能供应链、无人便利店、无人仓库/无人车等都是热点方向。京东自主开发的无人仓库采用大量智能物流机器人进行协调配合,通过人工智能、深度学习、图像智能识别、大数据应用等技术,让工业机...

sm137726794的博客 4万+

RestFul API 详解

RESTful API 经常也被叫做 REST API,它是基于 REST 构建的 API。RESTful API 可以让你看到 URL+Http Method 就知道这个 URL 是干什么的,让你看到了 HTTP 状态码(status code)就知道请求结果如何。

wynn的博客 7584

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

视频孪生赋能智慧交通,视频孪生在9大交通场景的典型应用展示

数字孪生升级视频孪生!智汇云舟赋能智慧交通,提供城市交通、高速公路、交通枢纽、港口码头、机场、桥梁等多个场景的数十个解决方案,用视频孪生价值助力交通强国建设!

数字孪生之视频孪生 1106

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

人工智能应用最多的七大领域解析

人工智能是一门边缘学科,属于自然科学和社会科学的交叉。涉及哲学和认知科学,数学,神经生理学,心理学,计算机科学,信息论,控制论,不定性论等。人工智能就其本质而言,是对人的思维的信息过程的模拟。 人工智能应用最多的七大领域解析 用来研究人工智能的主要物质基础以及能够实现人工智能技术平台的机器就是计算机,人工智能的发展历史是和计算机科学技术的发展史联系在一起的。除了计算机科学以外,人工智能还涉及信息论...

y6unli的博客 6662

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

大流量数据的处理方面

1.缓存 memcache redis memcached 2.索引 3.主从同步 读写分离 4.CDN HTML,CSS,图片,JS缓存文件 5.负载均衡 6.redis list队列 转载于:https://www.cnblogs.com/hanling/p/7459007.html...

weixin_30343157的博客 154

软件工程专业毕业设计选题大全 毕设指导

本文摘要了一系列基于Django、JSPM、Node.js、PHP、Python和SpringBoot框架开发的Web应用系统,涵盖多个领域:1)教育类(考研学习、在线考试、职业推荐);2)电商类(商城、二手交易、购物分析);3)管理系统(学生选课、人事管理、固定资产);4)数据分析(旅游景点、销售数据、气象预测);5)社交平台(音乐分享、动漫社区);6)公共服务(养老、医疗、法律援助)。这些系统充分发挥了各类技术栈的优势,如Django的后台处理能力、SpringBoot的微服务特性,针对特定行业需求提供

全网粉丝10W+、全栈领域优质创作者、掘金、阿里云等社区博客专家、专注于全栈领域和毕业项目实战 1375

物联网卡新型智慧城市解决方案

无论是蓬窗草舍,或是豪宅别墅,人终究要有踏实定居的场地,随后才可以坦然、理智的从业各种各样创新性活动形式。身居房间内或者走入室外,保障本身的安全性从古至今都被置于首要位置。2019年10月28日,历时4天的第十七届中国国际社会公共安全博览会(简称“安博会”)在深圳市隆重召开。据了解,这届论坛会以“大安防 大数据 大产业”为主题活动,共吸引住了全世界100好几个国家和地区的1500好几家生产商分享多...

shyABCD的博客 828

AI 浪潮来袭,国内发展航向何方?

聚焦 “7+28+N” 产业链群,支持链主企业联合人工智能企业构建工业大模型和产品设计、虚拟仿真、计算机辅助工程等平台,汇集海量工业数据,培育 “产业大脑”,促进产业链上下游企业数字融通发展,支撑生产监控、零件追踪、设备预维护、缺陷分析、智能决策分析及全流程自判断与自决策,实现全流程智能化改造。在医疗领域,目前在垂直图像算法和自然语言处理技术领域,可以基本满足医疗行业的需求,市场上有许多技术提供商,如德商云兴、人工智能细胞识别医疗诊断系统的研发,提供智能辅助诊断服务平台,如水医疗、统计和医疗数据处理等。

AI Agent方案,AI智能体开发策划,人工智能软件开发,人形机器人设计构想.大语言模型高性能推理技术解析。 2514
上一篇: Java-List接口
下一篇: Servlet学习笔记(一)
HY_Chan
博客等级 码龄10年 54粉丝 60原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值