版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大数据技术白皮书大数据技术白皮书1目录1 方案概述. 32 典型组网 . 53 技术原理 . 114 典型应用 . 325 设备性能 . 506 限制与约束. 517 附录. 5121 1方案概述方案概述1.1市场需求市场需求在交通、公安、安防等多个领域,大数据需求持续攀升,并呈现多样化趋势,需要满足海量数据的安全存储、 多种数据类型的快速检索和丰富的可定制化的业务研判需求。在设备要求上,使用集群化技术、易部署、可扩展,并可在现有架构上扩展其他行业业务,实现丰富的行业业务,持续提升竞争力,以掌握竞标主动权。1.2方案综述方案综述宇视大数据解决方案是一个贯穿整个数据处理层面 (包括数据采集、 数
2、据应用服务、数据可视化) 的整体解决方案, 这里的大数据方案仅描述数据应用服务中涉及数据存储、检索、分析的方案实现。在设备形态上体现为 db9500 和 dr9500,其中 db9500 使用 hadoop 技术构建数据存储集群,使得计算和存储一体化,dr9500 使用搜索引擎技术实现数字、文本信息等的快速检索功能。3监控客户端显示屏视频管理服务器高清卡口、电警监控ip网络交通媒体服务器视频/图片存储设备集群db9500管理节点(主用)dr9500检索服务器管理节点(主用)dr9500检索服务器管理节点(备用)db9500管理节点(备用)dr9500数据结点集群:检索运算服务db9500数据节
3、点集群:数据存储和计算在集群中, 服务器的工作类型分为 2 种, 一为管理节点, 用于管理整个集群的服务,并提供对外服务的统一管理和调度,一般部属2 台以提升高可用性;二为数据节点,用作数据存储和计算,通过数据备份机制保证数据节点无单点故障。42 2典型组网典型组网2.1智能交通智能交通组网图组网图vm客户端vmdmipsandr9500db9500tms卡口、电警相机组网业务流程组网业务流程db9500 和 dr9500 可以以单机模式工作, 也可以以集群模式工作, 承担数据存储、数据检索和业务研判功能。1、设备license管理分为2种情况进行约束。1) 添加设备时,vm根据已有db和dr
4、的license数量,对添加设备数量进行限制;52) 注册设备时,数据节点只向管理节点注册, 管理节点发现集群数量变化时重新向vm注册,vm将自身拥有的license数量和管理节点上报的集群数量对比,管理节点上报的集群数量=其拥有的license数量时,允许注册。2、服务申请1)db服务申请vm/tmsdb管理节点db数据节点f1-f1-数据访问数据访问 计算服务计算服务申请申请f2 -数据访问数据访问 计算服务计算服务的数据节点ip返回或超时返回f3 -f3 -数据访问数据访问 计算服务请求计算服务请求f4 -数据访问数据访问 计算结果计算结果返回或超时返回2) dr服务申请6vm/tmsd
5、r管理节点dr数据节点f1f1 数据访问数据访问 计算服务计算服务申请申请f2 -数据访问数据访问 计算服务计算服务的数据节点ip返回或超时返回f3f3 数据访问数据访问 计算服务请求计算服务请求f4 -数据访问数据访问 计算结果计算结果返回或超时返回3、数据的增删改查1)数据的增加过车数据和违章数据通过tms推送给db9500,db9500首选完成数据入库,由db9500将数据推送给dr9500。误差表数据的插入由定时器触发。7tmsdbdrf1-f1-过车过车/ /违章数据插入违章数据插入 f2 - f2 - 插入数据库插入数据库f3-f3-过车过车/ /违章索引建立请求违章索引建立请求f
6、4 索引建立结果或超时返回 f5 - f5 - 索引建立失败则数索引建立失败则数据插入误差表据插入误差表f6 返回插入结果f7f7 误差表数据索引建误差表数据索引建立请求立请求f8 误差表索引建立结果或超时返回 f9 - f9 - 索引建立成功则删索引建立成功则删除误差表数据除误差表数据2)数据的删除数据删除分为vm web ui 主动发起的删除操作和数据留存期到期后发起的删除操作2种。8web uivmdbdrf0-f0-设置数据删除条件设置数据删除条件f1-f1-过车过车/ /违章数据删除违章数据删除f2-f2-过车过车/ /违章索引删除请求违章索引删除请求f3 索引删除结果或超时返回f6
7、 删除结果或超时返回f5 删除结果或超时返 f4 f4 索引删除成功,删除数据库数据索引删除成功,删除数据库数据回f7f7 留存期到期数据留存期到期数据/ /误误差表数据索引删除请求差表数据索引删除请求f8 索引删除结果或超时返回 f9 f9 索引建立成功则删数据;失索引建立成功则删数据;失败记录数据到误差表败记录数据到误差表3)数据的修改修改数据失败不记录到误差表中, 当数据修改失败时, 会有数据不一致的现象存在。web uivmdbdrf0-f0-设置数据修改条件设置数据修改条件f1-f1-过车过车/ /违章数据修改违章数据修改 f2 f2 修改数据库中相应数据修改数据库中相应数据f3-f
8、3-索引修改请求索引修改请求f4 索引修改结果或超时返回f5 修改结果或超时返回f6 修改结果或超时返回94)数据的查询web uivmdbdrf0-f0-设置数据查询条件设置数据查询条件f1-f1-数据查询条件适配下发数据查询条件适配下发f2-f2-数据查询条件适配下发数据查询条件适配下发f3 -查询结果的数据库id返回或超时返回f4 -查询结果具体字段返回或超时返回f5 查询结果适配返回4、业务研判db的管理节点负责对外服务的交互,和计算分析任务的分发和汇总。web uivmdb管理节点db数据节点f0 -f0 -设置研判业务参数设置研判业务参数f1-f1-研判业务参数适配下发研判业务参数
9、适配下发f2 -返回接受成功响应或超时返回f3-f3-研判业务分析计算下研判业务分析计算下发发f4-f4- 研判业务分析计算研判业务分析计算f5 -返回分析计算结果f6-f6-研判业务页面刷或登研判业务页面刷或登陆新操作陆新操作f7-f7-研判业务状态查询条研判业务状态查询条件下发件下发f8 -查询状态结果返回或超时返回f9 研判业务结果状态刷新103 3技术原理技术原理从数据应用的角度来看,数据分层架构体现如下:交通业务公安业务金融业务搜索引检索爬虫擎业务行业应用业务行业应用业务交通计算模型公安计算数据其他计特征向量模型数据抽象数据抽象模型算索引云计算支云计算支hadoopmapreduce
10、sparstorm撑撑k数据资源多媒体视频数据图片数据音频数据网页数据数据gps人脸云存储支云存储支信号灯撑撑案件数视频音频图片网页过车gis3.1hadoophadoop的技术原理的技术原理hadoop 框架hadoop 的体系结构hadoop 框架中最核心的设计就是:hdfs 和 mapreduce,hdfs 为分布式计算存储提供了底层支持,构建于 hdfs 的 hbase 是天然的分布式数据库;mapreduce11提供了云计算框架,它的数据来源也是分布式的,可以是hdfs,也可以是hbase。使用 hadoop 框架的天然优势,用户可以少关心云实现,而聚焦具体业务。下面从分布式文件系统
11、原理(hdfs) 、分布式数据库原理(hbase) 、分布式计算框架(mapreduce) 、分布式集群管理(zookeeper) 、hadoop 的针对性优化(时空数据库)这几个方面阐述下技术原理。hdfshdfs技术原理技术原理1、hdfs读取的namenode技术原理图解1)使用hdfs提供的客户端开发库client,向远程的namenode发起rpc请求;2)会视情况返回文件的部分或者全部block列表,对于每个block,namenode都会返回有该block拷贝的datanode地址;3)客户端开发库client会选取离客户端最接近的datanode来读取block;如果客户端本身
12、就是datanode,那么将从本地直接获取数据.4)读取取完当前block的数据后,关闭与当前的datanode连接,并为读取下一个block寻找最佳的datanode;5)当读完列表的block后,且文件读取还没有结束,客户端开发库会继续向namenode获取下一批的block列表。6)读取完一个block都会进行checksum验证,如果读取datanode时出现错误,客户端会通知namenode,然后再从下一个拥有该block拷贝的datanode继续读。122、hdfs写入的技术原理图解1)用hdfs提供的客户端开发库client,向远程的namenode发起rpc请求2)nameno
13、de会检查要创建的文件是否已经存在,创建者是否有权限进行操作,成功则会为文件创建一个记录,否则会让客户端抛出异常;3)当客户端开始写入文件的时候,会将文件切分成多个packets,并在内部以数据队列data queue的形式管理这些packets, 并向namenode申请新的blocks,获取用来存储replicas的合适的datanodes列表,列表的大小根据在namenode中对replication的设置而定。4)开始以pipeline(管道)的形式将packet写入所有的replicas中。把packet以流的方式写入第一个datanode, 该datanode把该packet存储之
14、后, 再将其传递给在此pipeline中的下一个datanode,直到最后一个datanode,这种写数据的方式呈流水线的形式。5)最后一个datanode成功存储之后会返回一个ack packet, 在pipeline里传递至客户端,在客户端的开发库内部维护着ack queue,成功收到datanode返回13的ack packet后会从ack queue移除相应的packet。6)如果传输过程中, 有某个datanode出现了故障, 那么当前的pipeline会被关闭,出现故障的datanode会从当前的pipeline中移除,剩余的block会继续剩下的datanode中继续以pipel
15、ine的形式传输,同时namenode会分配一个新的datanode,保持replicas设定的数量。hbasehbase技术原理技术原理1.hbase数据模型14基本定义:基本定义:rowkey:是 byte array,是表中每条记录的“主键”,方便快速查找,rowkey的设计非常重要。column family:列族,拥有一个名称(string),包含一个或者多个相关列column:属于某一个columnfamily,familyname:columnname,每条记录可动态添加version number:类型为 long,默认值是系统时间戳,可由用户自定义value(cell):by
16、te arrayhbasehbase 表的特点:表的特点:1)大:一个表可以有数十亿行,上百万列;2)无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;3)面向列:面向列(族)的存储和权限控制,列(族)独立检索;4)稀疏:空(null)列并不占用存储空间,表可以设计的非常稀疏;5)数据多版本: 每个单元中的数据可以有多个版本, 默认情况下版本号自动分配,是单元格插入时的时间戳;6)数据类型单一:hbase 中的数据都是字符串,没有类型。7)行排序特性以下为 hbase 表形式示例举例152.hbase物理模型每个 column fam
17、ily 存储在 hdfs 上的一个单独文件中,空值不会被保存。key 和 version number在每个 column family 中均有一份;hbase 为每个值维护了多级索引,即:物理存储:1)table 中所有行都按照 row key 的字典序排列;2)table 在行的方向上分割为多个 region;3)region 按大小分割的,每个表开始只有一个 region,随着数据增多,region 不断增大,当增大到一个阀值的时候,region 就会等分会两个新的 region,之后会有越来越多的 region;4)region 是 hbase 中分布式存储和负载均衡的最小单元,不同r
18、egion 分布到不同 regionserver 上。165)region 虽然是分布式存储的最小单元, 但并不是存储的最小单元。 region由一个或者多个 store 组成,每个 store 保存一个 columns family;每个strore 又由一个 memstore 和 0 至多个 storefile 组成,storefile 包含hfile;memstore 存储在内存中,storefile 存储在 hdfs 上。mapreducemapreduce的技术原理的技术原理17上图是 mapreduce 流程图。一切都是从最上方的 user program 开始的,userprog
19、ram 链接了 mapreduce 库,实现了最基本的 map 函数和 reduce 函数。图中执行的顺序都用数字标记了。1)mapreduce 库先把 user program 的输入文件划分为 m 份(m 为用户定义),每一份通常有 16mb 到 64mb,如图左方所示分成了split04;然后使用 fork 将用户进程拷贝到集群内其它机器上。2)user program 的副本中有一个称为 master, 其余称为 worker, master 是负责调度的,为空闲 worker 分配作业(map 作业或者 reduce 作业),worker 的数量也是可以由用户指定的。3)被分配了 m
20、ap 作业的 worker,开始读取对应分片的输入数据,map 作业数量是由 m 决定的,和 split 一一对应;map 作业从输入数据中抽取出键值对,每一个键值对都作为参数传递给map函数, map函数产生的中间键值对被缓存在内存中。4)缓存的中间键值对会被定期写入本地磁盘,而且被分为r 个区,r 的大小是由用户定义的,将来每个区会对应一个reduce 作业;这些中间键值对的位置会被通报给master,master 负责将信息转发给 reduce worker。5)master 通知分配了 reduce 作业的 worker 它负责的分区在什么位置(肯定不止一个地方,每个 map 作业产生
21、的中间键值对都可能映射到所有r 个不同分区),当 reduce worker 把所有它负责的中间键值对都读过来后,先对它们进行排序,使得相同键的键值对聚集在一起。 因为不同的键可能会映射到同一个分区也就是同一个 reduce 作业(谁让分区少呢),所以排序是必须的。6)reduce worker遍历排序后的中间键值对,对于每个唯一的键,都将键与关联的值传递给 reduce 函数,reduce 函数产生的输出会添加到这个分区的输出文件中。187)当所有的map 和 reduce 作业都完成了, master 唤醒 user program,mapreduce 函数调用返回 user progra
22、m 的代码。所有执行完毕后,mapreduce 输出放在了 r 个分区的输出文件中(分别对应一个reduce 作业) 。用户通常并不需要合并这 r 个文件,而是将其作为输入交给另一个mapreduce 程序处理。 整个过程中, 输入数据是来自底层分布式文件系统 (gfs) 的,中间数据是放在本地文件系统的, 最终输出数据是写入底层分布式文件系统 (gfs) 的。而且我们要注意 map/reduce 作业和 map/reduce 函数的区别:map 作业处理一个输入数据的分片,可能需要调用多次 map 函数来处理每个输入键值对;reduce 作业处理一个分区的中间键值对,期间要对每个不同的键调用
23、一次 reduce 函数,reduce作业最终也对应一个输出文件。zookeeperzookeeper技术原理技术原理zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。zookeeper 的目的就在于此。zookeeper 中的角色主要有以下三类,如下表所示:19系统模型如图所示:zookeeper 应用在集群管理中,我们常
24、常需要让每一个机器知道集群中(或依赖的其他某一个集群)哪些机器是活着的,并且在集群机器因为宕机,网络断链等原因能够不在人工介入的情况下迅速通知到每一个机器。集群管理主要功能如下: (以 hbase举例,搜索引擎集群化也用到该技术,只不过它保护的元数据不同、节点设备不同)1.通过zookeeper集群的自动选举功能,可确保zookeeper集群高可用。2.通过zookeeper集群的自动选举功能,可确保能选出一个master节点用于元数据管理,保证管理节点高可用。3.通过zookeeper集群的分布式协同功能,可迅速感知到region20server/master节点的上下线,节点新增等, 利用
25、数据的冗余备份/自动负载均衡特性,达到数据存储访问的高可用。时空数据库原理时空数据库原理利用 hbase 的特点,合理组织数据,使得数据获取和计算都更为快捷。row keyrow key车牌车牌record id1record id1record idnrecord idn车牌车牌n n车牌车牌1 1valuevalue卡口名称卡口名称车身颜色车身颜色卡口卡口1 1白色白色白色白色车型车型大型大型大型大型车牌车牌1 1id1id1,卡口号、过,卡口号、过车时间、车身颜色、车时间、车身颜色、车型车型idm,卡口号、过车时间、车身颜色、车型车牌l-1卡口卡口1010车牌l车牌n车牌p以套牌业务为例
26、,以车牌为 rowkey的形式组建数据表,可以更快的获取到原始数据,也便于 mapreduce的源数据分割和业务数据存储。mamamared213.2集群高可靠性原理集群高可靠性原理db9500db9500数据节点高可靠性原理数据节点高可靠性原理使用数据备份机制来保证集群数据的可靠性,如下图所示,相同色块表示同一份数据在不同 regionserver 上的备份,这里的图例为2 备份示例。任意regionserver 失效之后,该 regionserver 上的数据在其他 regionserver 上仍有备份,此时这些数据被其他 regionserver 接管,整体功能仍未受影响。当异常的 re
27、gionserver 恢复后,其他 regionserver 又会将新的数据恢复到此regionserver 上,保证每一个 regionserver 数据的同步性和完整性。22db9500db9500管理节点高可靠性原理管理节点高可靠性原理使用双机软件功能实现管理节点的高可靠性, 主用 master 失效之后, 备用 master就会接管主用 master 的工作。双机软件工作原理参见双机软件相关说明。dr9500dr9500数据节点高可靠性原理数据节点高可靠性原理1)zookeeper 统一管理集群状态信息。2)索引分布在两个shard中, 每个shard包含2个solr节点, 1个是le
28、ader,1 个是 replica。3)overseer 节点用于控制 collection 状态。234)任何节点都可以接收索引更新请求并转发至相应 shard 的 leader 节点,leader 节点更新后将版本号和文档转发给对应的replica 节点。dr9500dr9500管理节点高可靠性原理管理节点高可靠性原理vm主网保活、保活、备网线直dr-1虚网网交换机虚网dr-1对外使用虚 ip 提供管理节点服务,主用、备用管理节点通过直连网线进行保活和数据同步工作。备用管理节点上若有数据节点服务,在备用节点不提供服务时,数据节点仍可提供服务,不同用于双机方案。集群管理高可靠性优化集群管理高
29、可靠性优化在规模较小时实现管理节点和数据节点合一设计。以 30 亿为例, 单机 10 亿规格计算, 标准集群配置需要的 db9500 存数据节点务器 3 台,管理节点 2 台,dr9500 数据节点服务器 3 台,管理节点 2 台。 优化后的集群配置需要的 db9500 数据节点服务器 3 台,1 台备份节点,dr9500 数据节点服务器 3 台。db9500 集群管理高可靠性优化:如下图所示,其中d 表示数据节点,m 表示24管理节点,mb 表示备份管理节点。mbdd标准集群设置dmb+d优化后的集群设置dddr9500 集群管理高可靠性优化:mbddd标准集群设置mb+d优化后的集群设置d
30、m+d25mm+dm3.3搜索引擎原理说明搜索引擎原理说明搜索引擎基本架构搜索引擎基本架构互网络联网cach网页云存储倒排与云计链接内容链接网页反作查询用户算平台搜索引擎与云计算平台搜索引擎技术来源于互联网,可抽象为爬虫、索引、检索三部分功能。影响用户体验的重点问题:1、爬虫技术1)爬虫框架26对应的从爬虫的角度对互联网网页进行划分3)抓取策略抓取策略是评价爬虫好坏的重要指标,比较常用的深度优先遍历策略、宽度优先遍27历策略、反向链接数策略、大站优先策略等等。4)行业应用在数据库检索时,也需要爬虫技术,只不过爬虫的爬取的不是网业数据,而是数据库记录,爬取策略相对简单,一般按数据库的recordid和表的顺序爬取。2、索引
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械专业液压的课程设计
- 机房上机C语言课程设计
- 机床加紧机构课程设计
- 机场规划与设计课程设计
- 广东省肇庆市高中英语 Unit 3 The Million Pound Bank NoteExplain the paper of the exercises at night(the second week)教案 新人教版必修3
- 机器仿生鱼课程设计
- 2024年合同样本:知识产权转让与许可协议
- 本科校外课程设计
- 2024年光伏扶贫项目合作协议
- 本班同学体重的研究报告
- 船舶安全培训课件
- 学考复习检测卷 高二上学期物理人教版(2019)必修第三册
- 老旧小区燃气管线切改投标方案技术标
- 高等学校教师岗前培训考试暨教师资格笔试题库【巩固】
- MOOC 循证医学-南通大学 中国大学慕课答案
- 临床分子生物学检验技术习题(附答案)
- 农村留守儿童心理健康状况调查研究
- 手术室锐器刺伤
- 中国食物成分表2018年(标准版)第6版
- 消防安全教育主题班会:森林防火与消防安全 课件
- 【00后大学生理财意识与规划探究(定量论文)11000字】
评论
0/150
提交评论