大数据分布统一处理架构总体技术方案合集_第1页
大数据分布统一处理架构总体技术方案合集_第2页
大数据分布统一处理架构总体技术方案合集_第3页
大数据分布统一处理架构总体技术方案合集_第4页
大数据分布统一处理架构总体技术方案合集_第5页
已阅读5页,还剩262页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STYLEREF标题目录(2)总体技术方案(包括项目所依据的技术原理、主要技术与性能指标、项目拟执行的质量标准类型、质量标准名称)大数据分布统一处理模型及编程方法架构1.1主要设计思想和设计目标、设计原则设计思想:将海量数据分解到由大量ARM或X86架构计算机构成的低成本计算平台上进行实时处理,依靠分布式云计算软件进行容错,从而提升移动网络海量信令数据分析的实时性和性价比。设计目标:利用ARM或X86架构计算机,建立云计算平台,能够对流量超过48000Mbps的数据监测流进行实时处理,提供多种业务支持。系统具有可动态可伸缩性、高度容错性和响应实时性,达到较之传统方案一个数据量级的性能价格比提升。设计原则:(1)前瞻性技术与实际应用环境相结合本设计是既是先进技术应用示范,又是工程实施型设计。把握技术正确性和先进性是前提,但是前瞻性技术实施必须在资源池的实际应用环境和实际监测流量的基础上进行,必须结合资源池平台的实际情况进行研究和开发,只有与实际应用环境相结合才有实际应用价值。(2)学习借鉴国外先进技术与自主创新相结合在基于资源池的云计算平台用于超大规模数据处理方面,国内外几乎是在一个起跑线上;但在关键技术研究及既往的技术积累方面,国外一些大公司有着明显的优势。我们将积极学习借鉴国外先进的云计算技术,同时与自主创新相结合,形成功能强大、性能卓越的能够满足实际应用环境需求的云计算信令处理和分析平台。2.主要技术与性能指标2.1、分布式数据索引管理技术;随着移动互联网、物联网、云计算技术的蓬勃发展,非结构化、半结构化、结构化数据均成倍增长,非结构化数据的超大规模和增长,总数据量已经达到80~90%,比结构化数据增长快10倍到50倍。因此,如何高效的进行分布式数据管理就成为了一个重中之重。下表列出了分布式数据存储系统的技术挑战和应对措施。技术挑战应对措施数据完整性CRC校验和保证数据完整性,客户端写一个块之前会计算其对应的校验和。校验和文件和数据块存储在datanode的相同目录下。客户端读取数据块并读取其校验和文件,进行校验。校验失败则尝试其他副本。数据块副本之间的一致性简单一致性模型即一个文件一旦创建、写入、关闭之后就不需要修改了体系架构采用主从结构的体系,一个集群是由一个名字节点管理元数据的命名空间,和多个数据节点来管理数据块的存储。数据块存储将一个文件分割成一个或多个的数据块,这些数据块存储在一组数据节点中。元数据节点操作文件命名空间的文件或目录操作,如打开,关闭,重命名,等等。它同时确定块与数据节点的映射。数据节点来负责来自文件系统客户的读写请求。数据副本放置位置在数据块复制数为3的情况下,放置方式是将第一个放在本地数据节点,将第二个复制放到本地机架上的另外一个数据节点而将第三个复制放到不同机架上的数据节点。这种方式减少了机架内的写流量,提高了写的性能。机架失效的机会远小于机器实效的。这种方式没有影响数据的可靠性和可用性的保证。但是它减少了读操作的网络聚合带宽。读操作时的副本选择对一个读操作来说应该读取离它最近的数据块副本。如果在读节点的同一个机架上就有这个复制,就直接读这个,如果物理集群是跨越多个数据中心,那么本地数据中心的复制是优先于远程的复制。2.2、实时多表关联查询技术;高性能的关联查询需要根据不同的模式采用不同关联算法,在基于代价的优化方式下,一般采用hashjoin算法,它是一种用于equi-join(而anti-join就是使用NOTIN时的join)的技术。Hashjoin的主要资源消耗在于CPU(在内存中创建临时的hash表,并进行hash计算)。在绝大多数情况下,hashjoin效率比其他join方式效率更高:在Sort-MergeJoin(SMJ),两张表的数据都需要先做排序,然后做merge。因此效率相对最差;Nested-LoopJoin(NL)效率比SMJ更高。特别是当驱动表的数据量很大(集的势高)时。这样可以并行扫描内表。Hashjoin效率最高,因为只要对两张表扫描一次。Hashjoin一般用于一张小表和一张大表进行join时。Hashjoin的过程大致如下(在并行情况下):(1)

