大数据与视频监控完整版.docx
- 文档编号:4086797
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:27
- 大小:46.27KB
大数据与视频监控完整版.docx
《大数据与视频监控完整版.docx》由会员分享,可在线阅读,更多相关《大数据与视频监控完整版.docx(27页珍藏版)》请在冰豆网上搜索。
大数据与视频监控完整版
Documentserialnumber【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】
大数据与视频监控
相比云计算及物联网,“大数据”发展稍晚,甚至至今让人摸不着头脑,很多人意识不到其跟安防监控有多少关联,甚至认为大数据是盲目炒作的噱头。
实际上,大数据是真正发挥大规模网络视频监控价值的关键技术,视频监控数据是标准的大数据,而通过大数据存储及分析挖掘,更能发挥海量视频的潜在价值。
需要注意的是,大数据技术主要适用于大型及超大型项目,并且与云技术融合,大数据在视频监控的应用还在探索阶段,具体应用模式有所不同,但是趋势比较明朗。
关键词
大数据的概念
大数据的关键技术
大数据的核心价值
云计算与大数据
Hadoop技术介绍
大数据与视频监控
大数据概述
19.1.1大数据的背景
大数据的背景就是“信息爆炸”,随着物联网、电子商务、视频网站、平安城市视频监控、微博、微信等应用的迅速发展,数据信息呈爆炸性增长。
据统计:
2012年,全球的电脑用户平均每天创造200多亿GB数据;
沃尔玛仅每小时处理的客户交易就超过100万次;
每天亚马逊上将产生600万笔订单;
Twitter上每天发布5千多万条消息;
Facebook上的照片有400亿张;
YouTube网站用户每分钟上传50小时时长的视频;
Google每天处理的搜索量超过30亿次;
安装有20万个高清摄像头的平安城市,每天至少产生1PB的视频数据。
这些被学术界分为结构化、非结构化以及半结构化的海量的各类数据,统称“大数据”(BigData)。
以往大数据通常用来形容一个公司创造的大量非结构化和半结构化数据,而现在提及“大数据”,通常是指解决问题的一种方法,即通过收集、整理生活及生产中方方面面的数据,并对其进行分析挖掘,进而从中获得有价值的信息,最终衍化出一种新的商业模式。
19.1.2大数据的定义
大数据是指无法在一定时间内用传统数据库软件工具对其内容进行抓取、管理和处理的数据集合,大数据技术被设计用于在成本可承受(Economically)的条件下,通过非常快速(Velocity)的采集、发现和分析,从大量化(Volume)、多类别(Variety)的数据中提取出价值(Value),大数据融合云计算是IT领域新一代的技术与架构。
如图所示。
图大数据的4V特性
第一个特征V是Volume,即大数据具有“大体量”特征,非结构化数据的爆炸性增长,使其占有总数据的80%以上,比结构化数据增速快10倍以上,数据量级从T到P、E、B,分别对应Tera(1012)、Peta(1015)、Exa(1018)、Bronto(1021)。
第二个特征V是Variety,即大数据具有“异构及多样性”特征,海量数据有不同格式,有结构化(如我们常见的传统数据,还有半结据化数据(如网页数据)、还有非结构化数据,如各类图像、声音、影视、超媒体等)。
第三个特征V是Velocity,即大数据具有“实时性”特征,数据处理及分析需要立竿见影而非事后见效。
比如,一些电商数据要尽快处理得出结论进而影响决策。
第四个特征V是Value,即大数据具有“价值性”特征,这是大数据处理的核心及目的。
如何从海量、原始的不相关信息(即价值密度较低)的数据,提炼出高价值信息,以进行趋势分析、模型判断、深入挖掘、数据共享,这也是大数据处理的关键及难点。
大数据相关技术
大数据的基本处理流程与传统数据处理流程有一定的差异,主要区别在于:
由于大数据要处理大量、非结构化的数据,所以在各个处理环节中可以采用分布式存储(DFS)、并行处理等方式进行。
大数据涉及的关键技术包括:
数据采集技术(ETL)、分布式文件系统(HDFS)、分布式数据库(HBase)、并行计算处理(MapReduce)、大数据的内容分析等。
1.基础技术
数据采集:
ETL(Extraction-Transformation-Loading数据提取、转换和加载)。
数据存取:
关系数据库和NoSQL(NotOnlySQL)即非关系数据库等。
基础架构支持:
云存储(CloudStorage)、分布式文件系统(HDFS)等。
计算结果展现:
云计算(CloudComputing)、标签云、关系图等。
2.存储技术
非结构化数据:
图片、视频、PDF、PPT等文件存储。
半结构化数据:
转换为结构化存储或按照非结构化存储。
3.分析技术
统计和分析:
排行榜、地域占比、文本分析等。
数据挖掘:
关联规则分析、分类、聚类。
模型预测:
预测模型、机器学习、建模仿真。
4.解决方案
Hadoop:
目前最主流的云计算与大数据开源平台。
19.2.1非结构化数据
探讨“大数据”概念,需要了解“结构化”及“非结构化数据”的概念,如图所示。
图不同类型数据结构示意图
结构化数据:
行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据,如、中的数据。
非结构化数据:
不方便用数据库二维逻辑表来表现的数据,包括各种格式的办公文档、文本、图片、图像及音频信息等。
所谓,就是介于结构化数据和完全无结构的数据之间的数据,HTML文档就属于半结构化数据。
1.非结构化数据特点
据调查:
企业中80%的数据都是非结构化数据,这些数据每年增长60%;
计算机的存储结构决定其处理结构化数据具有很大优势,例如关系数据库的发展;
非结构化数据进行转换后可利用计算机处理结构化数据的优势及数据库成熟技术;
如果非结构化数据无法自动转换,就需要通过扫描、识别、录入等许多人工处理工序;
迅猛增长的、从不使用的数据在企业里消耗着复杂而昂贵的一级存储的存储容量;
如何更好地保留那些在全球范围内具有潜在价值的不同类型的文件变得非常急迫。
2.非结构化数据库
非结构化数据库,字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成,用它不仅可以处理结构化数据(如数字、符号等信息)而且更适合处理非结构化数据(图像、声音、影视、超媒体等信息)。
随着网络技术的发展,特别是Internet和intranet技术的飞快发展,使得非结构化数据的数量日趋增大。
这时,主要用于管理结构化数据的关系数据库的局限性暴露地越来越明显。
因而,数据库技术相应地进入了“后关系数据库时代”,基于网络应用的非结构化数据库时代已经来临。
19.2.2NoSQL数据库
NoSQL是非关系型数据存储的广义定义,NoSQL=NotOnlySQL,意即不仅仅是SQL,NoSQL在大数据存取上具备关系型数据库无法比拟的性能优势,Google的BigTable和Amazon的Dynamo使用的就是NoSQL型数据库,它们可以处理超大量的数据。
1.易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。
数据之间无关系,这样就非常容易扩展,也无形之间在架构层面上带来了可扩展的能力。
2.大数据量、高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量背景下,同样表现优秀。
这得益于它的无关系性,数据库的结构简单。
3.灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
而在关系数据库里,增删字段是一件较麻烦的事情,如果是非常大数据量的表,则非常麻烦。
4.高可用
NoSQL在不太影响性能的情况下,就可以方便地实现高可用的架构。
19.2.3并行处理技术
大数据可以通过MapReduce这一并行处理技术来提高数据的处理速度。
MapReduce的设计初衷是通过大量廉价服务器实现大数据并行处理,对数据一致性要求不高,其突出优势是具有扩展性和可用性,特别适用于海量的结构化、半结构化及非结构化数据的混合处理。
MapReduce将传统的查询、分解及数据分析进行分布式处理,将处理任务分配到不同的处理节点,因此具有非常强的并行处理能力。
MapReduce的软件框架包括Map(映射)和Reduce(化简)两个阶段,可以进行海量数据分割、任务分解与结果汇总,从而完成处理。
19.2.4数据挖掘与分析
1.数据分析
越来越多的应用涉及到大数据,大数据最大的好处在于能够让我们从这些数据中分析出很多智能的、深入的、有价值的信息。
AnalyticVisualizations(可视化分析)
不管是数据分析专家还是普通用户,数据可视化是数据分析工具最基本的要求。
可视化可以直观地展示数据,让数据自己说话,让观众听到结果。
DataMiningAlgorithms(数据挖掘算法)
可视化是给人看的,数据挖掘是给机器看的。
集群、分割、孤立点分析还有其他的算法可以让我们深入数据内部,挖掘价值。
这些算法不仅要处理大数据的“量”,也要处理大数据的“速度”。
PredictiveAnalyticCapabilities(预测性分析能力)
数据挖掘可以让分析员更好地理解数据,而预测性分析可以让分析员根据可视化分析和数据挖掘的结果做出一些预测性的判断。
SemanticEngines(语义引擎)
我们知道由于非结构化数据的多样性带来了数据分析的新挑战,我们需要一系列的工具去解析、提取、分析数据。
语义引擎需要被设计成能够从“文档”中智能提取信息。
神经网络
神经网络是模拟人脑内部结构,在模拟推理、自动学习等方面接近人脑的自组织和并行处理的数学模型。
神经网络在数据挖掘中的优势是:
噪声数据的强承受能力,对数据分类的高准确性,以及可用各种算法进行规则提取。
2.数据挖掘
数据挖掘,是从数据当中发现趋势和模式的过程,它能有效地从大量的、不完全的、模糊的实际应用数据中,提取隐含在其中的潜在有用的信息和知识,揭示出大量数据中复杂的和隐藏的关系,为决策提供有用的参考,也有人把数据挖掘视为数据库中知识发现过程的一个基本步骤。
常用的数据挖掘方法主要有关联分析、分类分析、聚类分析、神经网络等。
关联分析
即利用关联规则进行数据挖掘。
关联分析的目的是挖掘隐藏在数据中的相互关系,比如,它能发现数据库中的顾客在一次购买活动中购买商品A及B的各种习惯、时段等关联信息。
分类分析
分类分析就是通过分析示例数据库中的数据,为每个类别做出准确地描述或建立分析模型或挖掘出分类规则,然后用这个分类规则对其他记录进行分类。
聚类分析
通过分析数据库中的记录数据,根据一定的分类规则,合理地划分记录集合,并确定每个记录所在类别。
它所采用的分类规则是由聚类分析工具决定的。
19.2.5云计算技术
云计算的核心思想是通过虚拟化技术将大量异构的服务器及网络、存储设备构建为统一的资源池,这可以为各类系统应用提供可扩展的海量存储资源及超强计算能力,并减少系统建设、升级、扩展、运维成本,提高系统资源利用率及保证高可靠性。
云计算相关技术可具体参考本书18章内容。
虚拟化技术是云计算架构的基础,虚拟化为快速实施存储及高效计算提供了保障。
虚拟化既可以将单个物理资源体(如单台服务器、操作系统、单个应用程序、一个存储设备等)虚拟成多个虚拟资源,也可以将多个物理资源(如多台服务器或存储设备)虚拟整合成一个虚拟资源池。
虚拟化分存储虚拟化、服务器虚拟化、网络虚拟化、应用虚拟化等。
如图所示。
图虚拟化技术是云计算的基础
Hadoop
19.3.1Google的启发
提起大数据,必然提到Hadoop技术,而提及Hadoop技术,必须提及Google公司相关的技术。
Google公司的使用廉价的PC组成集群,构成Google的基础设施资源。
其核心组件有3个:
1.GFS(GoogleFileSystem)
GFS是一个分布式文件系统,隐藏下层负载均衡、冗余复制等细节,对上层程序提供一个统一的文件系统API接口。
Google根据自己的需求对它进行了特别优化,具体包括:
超大文件的访问、读操作比例远超过写操作、PC极易发生故障造成节点失效补救措施等。
GFS把文件分成64MB大小的块,数据块分布在集群的节点上,使用Linux的文件系统存放,同时每块文件至少有3份以上的冗余。
中心是一个管理节点,提供文件索引工作。
2.MapReduce
Google发现大多数分布式运算可以抽象为MapReduce操作。
MapReduce的思想是“分而治之”,Map的任务是“分”,即将复杂的任务分解成若干简单的任务。
“简单的任务”有三层含义:
一是指数据或者计算规模相对于原数据大大缩小;
二是“就近计算”,即计算工作在分配到数据的节点直接计算;
三是这些小任务可以并行计算,之间没有任何依赖关系。
Map是把输入(Input)分解成中间的Key/Value对,Reduce把Key/Value合成最终输出(Output)。
这两个函数由程序员提供给系统,再把Map和Reduce操作分布在集群上运行。
3.BigTable
BigTable是一个大型的分布式数据库,这个数据库不是关系型的数据库,如同它的名字一样,就是一个巨大的表格,可以扩展到PB级别数据和上千台服务器。
19.3.2Hadoop概述
Hadoop是目前应用最广泛的开源分布式存储和计算平台之一。
它是根据Google的GFS分布式文件系统和MapReduce分布式计算技术而开发的开源平台,其设计目标是在普通的硬件平台上构建大容量、高性能、高可靠的分布式存储和分布式计算架构。
Hadoop目前已在Yahoo、Facebook、亚马逊、XX等公司取得了广泛应用。
Hadoop的分布式文件系统HDFS主要负责各个节点的数据存储,实现高效的数据读写过程。
Hadoop的MapReduce编程模型及框架,能够把应用程序分割成许多小的工作单元,并把这些单元分配到集群节点执行,在MapReduce架构下,一个准备提交的应用程序称为作业(Job),从一个作业划分出的、运行于各个计算节点的工作单元称为任务(Task)。
Hadoop最初是受到Google公司的GFS和MapReduce的启发;
Hadoop由HDFS、MapReduce、HBase、Hive和ZooKeeper等构件组成;
Hadoop是一个实现了MapReduce计算模型的开源分布式并行编程框架。
Hadoop主要有以下几个优点:
可伸缩(Scalable):
能可靠地(Reliably)存储和处理千兆字节(PB)数据。
成本低(Economical):
可以通过普通机器组成的服务器集群来存储以及处理数据。
高效率(Efficient):
通过分发数据,Hadoop可以在数据所在的节点上并行地(Parallel)处理它们,通过同时、多节点的并行处理方式,使处理速度非常快。
可靠性(Reliable):
Hadoop以计算元素和存储会失败为假设,因此维护多个工作数据副本,以确保针对失败的节点重新分布处理。
Hadoop能自动地维护数据的多份复本,并且在任务失败后能自动地重新部署(Redeploy)计算任务。
19.3.3Hadoop的基本架构
Hadoop是一个基于Java的分布式数据存储和数据计算分析的开源框架,Hadoop可处理分布在数以千计的低成本x86服务器计算节点中的大型数据。
Hadoop架构包括HDFS、MapReduce、HBase、Hive和ZooKeeper等成员,Hadoop最重要的成员是Hadoop分布式文件系统HDFS以及MapReduce计算模型。
如图所示。
Core:
一系列分布式文件系统和通用I/O的组件和接口(RPC、串行化库)。
Avro:
一个数据序列化系统,用于支持大批量数据交换的应用。
MapReduce:
用于超大型数据集的并行运算,分布式数据处理模式和执行环境。
HDFS:
可以支持千万级的大型分布式文件系统。
ZooKeeper:
一个分布式的、高可用性的协调服务,提供分布式应用程序的协调服务。
支持的功能包括配置维护、名字服务、分布式同步、组服务等。
Pig:
一种数据流语言和运行环境,运行在MapReduce和HDFS集群上,可加载数据、转换数据格式以及存储最终结果等一系列过程,从而优化MapReduce运算。
Chukwa:
一个开源的用于监控大型分布式系统的数据收集和分析系统,包含了一个强大而灵活的工具集,可用于展示、监控和分析已收集的数据。
Sqoop:
是一个用来将Hadoop和关系型数据库中的数据相互转移的工具。
Mahout:
提供一些可扩展的领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序,包括聚类、分类、推荐过滤等。
Hive:
分布式数据仓库,管理HDFS中存储的数据,并提供基于SQL的查询语言用以查询数据,可向HDFS添加数据,并允许使用类似SQL的语言进行数据查询。
Hbase:
一个分布式的、列存储数据库,用于在Hadoop中支持大型稀疏表的列存储数据环境,HBase使用HDFS作为底层存储,同时支持MapReduce计算和查询。
HadoopCommon:
在及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从开始,HDFS和MapReduce被分离为独立子项目,其余内容为HadoopCommon。
图Hadoop的基本组成(Hadoop0.20.0以前)
Hadoop与Google技术对应如表所示。
表Hadoop与Google技术对应表
Google技术
Hadoop对应技术
1
MapReduce
HadoopMapReduce
2
GFS
HDFS
3
Sawzall
Hive,Pig
4
Bigtable
HBase
5
Chubby
ZooKeeper
19.3.4HDFS
HDFS全称为HadoopDistributedFileSystem,它是Hadoop的一个子项目,基本是按照Google的GFS架构来实现的。
HDFS可以部署在普通的、廉价的硬件设备之上,具有高容错性,适合大数据集的应用,提供了对数据读写的高吞吐率。
HDFS的结构是一个主从式(Master/Slave)结构,由一个名称节点(NameNode)和若干个数据节点(DataNode)组成。
典型的部署场景是一台机器跑一个单独的NameNode节点,集群中的其他机器各跑一个DataNode实例。
如图所示。
图HDFS拓扑结构示意图
Hadoop的名称节点保存了文件系统的元数据(Metadata),用以管理文件系统的命名空间和响应客户端对文件的访问操作(如打开、关闭、重命名文件和目录)请求,同时决定数据块到DataNode节点的映射,名称节点并不存放实际的数据文件,数据节点进行数据块的创建、删除和复制等,数据文件根据设置的规则被分成若干个文件块(通常为64M或者128M大小),默认保存3个副本,分别存放在同一机架或者不同机架的数据节点上。
1.HDFS系统特点
分布式文件系统是Hadoop云计算的基础。
HDFS参照GFS(GoogleFileSystem)实现,拥有多机备份、扩展性强且经济廉价等特点,适合视频和音频之类非结构数据存储。
HDFS对用户透明,在HDFS内部,一个文件被分割为一个或多个数据块(Block),这些数据块被存储在一组DataNodes上。
HDFS尤其适合存储海量(PB级)的大文件(通常超过64M,因为HDFS中最小存储粒度为64M),能够提供高吞吐量的数据访问。
HDFS具有快速错误监测及自动恢复功能,得益于其基于“硬件故障是常态”理念;
HDFS适合存储并管理GB、TB、PB级数据,可扩展上千节点,支持千万计的文件;
HDFS适合处理非结构化数据,注重数据处理的吞吐量(latency不敏感)应用;
HDFS不适合存储小文件及大量的随机读操作应用;
HDFS的计算理念是将计算程序分布在存储目标数据的地方,而不是将数据传输到计算程序执行的地方,这样“就近计算”的好处是效率高、节省传输带宽。
2.HDFS工作原理
HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上。
HDFS的构建思路是这样的:
一次写入、多次读取是最高效的访问模式。
数据集通常由数据源生成或从数据源复制而来,接着长时间在此数据集上进行各类分析。
每次分析会涉及该数据集的大部分数据甚至全部,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要。
如图所示,NameNode节点作为主控节点,维护集群内的元数据,对外提供创建、打开、删除以及重命名文件或目录的功能。
NameNode是唯一的(即整个集群仅仅具有单一的命名空间),应用程序与之通信,然后往DataNode上存储文件或者从DataNode上读取文件。
这些操作是透明的,与常规的普通文件系统API没有区别。
对外部客户机而言,HDFS就像一个传统的分级文件系统,实际的I/O事务并不经过NameNode,当外部客户机发送请求要求创建文件时,NameNode会以块标识和该块的第一个副本的DataNodeIP地址作为响应,这个NameNode还会通知其他将要接收该块的副本的DataNode。
图HDFS工作原理示意图
3.HDFS的NameNode和DataNode
HDFS集群有两类节点,分别以管理者(NameNode)、工作者(Datanode)模式运行。
NameNode管理文件系统的命名空间,它维护着文件系统树及整棵树内所有的文件和目录。
这些信息以两个文件(命名空间镜像文件和编辑日志文件)的形式永久保存在本地磁盘上。
NameNode也记录着每个文件中各个块所在的DataNode信息,但它并不永久保存块的位置信息,因为这些信息会在系统启动时由DataNode重建。
同时NameNode也负责控制外部Client的访问。
DataNode是文件系统的工作节点,它们根据需要存储并检索数据块(受客户端或NameNode调度),响应创建、删除和复制数据块的命令,并且定期向NameNode发送所存储数据块列表的“心跳”信息。
HDFS内部的所有通信都基于标准的TCP/IP协议。
NameNode获取每个DataNode的心跳信息,NameNode据此验证块映射和文件系统元数据。
如表所示。
表NameNode与DataNode
NameNode
DataNode
1
存储元数据
存储文件内容
2
元数据保存在内存中
文件数据保存在磁盘
3
保存文件、Block、DataNode之间的映射关系
维护了BlockID到DataNode本地文件的映射关系
4.HDFS的文件读写过程
HDFS架构下文件写入时的步骤如图所示。
图文件写入HDFS的步骤
(1)Client向Namenode发起文件写入的请求;
(2)Namenode根据文件大小和文件块配置情况将它管理的DataNode节点的信息返回Client;
(3)Client将文件划分为多个块,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。
HDFS架构下文件读取时的步骤如图所示。
图文件从HDFS读出的步骤
(1)Client向NameNode发起文件读取的请求。
(2)NameNode返回存储文件的DataNode的信息。
(3)Client读取文件信息。
作为文件系统的管理员,没有NameNode,文件系统将无法使用。
如果运行NameNode服务的机器毁坏,文件系统上的所有文件将会丢失,且不知道如何根据DataNode的数据块来重建文件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 视频 监控 完整版