一种基于Hadoop的档案大数据分布式存储系统的制作方法

文档序号:27552160发布日期:2021-11-24 22:51阅读:199来源:国知局
一种基于Hadoop的档案大数据分布式存储系统的制作方法
一种基于hadoop的档案大数据分布式存储系统
技术领域:
1.本发明属于分布式存储系统,尤其涉及一种基于hadoop的档案大数据分布式存储系统。


背景技术:

2.当前,国内许多公司使用mysql,sqlserver,oracle等数据库,数据库采用并行存储方案,但数据库服务器支持数量有限,对于数据库的扩容只能通过纵向方向
‑‑
硬件升级进行扩展扩展,而无法进行横向增加独立数据库数量扩展实现对数据库容量进行扩容。
3.与传统数据库相比,多个数据库并行连接进行存储,能够在原有的架构上扩展存储能力和计算分析能力,但是该并行数据库使得计算与存储分离,无法同时对存储的数据进行计算分析,由于带宽限制,多个并行数据库在进行数据访问过程中存在带宽竞争,出现带宽瓶颈。同时,当进行容量扩展时,需要静态停机,然后进行扩展存储,数据也要重新进行分布。若数据再某一时段骤增,信息数据增长速度大于数据库硬件升级速度,导致无法满足通过扩容对骤然增加数据存储的无缝连接,容易出现数据库容量不足,影响服务质量以及客户时效性需求。
4.保证在不同场景下存储系统的负载均衡和处理速度,通常采用hdfs分布式系统数据存储策略,hadoop大数据平台下的分布式文件系统hdfs默认数据存储策略在设计之初有兼顾到数据存储效率、尽量均衡分布以及数据可靠性等方面的考虑,但hdfs随机选择存储节点进行数据存放的方式容易产生以下两点问题:易造成数据分布不均衡以及默认放置策略中没有考虑数据节点硬件差异
5.hdfs分布式系统在存储数据时,默认采用随机放置数据块的策略,以求数据在节点中的均衡分布。在对系统的存储节点进行增加与删除操作时,不能自动调整数据分布,无法满足系统负载均衡的需求。
6.hdf分布式系统以集群同构为前提进行数据信息的存储,设计时没有对集群中数据节点的硬件差异进行相应优化,导致一些数据节点的磁盘空间无法充分利用,影响整体存储系统效率。


技术实现要素:

