云平台下的NoSQL分布式大数据存储技术与应用.docx
《云平台下的NoSQL分布式大数据存储技术与应用.docx》由会员分享,可在线阅读,更多相关《云平台下的NoSQL分布式大数据存储技术与应用.docx(6页珍藏版)》请在冰豆网上搜索。
云平台下的NoSQL分布式大数据存储技术与应用
云平台下的NoSQL分布式大数据存储技术与应用
本文从网络收集而来,上传到平台为了帮到更多的人,如果您需要使用本文档,请点击下载按钮下载本文档(有偿下载),另外祝您生活愉快,工作顺利,万事如意!
随着技术的发展,越来越多的非结构化数据比如文档、图片、音乐、视频等产生。
IDC研究表明:
当前企业中有80%是非结构化数据,并且以60%的增长率在不断增加。
如何突破传统技术,实现大规模数据高效存储和利用管理是当前面临的重大挑战。
数据库技术
非关系型数据库(NoSQL)是一种全新的非关系型分布式存储技术,该数据库数据不但包括日常的文本数据,还包括如图片、视频、FLASH动画等其他数据,因其具有海量存储、灵活易用、高并发等特点,可以为系统提供一个可扩展的松耦合类型数据模式,该模式严格遵循CAP定理,能够很好地支持非结构化数据的存储,满足高并发读写需求,具有很好的扩展性。
目前的NoSQL数据存储主要包括以下几种,具体见表1。
(1)键值对存储。
通过对提供的键值对数据存储,能够很好地满足系统的读写需求,例如MemcacheDB,Redis,Dynamo。
(2)文档数据存储。
能够高效满足系统的海量数据存储和访问需求,目前的存储主要包括MongoDB和Couch-DB等,能够很好地提高海量数据存储的访问效率。
(3)面向列存储。
在面向列的存储系统中,数据以列为存储单位。
相同列的数据存储在一起,从而支持列的动态扩展,对某一列或某几列的查询具有明显的I/O优势。
典型代表有Hhase,Hypertahle等。
数据库
MongoDB数据库不但能够通过系统的键值对存储提高其快速写入和读取,而且能够很好地兼容传统关系型DBMS功能,它主要可以提供一种功能强大、灵活、可扩展的无结构的存储方式,该存储方式采用松散的BSON数据结构进行存储。
MongoDB的主要特性如下:
(1)扩展性好:
McngcDB数据库在设计初期,首先考虑到数据库的扩展问题,通过采用无模式的存储结构可以快速对服务器进行自动分割。
采用MongoDB数据库的自动分片机制,可以实现集群中数据的动态负载均衡。
(2)数据存储丰富多样化:
MongoDB是面向文档的数据库,MongoDB拋弃关系存储模型,用户在进行添加模块时不用事先定义,即可横向灵活的更改数据模型。
(3)检索功能丰富:
该数据库不但支持辅助索引,而且方便存储JavaScript脚本和MapReduce等模式。
(4)性能引擎优良:
MongoDB数据库中的文档数据可以动态扩充,通常先将存储引擎配置到内存映射文件中,实现数据文件进行预分配,然后通过采用空间转换的形式,确保数据库的性能稳定。
(5)配置管理便捷:
MongoDB数据库为提升系统的可靠性和稳定性,通常采用服务器自身机制完成配置功能。
MongoDB数据库的核心是文档数据,每个文档数据中的字段名和值——对应存放在表中。
可以通过MongoDB数据库实例方便管理相应的数据库表。
分片
在MongoDB数据库中,每个分片均由一台或多台服务器构成,该服务器的功能主要是通过运行MongoDB进程实现数据的存储。
但在实际环境中,为了提高系统的可靠性和实现自动故障恢复,每个分片可以独立看作是一个replicaset,replicaset从本质上来讲,它是一*种异步的主从复制机制,每个replicaset至少包括一个主节点和一个以上副节点。
主节点主要负责数据的写入,
副节点主要负责数据的读取。
replicaset中两类节点之间通过oplog保证数据的一致性,所有操作数据及时间戳都会被写入oplog,因其大小固定,所有的副节点均会监听oplog的变化情况,以实现与主节点的同步。
replicaset通常能够实现两个以上子节点的故障自动恢复。
配置服务
配置服务主要用来存储MongoDB数据库集群的元数据信息,这些元数据信息来源于两方面:
一部分是分片服务器上的集群信息;另一部分是该分片集群服务器上的文档数据和集合信息。
每一个配置服务信息中都包括了MongoDB数据库中的群集信息,通常采用一个两阶段协议实现相互之间的通信,确保配置信息的一致性。
配置服务器目前拥有自己的复制模型,可以对集群元数据信息备份。
当任何一个集群服务器发生宕机时,集群中的元数据就自动变为只读状态,通过此种方式能够有效避免系统在不稳定的情况下,误操作导致元数据信息被改动,避免configservers节点间出现元数据不一致的情形。
数据库集群中某一配置服务器发生异常,不会影响整个集群的正常工作,最终能够确保集群中写人数据或从集群中读取数据。
路由进程
路由进程可以将数据库集群中的多个组件看作是一个单一的系统,当MongoDB数据库服务器接收到用户请求时,首先查询相应的配置文件,找到存放该数据的分片服务器。
然后通过配置服务协议把用户请求转发给相对应的分片服务器。
当所有的分片服务器完成操作后,会将结果通过路由协议打包分别发送给Mcngos。
当Mongos汇总所有的数据结果后,再把最终结果返回给用户。
Mongos每次启动,首先要去配置服务器中读取元数据单元,并同时保存到本地。
每当配置服务器中的元数据信息发生变动时,它都会在第一时间通知所有的Mongos。
3Hadoop大数据云存储平台
Hadoop大数据平台是Apache公司的一个开源子项目,该平台项目的主要目标是能够依据目前已有的廉价硬件设备生成系统稳定、可扩展的分布式计算架构。
其中HDFS是Hadoop平台的子项目之一,它主要是能够实现分布式文件系统,为各大机构和公司建设云存储解决方案提供了参考。
云存储数据中心是由多服务器组成的服务器集群的统称,该云存储数据中心能够提供大容量、高并发的数据存储。
该服务集群主要由一个主控节点和多个数据节点构成,能够通过网络设备将集群系统连接在一起,方便实现用户统一的管理和维护。
非结构化数据存储非常广泛,目前系统建设功能模块中对非结构化数据要求很多,包括图片上传下载、新闻图片发布、视频剪辑、文档管理等功能。
其云存储层次结构如图2所示。
但是大部分的功能实现是通过在服务器上创建可写的目录来存储,采用此种方式有如下弊端:
(1)性能低下。
因系统所需的非结构化数据存储量大,服务器带宽和计算能力会根据数据类型进行相应分配,这样导致大量服务器存储被占用,对于一些核心设备上性能要求极高的服务器有很大影响。
(2)集群同步难以维护。
当大型项目规模需要集群支持时,为了确保实现节点内各服务器之间同步数据,通常采用基于服务器内部之间的协议保证数据传输的一致性和完整性。
(3)服务安全管控性差。
目前服务器都逐步采用集中式管控,这对服务器出入口安全提出更苛刻的要求,传统入侵都是通过对服务器上传木马实现的,为更好的提升服务安全管理,迫切需要对外服务接口进行监管。
(4)数据安全性。
针对服务器集群数据间的交换,通常采用vpn登录等方式获取所需的数据信息,而vpn通常是内外网信息的入口凭证,加强vpn等登录信息的监管是确保数据安全的重中之重。
(5)数据持久性。
基于业务应用的系统,通常采用单一数据库服务器存储,一旦数据库发生异常,无法保证数据的完整性和一致性,容易发生存储数据丢失等情况,一旦丢失,进行数据恢复往往比较困难。
本文设计的非结构化数据云存储架构建立在Hadoop之上,层次结构如下:
存储层:
非结构化数据云存储系统对外提供不同的存储服务,每种服务的数据被统一存储在系统中,构成一个数据池。
管理层:
管理层是非结构化数据云存储系统中最核心的一层。
通过管理层实现云存储中多个存储设备之间的协同工作,确保这些设备对外提供统一的数据公众服务。
应用服务层:
该层主要是根据用户自身业务而实现的业务需求,能够实现与云存储服务器集群进行交互的具体操作,最终实现用户的业务操作。
应用接口层:
对应于云存储中的用户访问层。
4本文设计内容
本文为优化HDFS的存储,引入MongoDB非关系型数据库进行相应的改进,在Hadoop云平台上搭建HDFS和MongoDB存储系统实现非结构化海量资源的存储。
非结构化数据云存储平台如图3所示。
非结构化数据云存储平台中MongoDB架构如图4所示,其功能如下:
Client:
包含访问MongoDB的接口,维护缓存数据加快数据的访问速度,如集合位置信息。
协调服务:
确保整个系统集群只有一个主控制节点,能够存储所有集合的寻址入口,实时监控集合服务的状态,将集合服务的状态信息实时发送到主控制节点;存储和管理MongoDB的模式信息,包括有哪些集合,每个集合有哪些文档。
控制节点:
分配集合空间,负责元数据存储的负载均衡;发现失效的数据节点时,进行故障转移;处理MongoDB上的垃圾文件回收和schema更新请求。
集合服务:
数据的I/O请求;对数据量较大的集合进行自动分片。
非结构化数据云存储平台中HDFS架构如图5所示,其功能如下:
NameNode节点即控制节点,它可以看作是HDFS中的管理者,工作内容主要包括:
管理文件系统的命名空间、集群配置、存储块复制等。
存储节点是数据存储的基本单元,通过将数据以块的方式存储到本地文件系统中,同时能够将所有块信息及时准确地发送给控制节点。
MongoDB客户端就是获取分布式文件系统的应用程序。
通过开源Hadoop非结构化数据云存储平台,用户可以将海量非结构化数据存储到云平台上。
HDFS可以用来存储PB级的数据,但数据访问延时高,不适合存储小文件等。
MongoDB存储海量数据的元数据,可以实现实时读写,很好地弥补了HDFS的不足。
6结语
本文通过对互联网发展的现状进行分析,重点研究了当前流行的NoSQL数据库代表MongoDB的数据库模型、特性以及它的分布式存储架构,并详细介绍了大数据云平台技术的特点,依据大数据云存储平台和非结构化数据库自身的特点,设计基于MongoDB和HDFS的非结构化数据云存储服务架构。
针对非结构化数据元数据的特点以及MongoDB的存储特性,将MongoDB部署到Hadoop平台中,存储非结构化数据的元数据信息,而非结构化数据以文件的方式存放在HDFS系统中。
这样可以降低HDFS在应对海量小文件的存储应用时,由于NameNode内存不足导致的性能瓶颈。
在本文的最后设计实验对平台的可行性进行了验证,实验数据证明了改进方案的有效性和高效性。
本文从网络收集而来,上传到平台为了帮到更多的人,如果您需要使用本文档,请点击下载按钮下载本文档(有偿下载),另外祝您生活愉快,工作顺利,万事如意!