[发明专利]一种hadoop数据存储方法和装置在审
申请号: | 201710799237.4 | 申请日: | 2017-09-07 |
公开(公告)号: | CN107566496A | 公开(公告)日: | 2018-01-09 |
发明(设计)人: | 辛永欣 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京安信方达知识产权代理有限公司11262 | 代理人: | 李红爽,李丹 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 hadoop 数据 存储 方法 装置 | ||
技术领域
本发明实施例涉及数据存储技术,尤指一种hadoop数据存储方法和装置。
背景技术
随着互联网和分布式计算技术的发展,出现了越来越多的数据密集型应用,这些应用常常需要涉及数TB(太字节)的数据,如何高效、可靠而又方便地处理大量的数据成为当前一个重要研究方向,并且如何可靠而且合理地存放海量数据是Hadoop(一种分布式系统基础架构)体系中的一个重要问题。Hadoop将数据的多个副本存放在集群中的不同机器上,当有节点失效时,其仍然可以读取数据。但另一方面,由于MapReduce中的运算常常需要输入大量的数据,而大量数据的移动会显著影响运算的性能,所以数据的存放应当遵循本地性的原则,即数据应当距离运算节点较近,从而减少因数据移动带来的性能损失。HDFS(Hadoop分布式文件系统)目前的副本放置策略如下:如果写入者在一个数据节点DataNode上,那么第一个副本在本机,否则随机选取一个节点。第二个副本先在另一个机架上,第三个副本被放置在同第二个副本同一机架,但不同的数据节点上。该方案存在以下问题:随机选取的机架的节点可能会由于距离本地节点太远而增加不必要的数据恢复时间,同时随机选取节点也不能保证节点之间数据存储的平衡。由于系统中节点的失效是常态,数据恢复时不必要的性能损失会导致整个存储系统性能下降。
发明内容
为了解决上述技术问题,本发明实施例提供了一种hadoop数据存储方法,能够实现数据存放的负载均衡,又能实现良好的数据传输性能。
为了达到本发明实施例目的,本发明实施例提供了一种hadoop数据存储方法,包括:
当接收到用户提交的数据存储请求时,名字节点NameNode从多个不同机架中随机选取预设数量的数据节点DataNode;
获取预设数量的DataNode中各个DataNode在网络拓扑中到当前DataNode的距离信息以及各个DataNode当前存放的数据副本数量;
根据该距离信息以及数据副本数量计算每个DataNode的调度评价值;
根据计算出的调度评价值选取数据存放节点。
可选地,当接收到用户提交的数据存储请求时,名字节点NameNode从多个不同机架中随机选取预设数量的数据节点DataNode包括:
根据该数据存储请求,NameNode调用预设的副本放置策略BlockPlacementPolicy;其中,该BlockPlacementPolicy的节点选取函数chooseTarget()中增加有网络拓扑NetworkTopology类成员变量clusterMap;
根据clusterMap的节点选择函数Node chooseRandom(String scope)从多个不同机架中获得随机的DataNode。
可选地,获取预设数量的DataNode中各个DataNode在网络拓扑中到当前DataNode的距离信息包括:
根据clusterMap的目标距离函数intgetDistance(Node node1,Node node2)获得各个DataNode与当前DataNode之间的网络距离。
可选地,获取各个DataNode当前存放的数据副本数量包括:
调用Hadoop系统中描述DataNode的数据节点描述策略DataNodeDescriptor;
根据DataNodeDescriptor中的块数据组函数intnumBlocks()获取各个DataNode上已经存放的数据块数量,作为数据副本数量。
可选地,根据该距离信息以及数据副本数量计算每个DataNode的调度评价值包括:将获取的关于每个DataNode的所述距离信息以及数据副本数量代入以下预设的节点评价函数计算每个DataNode的调度评价值E:
E=f(ld,d)=Al+(1-A)d;
其中,f(ld,d)为节点评价函数;1为该DataNode的负载系数,反比于该DataNode当前存放的数据副本数量;d为距离系数,反比于该DataNode到当前DataNode的网络距离;A∈[0,1]为平衡因子。
可选地,根据计算出的调度评价值选取数据存放节点包括:
对计算出的调度评价值进行排序;
依据调度评价值从高到低选取数据存放节点。
为了达到本发明实施例目的,本发明实施例还提供了一种hadoop数据存储装置,包括:选取模块、获取模块、计算模块和存储模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710799237.4/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置