7.针对目前现有的分布式存储系统数据分布不均衡以及分布式存储系统数据节点硬件差异影响整体存储系统效率,本发明提供一种基于hadoop的档案大数据分布式存储系统,使用hdfs分布式存储系统缓解了企业的存储成本。采用哈希算法,通过改进hdfs块存储的随机放置数据策略,有效解决存储系统在扩容和宕机情况下,数据倾斜的问题,提高了存储系统的稳定性,还可以使系统在同构条件下达到负载均衡;采用融合加权轮询算法可以优化数据存储策略,有效地解决了在异构条件下存储系统的负载均衡问题,充分利用系统硬件资源。
8.本发明为解决以上技术问题所采取的技术方案是:
9.基于hadoop的档案大数据分布式存储系统,系统包括客户端,主从结构的控制节点和多个从属节点;所述控制节点用于控制所述多个从属节点,所述从属节点用于数据存储和数据处理,所述控制节点与所述控制节点通过tcp/ip协议进行信息传输;所述客户端用于接收用户配置的map函数和reduce函数,所述map函数用于key/value对的操作管理,将大型计算任务分解为多个子任务,并且将所述子任务分发给各个所述从属节点,利用所述从属节点的计算资源获得计算结果,所述reduce函数用于相同key值的所有value值进行合并处理,输出的键值为最终结果;
10.当待处理数据向所述从属节点存储时,所述控制节点采用哈希模型确定指定的从属节点,所述哈希模型为:
11.target=gethashcode(request.ipnum)&nodenum
12.其中gethashcode()表示字符串运算哈希值函数,request.ipnum表示请求ip地址,nodenum表示从属节点总数,可以根据target的值分配对应编号的从属节点。
13.进一步地,在所述从属节点和所述待处理数据之间设置多个虚拟层,第一虚拟层映射到第一从属节点,所述第一虚拟层包括多个虚拟节点,所述待处理数据通过虚拟节点存储到所述从属节点中。
14.进一步地,虚拟节点与从属节点的映射模型为:
[0015][0016]
其中,p为从属节点的初始哈希位置,p’为映射节点的哈希位置,n为从属节点的数量,k=0,1,2...n。
[0017]
进一步地,虚拟节点与从属节点的映射模型还可以为:
[0018][0019]
其中,h表示特征字符串的哈希结果,l表示字符串长度,w表示字符在哈希运算中的权重。
[0020]
进一步地,所述控制节点可用于负载均衡服务器,处理所述客户端发送的存储数据请求之后,收集各个所述从属节点实时反馈的负载状态,再把请求根据权值分配到各所述从属节点,所述从属节点根据所述控制节点的请求分配数据,并将存储结果发送给所述控制节点,最后所述控制节点将是否完成此次数据分配的结果发送至所述客户端。
[0021]
进一步地,所述负载状态为磁盘使用率,磁盘使用率模型为:
[0022][0023]
其中,u
total
为磁盘空间,u
free
为磁盘剩余空间。
[0024]
进一步地,所述控制节点收到数据存储请求后,开始收集当前所述从属节点的磁盘使用率;所述控制节点计算所述从属节点的平均磁盘使用率,若第二从属节点的磁盘使用率大于等于平均磁盘使用率,则将所述第二从属节点的权重设置为0;若所述第二从属节点的磁盘使用率小于平均磁盘使用率,则根据所述磁盘使用率计算所述第二从属节点的权重,根据所述权重执行轮询分配任务。
[0025]
进一步地,所述客户端可以通过所述控制节点执行并行查询命令。
[0026]
进一步地,所述并行查询流程为:
[0027]
步骤(1)所述客户端通过脚本或命令接口发送sql命令到所述控制节点;
[0028]
步骤(2)sql界面根据查询关键字解析命令,生成虚拟根节点,输出字段作为叶子节点,构建查询任务树;在所述查询任务树上为每个关系表节点创建属性值,用于标记查询目标,并读取文件映射表,将文件信息添加到所述属性值中;输出任务树到优化器。
[0029]
步骤(3)所述优化器根据属性值记录的文件信息检索元数据,获取对应的数据块位置信息,同样添加到所述属性值中;将任务树转换成针对数据块的操作,并依据判断条件、数据量、字段大小等因素调整操作顺序;以所述从属节点为单位,合并操作单元,按顺序压入队列,生成操作列表;
[0030]
步骤(4)所有从属节点的操作列表组合成查询计划,输出给分发器;所述分发器根据节点ip地址将所述操作列表分发给对应从属节点上的执行器;
[0031]
步骤(5)所述执行器读取所述操作列表,按顺序执行所有操作命令,从本地存储器获取查询结果,执行器将所述查询结果上传给分发器,分发器汇总计算结果,返回汇总的查询结果到所述客户端。
[0032]
本发明的有益效果如下:
[0033]
系统使用hdfs分布式存储系统缓解了企业的存储成本。采用哈希算法,通过改进hdfs块存储的随机放置数据策略,有效解决存储系统在扩容和宕机情况下,数据倾斜的问题,提高了存储系统的稳定性,还可以使系统在同构条件下达到负载均衡;采用融合加权轮询算法可以优化数据存储策略,有效地解决了在异构条件下存储系统的负载均衡问题,充分利用系统硬件资源。
[0034]
上述说明,仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述说明和其它目的、特征及优点能够更明显易懂,特举较佳实施例,详细说明如下。
附图说明
[0035]
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0036]
图1为本发明的基于hadoop的档案大数据分布式存储系统结构图
[0037]
图2为本发明的基于虚拟节点的分布式存储系统示意图
具体实施方式
[0038]
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0039]
在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是连接,也可以是可拆卸连接,或成一体;可以是机
械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0040]
基于hadoop的档案大数据分布式存储系统,系统包括客户端,如图1所示,主从结构的控制节点和多个从属节点;所述控制节点用于控制所述多个从属节点,所述从属节点用于数据存储和数据处理,所述控制节点与所述控制节点通过tcp/ip协议进行信息传输;所述客户端用于接收用户配置的map函数和reduce函数,所述map函数用于key/value对的操作管理,将大型计算任务分解为多个子任务,并且将所述子任务分发给各个所述从属节点,利用所述从属节点的计算资源获得计算结果,所述reduce函数用于相同key值的所有value值进行合并处理,输出的键值为最终结果;
[0041]
当待处理数据向所述从属节点存储时,所述控制节点采用哈希模型确定指定的从属节点,所述哈希模型为:
[0042]
target=gethashcode(request.ipnum)&nodenum
[0043]
其中gethashcode()表示字符串运算哈希值函数,request.ipnum表示请求ip地址,nodenum表示从属节点总数,可以根据target的值分配对应编号的从属节点。
[0044]
进一步地,在所述从属节点和所述待处理数据之间设置多个虚拟层,第一虚拟层映射到第一从属节点,所述第一虚拟层包括多个虚拟节点,所述待处理数据通过虚拟节点存储到所述从属节点中。
[0045]
进一步地,如图2所示,虚拟节点与从属节点的映射模型为:
[0046][0047]
其中,p为从属节点的初始哈希位置,p’为映射节点的哈希位置,n为从属节点的数量,k=0,1,2...n。可用虚拟节点与从属节点的映射模型替换之前哈希模型,以实现均衡存储。
[0048]
进一步地,虚拟节点与从属节点的映射模型还可以为:
[0049][0050]
其中,h表示特征字符串的哈希结果,l表示字符串长度,w表示字符在哈希运算中的权重。
[0051]
进一步地,所述控制节点可用于负载均衡服务器,处理所述客户端发送的存储数据请求之后,收集各个所述从属节点实时反馈的负载状态,再把请求根据权值分配到各所述从属节点,所述从属节点根据所述控制节点的请求分配数据,并将存储结果发送给所述控制节点,最后所述控制节点将是否完成此次数据分配的结果发送至所述客户端。
[0052]
进一步地,所述负载状态为磁盘使用率,磁盘使用率模型为:
[0053][0054]
其中,u
total
为磁盘空间,u
free
为磁盘剩余空间。
[0055]
进一步地,所述控制节点收到数据存储请求后,开始收集当前所述从属节点的磁
盘使用率;所述控制节点计算所述从属节点的平均磁盘使用率,若第二从属节点的磁盘使用率大于等于平均磁盘使用率,则将所述第二从属节点的权重设置为0;若所述第二从属节点的磁盘使用率小于平均磁盘使用率,则根据所述磁盘使用率计算所述第二从属节点的权重,根据所述权重执行轮询分配任务。
[0056]
进一步地,所述客户端可以通过所述控制节点执行并行查询命令。
[0057]
进一步地,所述并行查询流程为:
[0058]
步骤(1)所述客户端通过脚本或命令接口发送sql命令到所述控制节点;
[0059]
步骤(2)sql界面根据查询关键字解析命令,生成虚拟根节点,输出字段作为叶子节点,构建查询任务树;在所述查询任务树上为每个关系表节点创建属性值,用于标记查询目标,并读取文件映射表,将文件信息添加到所述属性值中;输出任务树到优化器。
[0060]
步骤(3)所述优化器根据属性值记录的文件信息检索元数据,获取对应的数据块位置信息,同样添加到所述属性值中;将任务树转换成针对数据块的操作,并依据判断条件、数据量、字段大小等因素调整操作顺序;以所述从属节点为单位,合并操作单元,按顺序压入队列,生成操作列表;
[0061]
步骤(4)所有从属节点的操作列表组合成查询计划,输出给分发器;所述分发器根据节点ip地址将所述操作列表分发给对应从属节点上的执行器;
[0062]
步骤(5)所述执行器读取所述操作列表,按顺序执行所有操作命令,从本地存储器获取查询结果,执行器将所述查询结果上传给分发器,分发器汇总计算结果,返回汇总的查询结果到所述客户端。
[0063]
本发明的优点在于:系统使用hdfs分布式存储系统缓解了企业的存储成本。采用哈希算法,通过改进hdfs块存储的随机放置数据策略,有效解决存储系统在扩容和宕机情况下,数据倾斜的问题,提高了存储系统的稳定性,还可以使系统在同构条件下达到负载均衡;采用融合加权轮询算法可以优化数据存储策略,有效地解决了在异构条件下存储系统的负载均衡问题,充分利用系统硬件资源。
[0064]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1