一种基于Hadoop架构的数据存储系统的制作方法

文档序号:13937638阅读:414来源:国知局

本发明属于大数据存储技术领域,具体涉及一种基于hadoop架构的数据存储系统。



背景技术:

数据按类型分为结构化数据、半结构化数据和非结构化数据,其中结构化数据是指能够以二维结构表示的一种数据类型,能通过关系型数据库存储;半结构化数据是指具有一定结构,但语义不够明确的一种数据类型,如邮件、html网页等,它们有些字段是确定的,也有些字段是不确定的;非结构化数据是指无法用二维结构表示的一种数据类型,主要包括办公文档、文本、图片、音视频文件等,无法采用关系型数据库进行处理。伴随社交网络的兴起和发展,产生了大量的ugc(usergeneratedcontent,用户生成内容),包括音频、视频、文本和图片等非结构化数据。另外,物联网的数据量也剧增,加上移动互联网可以更加准确、快速地搜集用户信息,如位置、生活信息等数据,大数据处理给我们提出了新的挑战。在所有数据中,结构化数据占数据总量的20%,半结构化数据和非结构化数据占数据总量的80%,如何科学管理和合理应用这些数据显得日益重要。

目前针对大数据的处理技术,包括并行数据库、mapreduce技术、并行数据库和mapreduce技术混合架构,其中对于大数据的统一处理技术属于第三类并行数据库和mapreduce技术混合架构,该技术有分为并行数据库主导型、mapreduce主导型、并行数据库和mapreduce集成型三种。并行数据库主导型是利用mapreduce来增强并行数据库的数据处理功能,如emc的greenplum,asterdata,但其可扩展性和容错能力并未改变;mapreduce主导型是利用关系数据库的sql(structurequerylanguage,结构化查询语言)接口和对模式的支持来改善mapreduce的易用性,如hive、piglatin,但其对于数据处理的实时性方面仍无法满足需求;并行数据库和mapreduce集成型是借助hadoop框架来获得较好的容错性和对异构环境的支持,同时获得关系型数据库的性能优势,但是目前并无应用案例,究其原因在于无法把工作推给适合的执行引擎。

综上所述,现有的大数据存储技术中,并行数据库主导型可扩展性和容错能力不佳;mapreduce主导型数据处理的实时性方面仍无法满足需求;并行数据库和mapreduce集成型无法把工作推给适合的执行引擎。因此,在大数据存储领域,一直渴望一种对海量结构化数据和非结构化数据进行统一管理并且数据处理灵活性和易用性较好的存储系统。



技术实现要素:

有鉴于此,本发明的目的在于克服现有技术的不足,提供一种基于hadoop架构的数据存储系统。

为实现以上目的,本发明采用如下技术方案:

一种基于hadoop架构的数据存储系统,其改进之处在于:

所述存储系统包括至少一应用服务器、备份服务器、数据库集群以及至少一核心层交换机;

所述数据库集群包括第一子存储集群和第二子存储集群;将所述结构化数据的基础数据存储至第一子存储集群,将所述非结构化和半结构化的松散数据存储至第二子存储集群;

所述应用服务器、备份服务器、数据库集群分别连接所述核心层交换机;

所述应用服务器连接所述备份服务器和数据库集群,用于管理备份服务器和数据库集群的实时数据。

进一步的,

所述第二子存储集群包括一个主服务器和多个块服务器;所述主服务器和和多个块服务器构建hadoop集群平台;所述hadoop集群平台中的hdfs模块用于存储hadoop集群中所有存储节点上的文件。

进一步的,所述主服务器配置管理者文件系统namenode名称节点,用于在hdfs模块内部提供元数据服务;所述块服务器配置文件系统的datanode数据节点,用于根据客户端或者是namenode名称节点的调度存储和检索数据,并定期向namenode名称节点发送所存储的块的列表。

进一步的,存储在hdfs模块中的文件被分成块,将存储的块复制到多个块服务器datanode数据节点上,所述主服务器namenode名称节点用于控制多个块服务器datanode数据节点上所有文件操作;hdfs模块内部通信采用tcp/ip协议。

进一步的,所述namenode名称节点用于管理文件系统中的文件和控制外部客户端的访问。

进一步的,所述namenode名称节点判断并执行是否将文件映射到datanode数据节点上的复制块上。

进一步的,多个所述datanode数据节点之间以机架的形式组织,通过一个交换机与所述namenode名称节点连接。

进一步的,所述datanode数据节点用于响应来自hdfs模块客户端的读写请求;还用于响应来自namenode名称节点的创建、删除和复制块的命令。

进一步的,

所述namenode名称节点用于接受每个datanode数据节点的定期心跳消息;所述消息包含一个块报告,所述namenode名称节点根据所述报告验证块映射和其他文件系统元数据;

所述datanode数据节点不能发送心跳消息,namenode名称节点将采取修复措施,重新复制在该datanode数据节点上丢失的块。

进一步的,

所述备份服务器与数据库集群数据交互,实时备份数据库集群所有存储节点上的文件。

本发明采用以上技术方案,

本发明采用分布式存储的方式存储数据,采用冗余存储来保证数据的可靠性。同时,为了优化系统的执行性能,提高资源的数据利用率,需要对数据进行并行处理。hdfs模块可以跨机器地可靠地存储海量的文件,它将每个文件存储成同样大小的数据块序列。

本发明hdfs模块采用rack-aware的策略来改进数据的可靠性、有效性和网络带宽的利用。hdfs模块采用了副本选择、负载均衡、客户端缓存、流水线复制等措施来提升其性能。hdfs模块架构支持负载均衡策略。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的一种基于hadoop架构的数据存储系统结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

