公开/公告号CN108776690A
专利类型发明专利
公开/公告日2018-11-09
原文格式PDF
申请/专利权人 上海孚典智能科技有限公司;吴宇;
申请/专利号CN201810568779.5
申请日2018-06-05
分类号
代理机构上海精晟知识产权代理有限公司;
代理人冯子玲
地址 200082 上海市杨浦区国定路323号15层(集中登记地)
入库时间 2023-06-19 07:04:59
法律状态公告日
法律状态信息
法律状态
2020-07-07
授权
授权
2020-04-28
专利申请权的转移 IPC(主分类):G06F17/30 登记生效日:20200409 变更前: 变更后: 申请日:20180605
专利申请权、专利权的转移
2018-12-04
实质审查的生效 IPC(主分类):G06F17/30 申请日:20180605
实质审查的生效
2018-11-09
公开
公开
技术领域
本发明属于涉及信息技术领域,尤其是涉及一种基于数据分层治理的HDFS分布式于集中式混合数据存储的方法。
背景技术
近年来,随着大数据应用的广泛发展,基于hadoop的运算框架已经成为业界标准的并行运算环境之一。而与hadoop map-reduce对应的分布式文件系统HDFS也已经成为一个业界标准的分布式存储系统,其具备的多幅本和纠删码机制可以以比较便捷的方式保护数据,同时提供高并发能力。HDFS主要依赖hadoop集群的运算节点(计算服务器节点)的磁盘进行存储,因此具备横向扩展能力,但也因此对存储容量的扩展形成了一定程度的制约。特别是对有纵向扩展能力要求的场景,即无需扩展计算能力,只需扩展存储能力的场景。横向扩展往往造成计算资源的浪费,也间接造成能源的浪费。
本项专利基于对数据治理的观察,在活跃数据(热数据)与非活跃数据(温冷数据)并存的应用中,通常需要数据迁移策略,以便将非活跃数据迁移至响应速度低一些的存储介质中。在本项专利中,通过预设或用户定义的活跃度检测算法,将HDFS的数据文件依据活跃度下移到以网络文件系统实现的集中式存储(NFS存储)中。鉴于HDFS的高并和数据的高本地命中率,适于保存活跃数据,而将非活跃数据迁移至以NFS为基础的二级存储介质,从而保障在无需横向扩展的同时,支持良好的纵向扩展并具备接近HDFS的响应速度。
发明内容
针对现有的HDFS分布式文件系统存在的纵向扩展能力问题和数据治理问题,本发明的目的是提供一种高效的自动化数据治理方法,将HDFS的非活跃数据自动下移到NFS存储系统中。从而在以下三方面为基于hadoop的大数据应用提供了良好的存储支持:
1.保障自动纵向扩展;
2.维持HDFS本身的高响应能力;
3.保持数据完整性和安全性。
为实现上述发明目的,本发明提供了一种基于分层治理的HDFS分布式与集中式混合数据存储的方法,HDFS文件系统中存储的数据文件可以随这活跃的的下降,从服务区节点的磁盘逐步迁移到NFS存储设备中,在包括:
步骤一,对HDFS文件系统的namenode(即读写操作的主控系统)进行修改,使其支持:1.对文件读写的动态采样;2.多副本块存储在异构存储介质间的调度,即namenode可以制定数据块在datanode(即HDFS的数据存储节点)和NFS存储之间切换。
步骤二,定义文件数据迁移规则,即根据动态采样得来的文件读写操作记录,实现将数据存储依据数据活跃度从高到低在如下从1到4的存储状态依次转换:1.三副本同一存储介质(计算服务器节点的磁盘);2.三副本异构存储介质(计算服务器节点的磁盘+NFS存储设备);3.二副本异构存储介质(计算服务器节点的磁盘+NFS存储设备);4.NFS存储。
步骤三,实现根据动态采样决策存储状态切换的触发算法。
步骤四,修改HDFS数据读写机制以支持自动化副本策略选择,即由HDFS缺省的三副本在同一存储介质(计算服务器节点的磁盘)的存储策略切换至三副本在异构存储介质(计算服务器节点的磁盘+NFS存储设备)的存储策略或二副本在异构存储介质(计算服务器节点的磁盘+NFS存储设备)的存储策略。
本项发明的上述技术方案有益结果如下:
上述技术方案提供一种基于基于数据分层治理的HDFS分布式于集中式混合数据存储的方法。通过动态采样来判别数据活跃度,将低活跃度数据迁移到以NFS存储设备实现的集中式存储,从而避免温冷占用以服务器节点磁盘为基础的HDFS分布式存储而导致的扩容压力。本项技术方案实现了以纵向扩容替代横向扩容,避免增加不必要的计算资源和能源消耗(横向扩展需要扩充服务器节点,增加了计算能力和能源消耗),为应用用户减少运维负担和不必要的成本。
附图说明
图1是总体流程图
图2namenode修改说明图
图3存储状态转换图
图4存储状态1:数据读写流程图
图5存储状态2:数据读写流程图
图6存储状态3:数据读写流程图
图7存储状态4:数据读写流程图
具体实施方式
本发明具体实现如下:
1.对HDFS的namenode(文件读写的主控制组件)进行修改,加入动态采样机制和存储位置调度机制,如图2所示。动态采样发生在文件用户每次向namenode发送读写请求的过程中,采样模块会记录读写操作和发生的时间并将采样记录存储到数据表中。存储位置调度是在元数据表中将HDFS文件的不同副本定位于两种不同的存储设备中,即运行HDFS的物理服务器集群中的某个节点,或后端NFS设备。当用户的读写请求被namenode接收,首先会在元数据表中查询副本所在的位置,然后根据位置数据服务器节点或NFS设备进行读写;
2.动态采样根据用户预设的采样周期(这里命名为采样窗口,即时间片长度,通常设置为7*24小时),每次读写请求均存储于namenode服务器节点的本地数据表中。采样数据不必严格实行高可用原则,即采样数据表无需备份,多个namenode之间的采样数据同步可以以低于元数据同步的频率进行。由于采样窗口的长度通常为一周,因此存储状态评估的频率必然低于元数据备份的频率,因此避免不必要的数据拥塞;
3.对于文件的存储位置调度是一种随文件的活跃度逐渐降低而采取的渐进式存储下沉操作,即由完全存储于物理服务器集群逐渐过渡到完全存储于NFS设备。图3展示了存储状态转换过程,存储的初始状态为标准的HDFS3副本策略,均存储于HDFS的物理服务器集群上,当读写频率下降超过阈值,存储转入第二种状态,即3副本,第3副本存储于NFS设备,随着读写频率的进一步下降,存储策略改为2副本,第1副本仍在HDFS物理服务区集群上,但第2副本在NFS设备,最后,当读写频率降至最低(由用户定义),则将数据完全下沉至NFS设备。同理,伴随读写频率升高,数据文件活跃度增加,则数据文件的存储位置将反向提升,逐渐上升至标准HDFS的存储状态;
4.数据活跃度检测并实现根据动态采样决策存储状态切换的触发算法算法,伪代码如下(STATE1,STATE2,STATE3,STATE4分别对应图3中的4种状态):
STATE1TO2_READ_THRESHOLD=用户预设
STATE1TO2_WRITE_THRESHOLD=用户预设
STATE2TO3_THRESHOLD=用户预设
STATE2TO3_WRITE_THRESHOLD=用户预设
STATE3TO4_THRESHOLD=用户预设
STATE3TO4_WRITE_THRESHOLD=用户预设
WINDOW_SIZE=用户预设
State_transfer()
输入:sample当前时间窗口动态采样数量,包括读和写
当前状态state
输出:是否进行状态转换
首先有由户预设各个状态改变所需的读写阈值THRESHOLD和采样窗口长度(即采用评估所需的时间片长度),根据输入的采样窗口中的读写数量来评估是否需要对存储位置的状态进行调整。状态的向上/向下迁移取决于读写频率的改变
5.上述4种状态的读写详述如下:
a.流程状态1的读写流程数据标准的HDFS读写操作,见图4;
b.状态2的读写流程区别于1在于第3副本定位到用户制定的NFS目录,见图5,通常副本1和2保障足够的读命中率,因此在读场景下NFS带来的时延的情况低于1%;
c.状态3,将状态2中的第2个副本取消,见图6,直接由HDFS本地存储和NFS存储构成双副本策略,这种策略主要应对以读为主的场景,由第1副本的本地化存储来保障一定的读效率,当本地读写未能命中时,HDFS从NFS的用户预设目录下读取对应的数据块并封装HDFS协议返回给用户;
d.状态4是HDFS将文件读写直接代理给NFS,由HDFS的namenode负责协议转换(NFS到基于http的HDFS文件数据接口协议)操作,由于下沉到NFS的数据文件读写频率极低(由用户设定),因此额外的协议转换并未带来明显的操作延迟。
机译: 云环境下基于HADOOP分布式文件系统的HDFS DOCKER容器安全日志分析方法及系统
机译: 基于事件的分布式分层处理系统,基于事件的分布式分层处理系统中的处理方法以及通信系统。
机译: 基于学习机的闭环反馈的混合分布式/集中式路由技术,可避免出现暗区