一张小表被hash在内存中。因为数据量小,所以这张小表的大多数数据已经驻入在内存中,剩下的少量数据被放置在临时表空间中;(2)每读取一条大表的记录,和内存中小表的数据比较,如果符合先做join,而不直接输出,直到整张大表数据读取完毕。如果内存足够,Join好的数据就保存在内存中。否则,就保存在临时表空间中。(3)当大表的所有数据都读取完毕,将临时表空间中的数据以其输出。如果小表的数据量足够小,那所有数据就都在内存中了,可以避免对临时表空间的读写。基于规则的优化方式下,经常采用Sort-MergeJoin(SMJ)连接和Nested-LoopJoin(NL)连接。NestedLoopJoin(嵌套循环联结)对于主表的每条记录将其与从表的每条记录在JOIN条件的字段上直接比较并筛选出符合条件的元组。被联结的表所处内层或外层的顺序对磁盘I/O开销有着非常重要的影响,而CPU开销相对来说影响较小。NestedLoop一般在两个集合都很大的情况下效率就相当差了,而Sort-Merge在这种情况下就比它要高效不少,尤其是当两个集合的JOIN字段上都有聚集索引(clusteredindex)存在时,Sort-Merge性能将达到最好。基本算法主要有两个步骤:(1)按JOIN字段进行排序(2)对两组已排序集合进行合并排序,从来源端各自取得数据列后加以比较(需要根据是否在JOIN字段有重复值做特殊的“分区”处理)有两个因素左右Sort-Merge的开销:JOIN字段是否已排序以及JOIN字段上的重复值有多少。•最好情况下(两列都已排序且至少有一列没有重复值):O(n+m)只需要对两个集合各扫描一遍。•最差情况下(两列都未排序且两列上的所有值都相同):O(n*logn+m*logm+n*m)两次排序以及一次全部元组间的笛卡尔乘积2.3基于混合式SQL的云计算数据处理编程技术;SQL解析器、执行器完成DataCube查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。SQL解析器接收从数据查询API和SHELL传来的SQL语句,同时对SQL进行词法分析、语法分析、编译、优化以及生成查询作业,接着分析所要处理数据的所在位置,根据数据位置切分查询作业形成子任务,然后将子任务发送给数据所在节点的执行器。2.4.系统需要达到的性能指标性能指标分成"功能指标"和"非功能指标"。功能指标,即软件所能提供的各种功能和用途,非功能指标,包括软件产品的各种性能参。指标项指标值可管理的数据总量可高效管理超过1万亿条记录实时索引的数据流量支持100Gbps以上量级的数据流实时索引,数据入库索引速度达到1000MB/S以上任意关键字段实时创建索引根据提供的表结构解析元数据,并根据提供的任意关键字段实时创建索引可移植性Java语言实现,具有跨平台性,一次编程,任意操作系统都可运行查询效率百亿条记录秒级响应,可支持对万亿条记录进行实时查询支持简单SQL组合查询采用与关系数据混合模式,绝大部分海量数据存放于分布式平台并进行分布式处理,少量实时性要求很高的数据存放于关系数据库,可支撑各种类型的业务。不仅支撑查询、统计、分析业务,还可支撑深度数据挖掘和商业智能分析业务负载均衡性根据机器负载自动进行负载均衡。拔掉或者增加一台节点后,仍能均匀的向各处处理节点分布数据支持并发查询支持并发查询,查询要求都能正常下发执行、且都能正常返回结果数据准确性查询条件相同情况下,每次查询结果相同稳定性系统连续运行7*24小时,无任何故障,所有周期任务均正常执行,且执行结果正确可靠性没有单点故障,任意节点宕机,系统工作正常,可以继续进行数据处理和应用查询,不会影响分布式系统运行和查询结果的准确性分布式计算能力集群能增加节点、并且能正常执行查询任务,在流量不变、资源增加的情况下,增加机器后,查询任务耗时按比例降低支持对外接口提供专用API、Web访问和WebServices接口进行对外数据交互操作监控功能提供Web界面对分布式文件进行监控,支持查看、下载索引文件和元数据文件(4)项目技术开发可行性(包括国内外相关技术的研究、开发现状,申报项目研究内容及涉及的关键技术及技术指标的描述,项目技术或工艺路线描述,项目技术实现主要面临的风险和应对措施)1、国外大数据处理平台分析1.1OracleOracle公司2010年12月将第二版OracleExadata数据库机更名为“OracleExadata数据库云服务器”、2011年10月宣布推出OracleExalytics商务智能云服务器、2012年1月发布Oracle大数据机(BigDataAppliance)。大数据技术与产品:Oracle市场定位高度集成,为客户提供对端的解决方案解决方案1、大数据机、OracleExalogic中间件云服务器、OracleExadata云服务器及OracleLytics商务智能云服务器构成一个高度集成化产品组合。2、为以上系统提供一线支持。给用户带来的价值全面集成软硬件产品,帮助客户洞察数据及挖掘数据的商业价值。赛迪评析Oracle大数据战略清晰明了,通过软硬件一体化的集成设备为客户提供应用最广泛、高度集成化的系统产品组合,为企业用户提供端到端的大数据解决方案。甲骨文大数据战略—聚焦企业级分析:具有完整的基于大数据的企业级分析体系:面向大数据的软件解决方案体系:1.2EMC2010年7月,宣布收购数据仓储技术提供商Greenplum公司;2011年5月,推出世界最大的单一文件系统;2011年12月,推出支持大数据分析的平台EMCGreenplum统一分析平台(UAP);2012年4月,发布数据科学的社交平台GreenplumChorus。大数据技术与产品:EMC市场定位充分发挥存储、管理和保护方面的优势,利用云计算分布式、开放式和集群技术处理大数据。解决方案统一的大数据分析平台UAP包括EMCGreenpium关系数据库、EMCGreenplumHDHadoop发行版和EMCGreenplumChorus。给用户带来的价值针对大数据提供分析工具、服务,及强大的扩展性和开源的生态系统。赛迪评析EMC在数据存储、管理和保护方面优势明显。此外,数据团队和分析团队可以在统一的软件平台上共享信息、协作分析,无需在不同平台间转移数据。但是,EMC在网络及软件方面的控制力有限。2、国内大数据处理平台分析大数据领域涉及数据的采集、传输、存储和分析处理等多个环节,从IT巨头大数据的战略产品发布来看,其已抢占了搜索服务、数据库、服务器、存储设备、数据挖掘等核心价值环节高地。对于国内软硬件厂商而言,则少有产品亮相。虽然部分硬件厂商相关产品推出,但在数据分析、挖掘等核心领域,几乎难觅声影。2.1武汉梦达达梦数据库管理系统(DMDBMS)是定位于联机事务处理(OLTP)和联机分析处理(OLAP)类型应用的数据库系统,遵循业界技术标准,包括:SQL语言标准、JDBC接口规范、ODBC接口标准、OLEDB和ADO规范、ADO.Net接口规范、安全等级保护标准;提供完善的应用开发接口与功能;提供易用、便利的系统管理工具。达梦嵌入式实时数据库是一个运行于主流嵌入式操作系统上的,能与通用数据库管理系统协同工作,支持嵌入式数据库之间及与后台通用数据库之间的数据复制的通用型嵌入式数据库系统。采用微内核技术、支持主流嵌入式操作系统环境、对多媒体的良好支持、提供了用户身份鉴别方式、访问控制、数据加密等安全功能,可有效防止非法终端的欺骗性接入,保证数据的正确性、完整性和私密性。达梦数据仓库建模工具DWDesigner是达梦数据仓库平台的重要组成部分,通过该工具,数据仓库用户能够快速的构建数据仓库的后台数据库。DMOLAP联机分析处理系统是一个集多维服务引擎、数据立方体设计与发布、多维查询分析、查询优化、结果展示与多维操作与一体的全面的OLAP系统。2.2南大通用GBase8a分析型数据库的主要市场是商业分析和商业智能市场。支持标准Linux内核:CentOS,Redhat,Suse等、支持基于x86-64的标准PC服务器、支持本地存储(Sata,SAS,SSDetc)、支持阵列部署(SAN,NAS)、支持SSD,Flash存储介质作为2级I/O缓存、支持标准SQL提供通用API:JDBC,ODBC。CAPI,ADO.Net。GBase8a集群产品主要市场定位为满足在10TB到PB级海量数据级别中,可提供高速查询分析,同时可实现7*24高可用性,2000至10000及以上高并发,在线平滑扩展等市场需求。GBase8m/Altibase比传统磁盘数据库快10倍的商业级高可靠数据库。面向高并发、事务密集型业务场景,满足客户对数据高速处理需求的高性能内存数据库。GBase8s安全数据库系统主要适用于涉密信息系统、信息系统安全等级保护要求中规定的三级以上信息系统、国民经济支柱行业核心信息系统,以及其他信息系统等对数据管理具有高安全需求的领域。GBaseETL工具通过图形化界面,帮助用户实现数据的抽取、转换和加载的需要,并可以整合各种异构的数据源并最终将数据以一种指定的格式流出。GBaseETL工具适用于:数据仓库的前端数据清洗,数据大集中系统中的异构数据库的定时抽取,客户数据的定期数据迁移,为容灾备份系统作数据抽取,备份等。2关键技术和风险应对举措2.1、系统可维护性维护管理是指为了保证维护质量、提高维护效率、控制维护成本而进行的维护过程管理,它要求对软件的每次“修改”均需经过申请、评估、批准、实施、验证等步骤。事实上在全部维护活动中一半以上是完善性维护。国外的统计数字表明,完善性维护占全部维护活动的50%~66%,改正性维护占17%~21%,适应性维护占18%~25%,其他维护活动只占4%左右。应该注意,维护软件文档和维护软件的可执行代码是同样重要的。针对目前大数据情况下系统的可维护性难的特点,大数据应用共性支撑平台表现为可理解性和可测试性两个方面。可理解性表现为外来读者理解软件的结构、功能、接口和内部处理过程的难易程度,具有模块化(模块结构良好,高内聚,松耦合)、详细的设计文档、结构化设计、程序内部的文档和良好的高级程序设计语言等等,都对提高可理解性有重要贡献。可测试性表现为软件结构、可用的测试工具和调试工具,以及以前设计的测试过程也都是非常重要的。2.2、系统可靠性(1)硬件故障硬件故障是常态,而不是异常。整个分布式数据存储系统将由数百或数千个存储着文件数据片断的服务器组成。每一个组成部分都会频繁地出现故障,这就意味着分布式数据存储里的一些组成部分是总是失效的,因此,故障的检测和自动快速恢复是分布式数据存储一个很核心的结构目标。(2)数据块丢失或异常数据存储节点出错时标记该数据机状态为宕机,从有效IO列表中清除,将其上所有数据块标记为不可读,同时复制该节点的数据块到其他节点。(3)启动时访问出错安全模式通过一段时间的拒绝外部访问来使得整个系统在启动后一段时间达到稳定状态。2.3、系统可移植性系统可移植性可以分为三个部分:开发语言、标准化API接口、多系统硬件支持。开发语言采用Java语言实现,具有跨平台性,一次编程,任意操作系统都可运行。标准化API接口随着移动互联网、云计算、物联网以及多网融合的快速发展,现在在市场上出现了越来越多的操作系统、开发平台和网络功能,业务应用市场也呈现爆炸式发展,因此成百上千种API(应用程序编程接口)也涌现出来。然而API数量的不断增加导致了应用开发和服务交付市场的碎片化。业内人士认为,如果没有标准化来支持大规模市场发展,开发者就很难与大量服务供应商合作,而客户和服务供应商在借助广阔的开发者社区时也会受到限制。 应对措施:(这边的应对措施是否需要进行编号?) 研发大数据应用共性支撑平台过程中,加强产品管理,严格规范产品研发步骤,对代码和文档加强备份和管理,对产品可行性分析、设计、实现、测试、交付都进行严格的控制核心电子器件、高端通用芯片及基础软件产品2022年任务实施方案建议任务名称:通用大数据云计算数据库编制单位:南京云创存储科技有限公司编制日期:二0一三年二月六日目录一、任务目标和主要内容 页智慧安全监控云平台系统总体设计云计算系统设计方案概述系统基本功能依靠系统现有各类监控终端,监控卡口数据采集系统,将各类视频、照片以及经过提取处理的卡口数据信息,通过专网,cTrans高效网络传输系统,实时将各类数据传输至信息中心。在信息中心中,数据首先经过cVideo云视频监控系统达到实时监控,然后同时存入cStor云存储系统,其中需要进一步处理的视频照片数据cProc云处理平台分析处理后也一同存入。本系统中,cProc云处理平台是搭建在cStor云存储系统上的云计算中心,该平台通过数据立方结构,实现了大规模数据的高速查询调用功能,结合数据接收、数据索引、数据检索、数据整理、数据发送等功能,在智能应用层中实现了城市监控视频信息查询、人和监控多视频源连续跟踪、实时预警、路网监控流量态势实时生成、人车异常行为自动检测等多个大规模智能应用。本系统方案通过上述过程,将系统与社会各类视频监控数据、照片数据及监控卡口数据,统一实时存储进入海量云存储系统中,通过信息中心云计算平台,对海量数据进行高效处理。依靠云计算的海量存储与强大的只能处理能力,不断积累、统计、挖掘、融合数据,既可以实现大规模实施监控数据的存储、智能分析,又可以通过长时间积累对数据进行长期的智慧挖掘与分析。为系统处理案件提供有效的帮助与证据保障。系统的基本功能和性能如下:海量历史监控数据汇总能够对千亿级的海量历史监控数据进行汇总处理。海量原始监控数据上报能够对千亿级的海量上报监控数据进行上报处理。海量原始数据实时入库、生成索引能够对流量超过10000条/m的全量原始监控数据流进行实时处理。海量数据存储、计算能够存储千亿级别的数据,并完成各种复杂业务应用计算。千亿级数据秒级查询能力高效索引算法,智能化调度任务系统,满足秒级查询速度。秒级实时业务响应高效实时数据通道,对于像实时监控、告警等实时业务,提供秒级响应时间。主要设计思想和设计目标、设计原则设计思想:将海量数据分解到由大量X86架构计算机构成的低成本云计算平台上进行实时处理,依靠分布式云计算软件进行容错,从而提升智慧监控云平台海量数据分析的实时性和性价比。设计目标:利用大量性价比高的计算机,建立云计算平台,能够对流量超过10000条/s的原始监控数据流进行实时处理,提供实时监控、报警监控、监控轨迹与回放、电子地图、报警管理、布控管理、设备管理、事件检测报警、流量统计和分析等多种业务支持。系统具有可动态可伸缩性、高度容错性和响应实时性,达到较之传统方案有一个数据量级的性能价格比提升。设计原则:(1)前瞻性技术与实际应用环境相结合本项目是既是先进技术应用示范项目,又是工程实施型项目。把握技术正确性和先进性是前提,但是前瞻性技术实施必须在云计算平台的实际应用环境和实际监控流量的基础上进行,必须结合云计算平台的实际情况进行研究和开发,只有与实际应用环境相结合才有实际应用价值。(2)学习借鉴国外先进技术与自主创新相结合在云计算平台用于超大规模数据处理方面,国内外几乎是在一个起跑线上;但在关键技术研究及既往的技术积累方面,国外一些大公司有着明显的优势。同时,智慧监控云平台所将要面对的监控数据流高达5000条/s,是一个世界级的云计算应用。我们将积极学习借鉴国外先进的云计算技术,同时与自主创新相结合,形成功能强大、性能卓越的能够满足实际应用环境需求的云计算数据处理和分析平台。智慧监控云平台的云计算解决方案在睢宁网内部,构建若干X86架构计算/存储节点,虚拟出海量存储空间、处理能力和数据管理能力。同时研制面向应用的分布式数据处理软件,满足数据汇总、数据上报、数据入库、数据查询、数据计算和数据管理等应用需求。图表SEQ图表\*ARABIC1智慧监控云平台云计算解决方案系统的主要技术特点实时性:平台在高效率并行分布式软件的支撑下,可以实时完成监控数据入库、分析和管理工作,如数据汇总、数据上报、数据入库、数据查询、数据计算和数据管理等。海量数据入库不会出现数据堆积现象,各类分析和查询工作基本都在秒级完成,具有前所未有的高效性。高可靠性:基于对云计算可靠性深厚的研究积累,彻底解决了当前分布式计算平台易出现的单点故障问题。任何一个节点出现故障,系统将自动屏蔽,而且不会出现丢失数据的现象。包括查询任务分配节点、计算任务分配节点、HDFS元数据节点、HDFS数据存储节点、MapReduce