一种基于hadoop架构的数据存储系统,所述存储系统包括至少一应用服务器、备份服务器、数据库集群以及至少一核心层交换机;

所述数据库集群包括第一子存储集群和第二子存储集群;将所述结构化数据的基础数据存储至第一子存储集群,将所述非结构化和半结构化的松散数据存储至第二子存储集群;

所述应用服务器、备份服务器、数据库集群分别连接所述核心层交换机;

所述应用服务器连接所述备份服务器和数据库集群,用于管理备份服务器和数据库集群的实时数据。

第一子存储集群支持多种主流关系数据库系统,满足不同应用的性能、功能、系统伸缩性要求。

第二子存储集群采用hadoop系统作为基础架构平台,hadoop是一个能够对大量数据进行分布式处理的软件框架,是以一种可靠、高效、可伸缩的方式进行处理的。以并行的方式工作,通过并行处理加快处理速度。hadoop还是可伸缩的,能够处理pb级数据。

客户端的用户可通过hdfs模块进行创建、删除、移动或重命名文件等操作;

其中,hadoop系统框架有许多元素构成。其最底部是hadoopdistributedfilesystem(hdfs模块),存储hadoop集群中所有存储节点上的文件。

上述技术方案中,

所述第二子存储集群包括一个主服务器和多个块服务器;所述主服务器和和多个块服务器构建hadoop集群平台;所述hadoop集群平台中的hdfs模块用于存储hadoop集群中所有存储节点上的文件。一个hadoop集群平台包括一个主服务器和多个块服务器,这样一个hadoop集群平台能够同时为多个客户端应用程序提供文件服务。文件被划分为固定的块,由主服务器安排存放到块服务器的本地硬盘上。

上述技术方案中,所述主服务器配置管理者文件系统namenode名称节点,用于在hdfs模块内部提供元数据服务;块服务器配置文件系统的datanode数据节点是文件系统的工作节点,用于根据客户端或者是namenode名称节点的调度存储和检索数据,并定期向namenode名称节点发送所存储的块的列表。

应用程序通过与主服务器管理者文件系统namenode名称节点和块服务器datanode数据节点的交互来实现对应用数据的读写,应用与主服务器namenode名称节点之间的交互仅限于元数据,也就是一些控制数据,其他的数据操作都是直接与块服务器datanode数据节点交互的。

上述技术方案中,

存储在hdfs模块中的文件被分成块,将存储的块复制到多个块服务器datanode数据节点上,所述主服务器namenode名称节点用于控制多个块服务器datanode数据节点上所有文件操作;hdfs模块内部通信采用tcp/ip协议。

上述技术方案中,所述namenode名称节点用于管理文件系统中的文件和控制外部客户端的访问。

namenode名称节点管理者文件系统的namespace。用于维护着文件系统树(filesystemtree)以及文件树中所有的文件和文件夹的元数据(metadata);namenode名称节点记录着每个文件中各个块所在的数据节点的位置信息,但并不持久化存储信息,所述信息会在系统启动时从datanode数据节点重建。

上述技术方案中,所述namenode名称节点判断并执行是否将文件映射到datanode数据节点上的复制块上。

上述技术方案中,多个所述datanode数据节点之间以机架的形式组织,通过一个交换机与所述namenode名称节点连接。

上述技术方案中,所述datanode数据节点用于响应来自hdfs模块客户端(client)的读写请求;还用于响应来自namenode名称节点的创建、删除和复制块的命令。主服务器中namenode名称节点会记录存放位置等数据,并负责维护和管理文件系统,包括块的租用、垃圾块的回收以及块在不同块服务器datanode数据节点之间的迁移。此外,主服务器中namenode名称节点还周期性地与每个块服务器通过消息交互,以监视运行状态或下达命令。

客户端(client)代表用户与namenode名称节点和datanode数据节点交互来访问整个文件系统;

上述技术方案中,

所述namenode名称节点用于接受每个datanode数据节点的定期心跳消息;所述消息包含一个块报告,所述namenode名称节点根据所述报告验证块映射和其他文件系统元数据;

所述datanode数据节点不能发送心跳消息,namenode名称节点将采取修复措施,重新复制在该datanode数据节点上丢失的块。

上述技术方案中,

所述备份服务器与数据库集群数据交互,实时备份数据库集群所有存储节点上的文件。hadoop集群平台连接备份服务器,增加namenode名称节点2作为namenode名称节点备份机,将原有namenode名称节点中的数据复制到选定的namenode名称节点2中,在namenode名称节点运行时,namenode名称节点2会实时的检测namenode名称节点的运行状态,同时把namenode名称节点中的操作实时更新到本地,在namenode名称节点出现故障时,namenode名称节点2代替namenode名称节点保证服务的正常进行。

本发明hdfs模块架构支持负载均衡策略。如单个datanode数据节点的剩余磁盘空间下降到一定程度,按照负载均衡原则,系统会自动将这个datanode数据节点的数据转移到其他节点。当对一个文件提出很高的要求,系统会自动启动对该文件副本的创建,同时平衡集群中的其他数据。此外,客户端创建文件的请求并不是立即送达数据命名节点,hdfs模块根据客户端需求先将数据缓存到本地的一个临时文件中,程序的写操作透明地重定向到这个临时文件。当写入数据达到块容量,命名空间会告诉客户端数据节点的id和目标数据块id,实现数据从缓存刷新到指定数据块。客户端缓存有效解决了网络速度和阻塞对数据写入的影响。当客户端写数据到hdfs模块的文件中时,数据一开始会写入本地临时文件。datanode数据节点在接收客户端请求数据的同时,会将数据以流水线的形式传给后面的节点。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1