JobTracker节点、MapReduceWorker节点、HBase管理节点、HBaseRegion节点等。可伸缩性:在不停机的情况下,增加节点,平台的处理能力自动增加;减少节点,平台的处理能力自动缩减。这样,可以做到与云计算平台的无缝对接,根据计算和存储任务动态地申请或释放资源,最大限度地提高资源利用率。高性价比:采用X86架构廉价计算机构建云计算平台,用软件容错替代硬件容错,大大节省成本。在目标性能和可靠性条件下,可比传统的小型机加商用数据库方案节省10倍左右的成本。全业务支持:采用分布式数据库模式,绝大部分海量数据存放于分布式平台并进行分布式处理,少量实时性要求很高的数据存放于关系数据库中,可支撑各种类型的业务。不仅支撑查询、统计、分析业务,还可支撑深度数据挖掘和商业智能分析业务。系统总体构架系统基本组成与构架智慧监控云平台是一个处于监控数据采集与监控数据监测应用之间的系统。从系统基本组成与构架上来看,该共享平台由7个主要部分组成:历史数据汇总处理系统,上报数据上报系统,实时数据入库系统,监控数据存储系统,监控数据查询分析应用系统,数据管理系统以及系统管理。在基础设施构架上,构建睢宁云计算平台,利用睢宁所提供的计算资源、存储资源和网络资源,作为智慧监控云平台的基础设施和支撑平台。图表SEQ图表\*ARABIC2智慧监控云平台的基本组成与构架系统功能模块描述前端设备前端设备在中心服务器的调度下进行信息采集,以RTSP的形式传输给存储/处理服务器集群,或者以SDK的形式传输给接入服务器。(前端设备包括:模拟摄像机、网络摄像机、卡口设备、第三方平台等)接入服务器整合各种前端设备,将不同厂家不同平台的前端设备通过RTSP或者SDK的方式接入本系统,以实现多种前端摄像机、已有平台的统一接入,供本平台内其他模块统一调用,并以轮询的方式监听前端设备,如有异常测产生报警信号。中心服务器平台的核心控制部分,实现了与客户端的信令交互、通过JobKeeper云调度系统来调度云集群节点处理各项任务、并实现对整个平台的统一管理和监控。a)用户管理功能:根据用户信息表,管理用户登录、用户的权限,可以管理用户信息、增删用户等。b)前端信息采集设备管理功能:根据摄像机和用户的权限,管理当前用户所能涉及的前端设备状态、节点运行状态,并进行实时的更新。c)与用户和前端设备的信息交互功能:更新前端信息,并根据客户需求进行对前端设备调度,以及对JobKeeper的任务分发。同时,进行信息数据的处理,以完成整个平台的调度工作。d)对服务器集群进行统一的调度管理,获取每台机器的运行状态。根据机器的运行状态进行自动调度和部署,负载均衡,提高机器的使用率,进而提高服务器的梳理效率。e)解决服务器集群信息处理的冗余状态,查错排错,保证系统的无人值守、自动生长的高效性。存储服务器集群使用cStor云存储系统,提供统一的存储资源池,用以存储关键数据,提供历史视频的回看以及相关数据的下载服务。同时,支持网络挂载盘符的模式,以满足整个平台中其他模块的存储需求。处理服务器集群大致可以分为接入分析、数据处理和结果分发三个子模块,主要负责对完成对接入视频的各项处理任务,诸如:内容识别、实时转码、录像存储等,再将处理好的结果发送至流媒体服务器和存储服务器。流媒体服务器以流媒体服务器的形式对外提供标准的RTSP流媒体服务,用户根据相应的流媒体RTSP地址,即可实时地获取系统处理完后的实时视频数据,以供监控和远程访问。采用虚拟IP技术,备份冗余机制,针对公网和内网不同的访问需求提供不同的码流推送。客户端支持Windows、Linux、iOS、Android等主流操作系统,提供B/S和C/S架构客户端,控制视频解码上墙等,实现与用户的直接交互。1.2.3系统总体功能智慧监控云平台需要提供的7大主要功能描述如下。(1)历史数据汇总处理系统历史数据汇总处理主要负责把睢宁县规划的分散的数据中心的历史数据,进行读取解析处理,并将处理后的历史数据汇入一个统一的数据中心。在内部处理模块上,历史数据汇总系统主要包括三个模块:读取模块、解析模块和汇总模块。读取模块主要负责各个数据中心历史数据的读取处理,解析模块主要负责把读取到的历史数据解析成合理的数据格式,而汇总模块主要负责把解析好的历史数据上传到统一的数据中心。在系统构架上,为了满足规划的多个分散的数据中心处理需要,需要在每一个数据中心处安装一个数据汇总程序。(2)上报数据上报处理信系统上报数据上报处理负责把县数据中心的数据,按照一定的需求(按时间段或一定的数据量),上报给省市厅数据中心。在内部处理模块上,上报数据上报系统主要包括三个模块:读取模块、解析模块和上报模块。读取模块主要负责县数据中心需要上报数据的读取处理,解析模块主要负责把读取到的数据解析成合理的数据格式,而上报模块主要负责把解析好的数据上传到的省市厅数据中心。在系统构架上,为了满足县数据中心处理需要,需要在县数据中心处安装一个数据上报程序。而省市厅数据中心需要提供数据上报的接口。(3)实时数据入库系统实时数据入库系统主要负责全县每个卡口产生的数据实时入库。在内部处理模块上,实时数据入库系统主要包括三个模块:接受模块、解析模块和数据入库模块。接受模块主要负责接收每个卡口产生的数据流,解析模块主要负责把接受到的数据流解析成合理的数据格式,而数据入库模块负责把解析好的数据加入到县数据中心。在系统架构上,为了使每个卡口的数据能实时入库县数据中心,需要在每一个负责接受卡口数据的工控机上安装一个实时数据入库系统。(4)监控数据存储系统原始监控数据,将全部存储在智慧监控云平台的云存储资源中。资源池提供两种存储资源:一种是结构化数据存储资源,用于存储少量的接口中间数据;另一种是分布式文件系统,用于存储海量的非结构化数据。为了满足和适应数据量、数据特征和查询处理的不同需求,将采用一种混搭式的数据存储方案。对容量巨大、常规数据库难以处理的数据,如监控数据,将主要存储在基于HDFS的分布式文件系统中;这些数据将通过HDFS接口进行访问和计算处理。而对于部分数据量不大、且查询响应性能要求很高的数据,如用于报警比对的中间数据,将被存放在关系数据库中。关系数据库将采用SybaseASE版本。这些数据将通过结构化数据存储访问接口(如JDBC)进行访问。在存储构架上,若以存储2年的原始监控数据、报警信息数据和针对快速查询建立的索引数据,在5000条/s的监控数据流量下,将大约需要512TB的存储容量,按照每个存储节点16TB的存储容量,加上少量的冗余节点,将需要32个存储节点。(5)监控数据查询分析应用系统监控数据查询分析应用主要提供包括实时监控、报警监控、监控轨迹与回放、电子地图、报警管理、布控管理、设备管理、事件检测报警、流量统计和分析等功能。监控轨迹查询处理时,由于监控数据量巨大,难以存储在常规的关系数据库中,而如果直接存储在HDFS或HBase中又难以保证查询效率。为此,需要考虑对监控数据进行索引处理,并将索引数据存储在HDFS或Hbase中。为了建立监控数据索引,需要在监控数据传送到云存储系统中时,进行实时的索引处理。但由于监控数据流量巨大,需要调度使用多台服务器节点进行并行处理。此外,用户从客户端发起以上各种数据查询分析任务时,也会产生大量并发的查询任务。以上各种查询分析计算任务的处理将需要考虑在计算集群上进行并行化任务调度和负载均衡处理。这些并行计算任务及负载均衡处理将使用Zookeeper基于计算集群完成统一的控制和实现。在系统构架上,以上查询分析计算任务将需要使用一个大规模数据并行计算集群。在编程实现上,存储在数据库中的数据将使用常规的数据库查询语言实现;对存储在分布式文件系统中的监控数据,针对不同的处理要求,在数据量极大而处理实时性要求不是特别高的情况下,为了方便对海量数据的并行处理,将采用MapReduce编程方式实现;而对于那些实时性要求很高的查询分析计算,由于MapReduce启动作业需要较长的时间开销,将不适合采用MapReduce编程实现,而需要用非MapReduce编程方式实现。(6)数据管理系统在实际使用中,可能用户会对某一时间段或者类型的数据特别关心,就可以通过数据管理系统查询并导出这部分数据以供使用。包括数据查询和数据导出两大部分。数据查询让用户以自定义的条件查询出数据,而数据导出就是将这些数据以合理的格式导出到数据中心以外。(7)系统管理系统管理主要包括智慧监控云平台的配置管理、系统安全管理、系统用户管理,以及数据备份、系统故障监测复等管理维护功能。配置管理是其中最主要的部分,是系统各个模块正常运行的基础。系统应能够对网络地址、设备地址等进行配置;能够对用户做权限管理,以防止数据外泄;并能及时有效的对数据进行备份和故障检测等工作,防止数据的意外丢失。系统应支持树图、数据表格、网络拓扑图形式展示配置数据。系统基本功能与处理方案监控数据入库功能与处理方案监控数据入库系统总架构如图:图表3智慧监控云平台入库架构 智慧监控云平台通过实时数据入库系统接入采集层的监控数据,数据分配进入负载均衡机,负载均衡机根据集群各节点负载情况,动态分配监控数据到各存储处理机,进行报警检测、建立索引等处理,同时将监控数据存入分步式存储系统。负载均衡机功能监控所集群机器负载情况,动态分配监控数据。监控所有集群机器,如果发现问题,那么就把分配给这台机器的监控数据重新分配到其他机器,去除单点故障,提高系统可靠性。负载均衡机采用Paxos算法解决一致性问题,集群在某一时刻只有一个Master负责均衡能力,当Master宕机后,其他节点重新选举Master。保证负载均衡机不会存在单点问题,集群机器一致性。实时业务对于实时性要求高的业务应用,如:实时监控、实时报警,走实时专道。数据存储功能与处理方案数据存储处理总架如图:图表4数据存储处理架构数据存储系统提供如下功能:监控数据处理:接收来自数据汇总和数据入库系统的监控数据,索引模块实时生成索引,以提高查询速度。生成的索引存储到HDFS中,以供查询监控数据使用。专题业务分析,通过MapReduce并行计算,同期提取业务数据,将结果分存两路,一路存入Hbase或日志详单存储,一路存入关系型数据库。报警数据处理智慧监控云平台对接收到的实时监控数据进行计算,以判断这辆车有没有符合报警条件。如果符合,会对报警信息入库,并同时通过对外实时报警的接口,将报警信息迅速展示到用户界面上。查询分析功能与处理方案监控数据查询构架如图:图表5监控数据接入云平台当客户发起请求后,客户端把请求发向查询接口服务器,查询接口服务器解析查询请求,后向Master任务调度机发送查询任务执行命令;Master回应执行命令节点信息,查询服务器根据节点信息将查询命令发向查询计算模块,进行具体查询操作,将查询结果返回给客户端,呈现给用户。系统互联与管理组网方案组网方案如图:图表6组网方案网络管理服务器间网络安全检查系统自管理通过启用网络安全检查进程(netinspect),定期检查整个系统的网络状况,并上报各服务模块网络流量信息,在终端形成网络拓扑图,实时在界面呈现各节点网络状态,管理员也能及时了解,各服务模块的网络流量机承载的负荷。若出现网络故障,netinspect进程实时上报故障情况,在网络拓扑图上以报警方式提示,或以短信的方式提示,便于管理员及时发现问题,并恢复网络故障,确保系统在安全的网络环境下运行。服务模块进程监控管理系统自管理通过启用服务模块运行状态检查进程(proinspect),定期检查整个系统的服务模块进程运行状况,并上报各服务模块进程的运行状态信息,在终端将运行的进程的状态以表格形式显示,定时更新进程的运行状态信息。通过它管理员也能及时了解,各服务模块的进程运行负荷。若在固定的时间内没有更新,视为进程运行故障,启动主机代理自动恢复故障进程,保障各服务模块进程持续稳定的运行的状态。系统性能监控管理系统自管理通过启用服务模块性能检查进程(serverinspect),定期检查整个系统的各服务器性能指标,包括CPU开销、内存占用、IO峰值、网络流量、连接数等。并上报各服务性能指标,在终端形成拓扑图,实时在界面呈现各节点服务器性能状态,管理员也能及时了解,各服务节点处理性能及资源开销。若性能持续高负荷,拓扑图上以报警方式提示,或以短信的方式提示,便于管理员及时发现问题,查找问题的来源或重新评估服务器配置情况,为系统稳定运行提供一个确实可靠的标准。系统日志分析处理系统各服务模块在运行期间写日志文件,将进程的模块编号、服务器的IP、出错页码等日志的状态(错误、告警、提示)等级别的信息保存磁盘文件,供工程师来分析系统运行状态。同时日志分析进程(loganalyse)分析日志文件,将重要的日志信息,进行对比、分析并汇总后,生产统一格式的日志信息,提取出来,写入的数据库表中,终端管理通过查询界面来来显示,能及时了解到系统的运行的状态。系统运行状态及报警处理系统运行报警分为以下几种:服务器运行状态报警服务器网络状态报警服务模块进程报警日志模块状态报警系统安全网络安全为保障整个系统稳定运行,首先要保障系统在网络方面是安全的。从硬件、软件方面做相应的安全措施。硬件:所有的网络设备都要1+1冗余配置,涉及以下网络硬件设备冗余配置以太网100M/1000M网卡以太网网络交换设备光纤网络接口FC/HBASAN光纤网络交换机软件:在整个系统上部署防火墙软件、及自产的安全管理管理软件模块来保障系统平稳运行。数据文件安全性见集群可靠性章节。系统可靠性与扩展性系统可靠性HDFS可靠性概述:HDFS包括元数据节点(Namenode)和数据节点(Datanode),Namenode是一个中心服务器,负责管理文件系统的Namespace和客户端对文件的访问。,Datanode在集群中一般是一个节点一个,Datanode是文件系统中真正存储数据的地方。DataNode所在机器挂了怎么办?HDFS(HadoopDistributedFileSystem)默认的最基本的存储单位是64M的数据块(block)。一个文件对应的所有BLOCK全部按照一定的部署策略存在于DataNode上,文件的所有block为了容错都会被复制(一般为3份),每个文件的block大小和replication因子都是可配置的。Datanode每3分钟向Namenode发送心跳,如果10分钟datanode没有向Namenode发送心跳,则Namenode认为该Datanode已经dead,Namenode将取出该Datanode上对应的block,对其进行复制。Namenode挂了怎么办?Namenode主控服务器,为了避免主节点失效而影响整个系统正常工作,我们采用基于HDFS的改进方案Avatar,同时可开启两个Namenode,主Namenode和secondNamenode,实际工作的只有主Namenode。主Namenode将所有关于文件和目录的操作记录都会写入日志,并定时序列化到本地做镜像,并且保存到本地的NFS服务器,同时secondNamenode读取主Namenode所在NFS服务器的日志并对镜像日志做CheckPoint。故障后,secondNamenode升级为Namenode,通过镜像数据和文件日志迅速恢复系统。数据服务器可通过分布式协同服务机制得知关于主控服务器的更迭情况,然后向新的主控注册并继续发送心跳。HBase可靠性概述:HBase系统由HBase集群和ZooKeeper集群组成。HBase的可靠性由其自身的ZooKeeper机制保证。HBase包括Hregion服务器群和Master主服务器构成。Master负责管理Hregion。物理上,一张表是被拆成多个块,一张完整的表格是保存在多个Hregion上面的。master挂掉怎么办?由于master只维护表和region的元数据,因此master下线短时间内对整个hbase集群没有影响,master保存的信息全是可以冗余信息(都可以从系统其它地方收集到或者计算出来),因此,启动HBase时可以再启动一个备用的master,实际工作的只有主master,当主master所在节点宕机,会自动切换到备用master所在节点。Hregionserver挂掉怎么办?物理上,表格分为多个Region一张表是被拆成多个块,一张完整的表格是保存在多个Hregionserver上面的。并且分布在多台Hregionserver中,物理上所有数据存储在Hadoop的HDFS上,由一些子表服务器来提供数据服务,提供服务时,子表先查HMemcache,如果没有,再查HDFS上的HStore,由HDFS来保证数据的可靠性。如果丢失Region的数据所在节点的datanode宕机,HDFS会自动映射到其他节点,从而保证Region数据的可靠性。ZooKeeper挂掉怎么办?Zookeeper分为2个部分:服务器端和客户端。启动Zookeeper服务器集群环境后,多个Zookeeper服务器在工作前会选举出一个Leader,在接下来的工作中这个被选举出来的Leader死了,而剩下的Zookeeper服务器会知道这个Leader死掉了,在活着的Zookeeper集群中会继续选出一个Leader,选举出leader的目的是为了可以在分布式的环境中保证数据的一致性。MapReduce可靠性概述:MapReduce整体上可以分为这么几条执行的线索,JobTracker与JobTracker是一个master服务,软件启动之后JobTracker接收job,负责调度job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。TaskTracker是运行于多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker都需要运行在HDFS的DataNode上,JobTracker0挂掉怎么办?在系统启动时同时启动备份JobTracker1节点,当JobTracker0节点宕机时,ZooKeeper会在其上启动JobTracker进程替代JobTracker0节点,虚拟IP会指向此节点,TaskTracker会注册到此节点上,未完成的MapReduce作业会被ZooKeeper调度到此节点上重新执行。TaskTracker挂掉怎么办?JobTracker是一个master服务,软件启动之后JobTracker接收job,负责调度job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。并且将其负责的task分配给其他TaskTracker上。系统扩展性已有的Hadoop集群规模Hadoop是一个相当有弹性和扩展性的平台,它既可以在成千上万的机器上跑,也可以在很小规模上运行。目前最大的Hadoop集群有四千台机器。Hadoop扩展优势:与其它分布式系统相比,使用Hadoop的好处在于它的水平的可扩展性,在少量结点上,用Hadoop处理有限的数据时,不能展示Hadoop的性能,因为开始Hadoop程序相关的代价比较高,其它并行/分布程序方式,比如MPI(MessagePassingInterface)可能在2台,4台或许10多台计算机上有更好的性能,尽管在少量机器上协同工作在这种系统上也许会取得更好的性能,但这种为性能所要付出的努力是非线性的增长。用其它分布式框架所写的程序在从十台机器的级别到成百上千台机器需要大量的重构工作,这也许要程序重写几次,并且其它框的基础元素会限制应用的规模大小。但是特别设计的Hadoop有着水平的可扩展性,一个Hadoop程序写完后,在10个结点上运行,如果迁徙到更大的集群上运行,几乎不需要做什么工作,Hadoop平台会管理数据和硬件资源并提供与可用资源成比例的可靠性能。Hadoop扩展方法:HBase集群具备线性扩展功能,只需要将配置好的regionserver节点加入到集群中。MapReduce集群具备线性扩展功能,只需要将配置好的TaskTracker节点加入到集群中,JobTracker节点就会将Map或Reduce任务分配给此节点处理。HDFS具备线性扩展功能,只需要将配置好的DataNode节点加入到集群中,并且在集群空闲时执行balancer工具以平衡集群中DataNode的数据块负载。系统设计性能监控数据流量处理能力监控数据集群完全采用分布式实现,支持线性扩展,每节点采用低端X86PCServer处理500条/s流量。对于全县总量5000条/s的实时入库数据和大量的历史数据来说,需要24台处理机。以下是各部分处理能力统计:监控数据存储查询服务器配置:8核CPU×2,主频2.3GHz,内存32G,硬盘8×2TSATA处理能力:折合监控数据入库流量500条/s/台应用分析服务器配置:8核CPU×2,主频2.3GHz,内存16G,硬盘2×300GSAS处理能力:折合处理并发访问量500次/s/台数据存储能力原始监控数据存储采用云存储平台,分布式文件系统存储服务。性能指标:存储量指标单系统应支持PB级存储容量。吞吐量指标吞吐量是指在没有帧丢失的情况下,设备能够接受的最大速率。吞吐量根据应用系统读写方式和应用系统读取存储内容大小分成四个指标。分布式文件存储系统按照32个节点并发500个用户计算,单节点8块2T大小的硬盘情况下,每个节点指标具体内容如下表所示:表8分布式文件存储系统吞吐量指标编号读写方式存储内容大小平均吞吐量指标(MBps)1100%读1GB602100%写1GB303100%读100KB304100%写100KB15图表7分布式文件存储系统吞吐量指标系统响应时间指标千兆网络环境下,局域网客户端从分布式文件存储系统中读取4096字节存储内容的响应时间应不高于50ms。监控数据存储采用HDFS性能指标,如下:数据读取性能:40~80MB/s·节点;数据规模:10PB规模;数据负载均衡时间:可依据流量配置而确定;集群重新启动时间(10PB规模):分钟级别;查询分析计算性能对任何实时分析操作的反应时间小于10秒;查询、统计操作的首次响应时延小于1秒;并发操作终端数大于30个;基于监控数据的统计,记录5000万条以内,30秒可以统计完成。定制开发方案相对于已经完成的传统方案,云计算方案还需要在以下方面进行特定开发。(1)历史数据汇入处理平台定制开发历史数据入库系统需要使用与计算存储集群分立的专用机器(可安装在各县县现有的数据服务器上)。由于数据汇入处理不需要存储任何数据,仅仅需要读取、解析和入库数据。因此,数据汇入时对服务器的要求比较简单,不需要考虑和使用诸如Hadoop的大规模数据并行计算和存储系统,只需要一般的单一的服务器即可。(2)上报数据上报处理平台定制开发上报数据上报系统需要使用与计算存储集群分立的专用机器(可安装在县数据中心现有的数据服务器上)。由于数据上报处理不需要存储任何数据,仅仅需要读取、解析和上报数据。因此,数据上报时对服务器的使用比较简单,不需要考虑和使用诸如Hadoop的大规模数据并行计算和存储系统,只需要一般的单一的服务器即可。但是由于上报的数据量比较大,而上报时间又不会很长,所以对服务器的性能有一定要求。(3)监控数据实时入库并创建索引程序定制开发监控数据存储在Hadoop系统的HDFS中,但由于巨大的监控数据流量,每秒钟将有大量的监控数据产生,为了提供及时的数据查询,这些数据文件必须得到及时的索引创建处理,否则将造成大量的监控数据积压。因此,索引创建程序需要有较高的实时处理能力,以便能在毫秒级时间内保证处理完大量的一秒钟的监控数据。由于MapReduce计算任务需要较长的作业初始化时间,监控数据索引创建程序将难以用MapReduce程序实现,而需要基于HDFS、利用HDFS编程接口编写和定制较为复杂的非MapReduce程序,该程序不能依赖任何MapReduce的编程构架和接口,而需要自行编写程序完成全部的数据读出、解析处理、复杂的索引计算、以及索引数据的输出(输出到HDFS或者Hbase)处理过程。(4)查询分析接口开发智慧监控云平台会提供以下的应用接口:实时监控、报警监控、监控轨迹查询与回放、电子地图、报警管理、布控管理、设备管理、事件检测报警、流量统计和分析、系统管理等。这些应用接口都需要根据实际的应用需求再进行合理的改进过程。(5)查询分析软件定制开发(可选)查询分析软件将设计为基于Web的应用程序,包括客户端查询用户界面以及服务器端查询服务程序。客户端查询用户界面可基于通用的浏览器实现,也可设计为独立(standalone)的客户端软件。具体的客户端界面将需要根据不同的查询功能需求设计实现不同的查询界面。查询服务软件将基于ApacheWeb服务器设计实现。需要特别考虑的是,大量并发的用户查询任务将需要设计实现查询任务分发时的负载均衡处理。(6)并行处理任务的负载均衡调度和单节点失效恢复机制的定制方案前述的监控数据入库、建立索引、数据汇总和数据上报、数据查询等处理中需要考虑的一个共性的重要问题是,为了对大量数据进行并行化的处理、或者大量用户同时发出了很多查询请求时,需要考虑并行计算任务的分发调度和负载均衡,尤其是负责分发调度的节点可能出现单节点失效而导致系统无法正常工作。为此,将基于Zookeeper设计实现一个可防止单节点失效的并行计算任务分发调度控制机制和程序框架。该框架中,Zookeeper将使用3台并行计算任务调度服务器,并有Zookeeper负责选择和确定一个主服务器进行工作,但当主服务器失效时,Zookeeper将能够自动感知并选择另一个服务器作为主服务器工作,以此完成单节点失效的恢复处理。进而,通过Zookeeper还可以控制和均衡调度使用大量的计算节点,从而完成并行计算任务分发调服时的负载均衡。(7)Hadoop计算与存储集群的可靠性设计和功能扩展Hadoop作为一个开源的面向大规模数据并行计算的编程框架和平台,其可靠性和性能方面还存在不少需要改进的地方。比如,Hadoop集群的Master服务器虽然开用了一个备份Master服务器,但当主Master服务器失效时,备份Master服务器并不能自动完成失效恢复和切换处理。这就无法满足智慧监控的实时性处理需求。为此,我们需要对Hadoop进行改进,设计实现一个能自动完成Master服务器失效处理和切换的定制Hadoop系统,以便为智慧监控云平台提供一个高可靠性的大规模数据并行计算和存储平台。系统设计实施与关键技术方法云处理子系统设计实施与关键技术方法系统软硬件平台系统软硬件结构如图:图表8系统软硬件结构 系统的物理硬件采用低端的x86PC服务器,操作系统采用RedHatLinux。数据处理流程数据汇总上报处理流程如图:图表9数据汇总上报处理流程实时数据入库流程如图:图表10实时数据入库流程数据存储子系统海量数据分布式数据存储构架云计算是一种超级的计算模式,可以把网络中的计算机虚拟为一个资源池,将所有的计算资源集中起来,并用特定软件实现自动管理,使得各种计算资源可以协同工作,这就使得处理数量巨大的数据成为了可能。基于云计算的海量数据存储模型,是依据云计算的核心计算模式MapReduce,并依托实现了MapReduce计算模式的开源分布式并行编程框架Hadoop,将存储模型和云计算结合在一起,实现海量数据的分布式存储。MapReduce是云计算的核心计算模式,是一种分布式运算技术,也是简化的分布式编程模式,用于解决问题的程序开发模型,也是开发人员拆解问题的方法。MapReduce模式的主要思想是将自动分割要执行的问题,拆解成Map(映射)和Reduce(化简)的方式。在数据被分割后通过Map函数的程序将数据映射成不同的区块,分配给计算机集群处理达到分布式运算的效果,在通过Reduce函数的程序将结果汇整,从而输出开发者需要的结果。MapReduce借鉴了函数式程序设计语言的设计思想,其软件实现是指定一个Map函数,把键值对(key/value)映射成新的键值对(key/value),形成一系列中间结果形式的key/value对,然后把它们传给Reduce(规约)函数,把具有相同中间形式key的value合并在一起。Map和Reduce函数具有一定的关联性。MapReduce流程如图所示:图表11分布式计算流程Hadoop是一个实现了MapReduce计算模型的开源分布式并行编程框架,程序员可以借助Hadoop编写程序,将所编写的程序运行于计算机集群上,从而实现对海量数据的处理。此外,Hadoop还提供一个分布式文件系统(HDFS)及分布式数据库(HBase)用来将数据存储或部署到各个计算节点上。借助Hadoop框架及云计算核心技术MapReduce来实现数据的计算和存储,并且将HDFS分布式文件系统和HBase分布式数据库很好的融入到云计算框架中,从而实现云计算的分布式、并行计算和存储,并且得以实现很好的处理大规模数据的能力。综合MapReduce和HDFS来看Hadoop的结构:图表12Hadoop结构在Hadoop的系统中,会有一台Master,主要负责Namenode的工作以及JobTracker的工作。JobTracker的主要职责就是启动、跟踪和调度各个Slave的任务执行。还会有多台Slave,每一台Slave通常具有DataNode的功能并负责TaskTracker的工作。TaskTracker根据应用要求来结合本地数据执行Map任务以及Reduce任务。主服务控制集群相当于控制器部分,主要负责接收应用请求并且根据请求类型进行应答。存储节点集群相当于存储器部分,是由庞大的磁盘阵列系统或是具有海量数据存储能力的集群系统,主要功能是处理数据资源的存取。HDFS和Hbase用来将数据存储或部署到各个计算节点上。Hadoop中有一个作为主控的Master,用于调度和管理其它的计算机(将其称之为TaskTracker),Master可以运行于集群中任一台计算机上。TaskTracker负责执行任务,必须运行于DataNode上,DataNode既是数据存储节点,也是计算节点。Master将Map任务和Reduce任务分发给空闲的TaskTracker,让这些任务并行运行,并负责监控任务的运行情况。如果其中任意一个TaskTracker出故障了,Master会将其负责的任务转交给另一个空闲的TaskTracker重新运行。用户不直接通过Hadoop架构读取及HDFS和Hbase存取数据,从而避免了大量读取操作可能造成的系统拥塞。用户从Hadoop架构传给主服务控制集群的信息后,直接和存储节点进行交互进行读取操作。适应应用需求的混合存储策略混合存储策略可以简述为HDFS分布式文件系统用来存储海量数据,可以根据存储的数据类型建立索引,HBase也可用来存储海量数据,其由查询条件建立索引表,Database对小型数据的存储处理。分布式文件系统HDFS是一个开源云计算平台Hadoop框架的底层实现部分,适合运行在通用硬件上的分布式文件系统,具有高容错性,能提高吞吐量的数据访问,非常适合于大规模数据集上的应用。MapReduce在HDFS的基础上实现的并行框架,为用户提供容易使用的并行编程模式,MapReduce计算包括两个阶段,Map(映射)阶段和Reduce(规范)阶段。首先,Map函数把一组(Key,Value)输入,映射为一组中间结果(Key,Value),然后通过Reduce函数把具有相同Key值的中间结果,进行合并化简。MapReduce将计算作业分成许多小的单元,同时数据也会被HDFS分为多个Block,并且每个数据块被复制多份,保证系统的可靠性,HDFS按照一定的规则将数据块放置在集群中的不同机器上,以便MapReduce在数据宿主机器上进行计算。HBase类似Bigtable的分布式数据库,是一个稀疏的,长期存储的,多维的,排序的映射表.这张表的索引是行关键字,列关键字和时间戳。所有数据库的更新都是一个时间戳标记,每个更新都是一个新的版本,而HBase会保留一定数量的版本,这个值是可以设定的。客户端可以获取距离某个时间最近的版本,或者一次获取所有版本。HDFS数据存储 分布式文件系统HDFS被设计为将海量文件存储在一个大集群的多台计算机上。HDFS将每一个文件以分块序列的形式进行存储,一个文件的所有分块除去最后一个分块外都是等大小的。为了实现容错将文件分块进行自动复制。文件分块的块大小和复制比例都是可以按照单个文件进行配置的。HDFS中的所有文件都是“只写一次”并且严格限定在任何时候只有一个写文件操作者。 HDFS是Hadoop框架的分布式并行文件系统,是分布式计算的存储基石。负责数据分布式存储及数据的管理,并能提供高吞吐量的数据访问。HDFS的基本特征如下:(l)对于整个集群有单一的命名空间。(2)文件会被分割成多个文件块,每个文件块被分配存储到数据节点上,而且根据配置会有复制的文件块来保证数据安全性。(3)数据一致性。适合一次写入多次读取的模型,客户端在成功创建文件之后,才能看到文件的存在。(4)Hadoop,包括HDFS,非常适合在廉价机器上的分布式存储和分布式处理。它是容错的、可伸缩的、非常易于扩展。并且,以简单性和适用性著称的MapReduce是Hadoop不可缺少的重要组成部分。(5)HDFS的默认配置适合于大多数安装的应用。通常情况下,只有在一个非常大规模的集群上才需要修改默认配置。(6)支持shell命令行风格的HDFS目录交互。(7)HDFS是用java编写的,可广泛运行在多种软硬件平台上。(8)HDFS经常性地实现新的特性和改进。(9)Namenode和DataNode都内建了Web服务器,可以方便地查看集群的状态。HDFS的体系框架是Master/Slave结构,一个典型的HDFS通常由单个Namenode和多个DataNode组成。Namenode是一个中心服务器,负责文件系统的名字空间的操作,比如打开、关闭、重命名文件或目录,它负责维护文件路径到数据块的映射,数据块到DataNode的映射,以及监控DataNode的心跳和维护数据块副本的个数。集群中的DataNode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组DataNode上。DataNode负责处理文件系统客户端的读写请求。在Namenode的统一调度下进行数据块的创建、删除和复制。所有对目录树的更新和文件名和数据块关系的修改,都必须能够持久化,文件在HDFS中存储图如图:图表13Hdfs结构HDFS涉及到Namenode、DataNode和客户端们之间的交互。本质上,客户端与Namenode通讯是通过获取或者修改文件的元数据,与DataNode进行实际的I/O操作。如图13所示,在HDFS中有三个重要的角色:Namenode、DataNode和Client,其中Client就是需要获取分布式文件系统文件的应用程序。这里通过三个操作来说明他们之间的交互关系:(l)文件写入。首先Client向Namenode发起文件写入的请求,Namenode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。(2)文件读取。Client向Namenode发起文件读取的请求,Namenode返回文件存储的DataNode的信息。Client根据返回的信息读取DataNode上的文件信息。(3)文件Block复制。Namenode发现部分文件的Block不符合最小复制数或者部分DataNode失效,通知DataNode相互复制Block。DataNode收到通知后开始直接相互复制。

图表14HDFSNamenode、DataNode和客户端们之间的交互HBase数据存储HBase–HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。其目的是处理庞大的表,可以用普通的计算机处理10亿行数据,并且有数百万列元素组成的数据表这张表的索引是行关键字。Hbase可以直接使用本地的文件系统和Hadoop作为数据存储方式,不过为了提高数据的可靠性和系统的健壮性,发挥Hbase处理大数据量等功能,需要使用Hadoop作为文件系统。1、数据模式HBase类似Bigtable的分布式数据库,是一个稀疏的,长期存储的,多维的,排序的映射表.这张表的索引是行关键字,列关键字和时间戳。每个值是一个不解释的字符数组,数据都是字符串,没类型。用户在表格中存储数据,每一行都是一个可排序的主键和任意多的列。由于是稀疏存储的,所以同一张表里面的每一行数据都可以有截然不同的列。列名字的格式是"<family>:<lable>",都是由字符串组成,每一张表有一个family集合,这个集合是固定不变的,相当于表的结构,只能通过改变表的结构来改变。但是lable值相对于每一行来说都是可以改变的。HBase把同一个family里面的数据存储在同一个目录底下,而HBase的写操作时锁行的,每一个都是一个原子元素都可以加锁。所有数据库的更新都是一个时间戳标记,每个更新都是一个新的版本,而HBase会保留一定数量的版本,这个值是可以设定的。客户端可以获取距离某个时间最近的版本,或者一次获取所有版本。2、概念视图一个表可以想象成一个大的映射关系,通过主键,或者主键+时间戳,可以定位一行数据,由于是稀疏数据,所以某些列可以是空白的,下面就是数据的概念视图:RowKeyTimeStampColumnColumn"anchor"Column"mime""n.www"t9"anchor:""CNN"t8"anchor:my.look.ca""CNN.com"t6"<html>..."t5"<html>...""text/html"t3"<html>..."3、物理视图从概念视图看每个表格是有很多行组成,但是在物理存储上,它是按照列来保存的。RowKeyTimeStampColumn"contents""n.www"t6"<html>..."t5"<html>..."t3"<html>..."RowKeyTimeStampColumn"anchor""n.www"t9"anchor:""CNN"t8"anchor:my.look.ca""CNN.com"RowKeyTimeStampColumn"mine""n.www"t6"text/html"在概念视图上面有些列是空白的,这样的列实际上并不会被存储,当请求这些空白的单元格的时候,会返回null值。如果在查询的时候不提供时间戳,那么会返回距离现在最近的那个版本数据。因为在存储的时候,数据会按照时间戳排序Database数据存储数据库(Database)是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。数据库中的数据有两种性质:1、数据整体性数据库是一个单位或是一个应用领域的通用数据处理系统。数据库中的数据是从全局观点出发建立的,他按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。2、数据共享性数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。数据库的基本结构分为三层:1.物理数据层它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。2.概念数据层它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。3.逻辑数据层它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。数据库不同层次之间的联系是通过映射进行转换的。主要特点: (1)实现数据共享。数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。(2)减少数据的冗余度。同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。(3)数据的独立性。数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。(4)数据实现集中控制。文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。(5)数据一致性和可维护性,以确保数据的安全性和可靠性。主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;④故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏(6)故障恢复。由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。数据存储的可靠性HBase采用的是Hadoop作为文件系统,hadoop以机柜为基础的数据存放策略,那么不仅充分利用了网络宽带,而且提高数据可靠性。HDFS的主要目标就是实现在失败情况下的数据存储可靠性。常见的三种失败:Namenodefailures,Datanodefailures和网络分割(networkpartitions)。(1)硬盘数据错误、心跳检测和重新复制每个Datanode节点都向Name

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论