System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种Hadoop文件划分方法、装置、设备及存储介质制造方法及图纸_技高网

一种Hadoop文件划分方法、装置、设备及存储介质制造方法及图纸

技术编号:40948953 阅读:4 留言:0更新日期:2024-04-18 20:23
本申请公开了一种Hadoop文件划分方法、装置、设备及存储介质,涉及数据存储领域,包括:采集Hadoop分区文件的分区文件信息和基于Spark SQL的文件执行情况;根据分区文件信息和文件执行情况基于数据划分规则将Hadoop分区文件划分为冷数据和热数据,并根据划分后的冷数据和热数据生成文件重划分计划;根据预设哈希算法确定Hadoop分区文件的哈希值,基于哈希值利用Hadoop分布式文件存储系统根据文件重划分计划对Hadoop分区文件重划分。通过采集分区文件信息和Spark SQL执行情况,生成文件划分计划实现分区文件重划分,并通过Hadoop机制保证数据一致性,降低对数据使用的影响。

【技术实现步骤摘要】

本专利技术涉及数据存储领域,特别涉及一种hadoop文件划分方法、装置、设备及存储介质。


技术介绍

1、企业大数据仓库数据存储往往采用hadoop作为数据存储的方案,同一份数据在hadoop上一个分区里面存储,可以存储成多份小文件,也可以存储成一份大文件,具体要选择怎么存储要兼顾稳定性和使用效率,但是在数据存储时可能存在一些问题,具体如下:

2、1.过多小文件会造成集群不稳定;目前生产上使用hadoop集群设置的hdfs(hadoop distributed file system,hadoop分布式文件系统)block大小是128mb,如果同一份文件存储成多个小文件,比如一份大小为100mb的文件,存储成1个100mb的文件,将在hdfs上占用1个block;如果存储成10个10mb的小文件,将在hdfs上占用10个block;block越多hadoop集群namenode负载越高,将会造成集群不稳定;

3、2.过少的文件会影响计算效率;企业如果采用spark sql(spark structurequery language,结构化查询语言处理模块)作为数据仓库查询的引擎,能同时并行task数量和hadoop文件数量往往保持一致的。例如在集群yarn资源空闲的情况下,大小为100mb的文件,如果存储成10个小文件,可同时启动10个task用于计算;而如果存储成1个文件,只能启动1个task进行计算;显然前者效率在不考虑资源的情况下是后者的10倍。

4、同时,随着数据应用会产生新的数据文件,同一个表随着每日插入新数据,某些分区会产生一些新的数据文件,也会增加namenode的压力。数据文件压缩或者切分过程本身对于hdfs底层数据有影响,在存储和计算引擎不统一情况下,存储变化往往会影响正在计算的结果,此时如果因为文件重划分造成计算出错误的数据将不可接受,并且如果因为重划分时间过长,造成计算长时间不可执行也将会影响生产效率。因此,如何在使用hadoop作为数据存储方案时合理规划文件大小是本领域有待解决的问题。


技术实现思路

1、有鉴于此,本专利技术的目的在于提供一种基于hadoop的文件划分方法、装置、设备及存储介质,通过采集分区文件信息和sparksql执行情况,生成文件划分计划实现分区文件重划分,并通过hadoop机制保证数据一致性,降低对数据使用的影响。其具体方案如下:

2、第一方面,本申请提供了一种基于hadoop的文件划分方法,包括:

3、采集hadoop集群中hadoop分区文件的分区文件信息和所述hadoop分区文件在第一预设时间范围内基于spark sql的文件执行情况;

4、根据所述分区文件信息和所述文件执行情况基于预设数据划分规则将所述hadoop分区文件划分为冷数据和热数据,并根据划分后的得到的所述冷数据和所述热数据生成文件重划分计划;

5、根据预设哈希算法确定所述hadoop分区文件的哈希值,基于所述哈希值利用hadoop分布式文件存储系统根据所述文件重划分计划对所述hadoop分区文件进行重划分。

6、可选的,所述采集hadoop集群中hadoop分区文件的分区文件信息和所述hadoop分区文件在第一预设时间范围内基于spark sql的文件执行情况,包括:

7、统计所述hadoop分布式文件存储系统中预设路径下的所述hadoop分区文件的文件创建时间和更新时间,并确定在所述第一预设时间范围内存在spark sql查询的分区数据路径;

8、相应的,所述根据所述分区文件信息和所述文件执行情况基于预设数据划分规则将所述hadoop分区文件划分为冷数据和热数据,包括:

9、根据所述文件创建时间和所述更新时间确定出目标路径和所述目标路径对应的冷数据分区,将所述冷数据分区中的所述hadoop分区文件划分为冷数据,并生成所述冷数据对应的冷数据重划分计划;所述冷数据分区中的所述hadoop分区文件的所述文件创建时间和所述更新时间不在所述第一预设时间范围内;

10、根据除所述目标路径外的所述分区数据路径确定对应的热数据分区,将所述热数据分区中的所述hadoop分区文件划分为热数据,并生成所述热数据对应的热数据重划分计划。

11、可选的,所述生成所述冷数据对应的冷数据重划分计划,包括:

12、若所述冷数据对应的所述hadoop分区文件在所述第一预设时间范围内连续被划分为冷数据且未执行过所述冷数据重划分计划,则生成所述冷数据重划分计划,以将所述冷数据分区中的所述冷数据根据预设数据合并规则进行合并。

13、可选的,所述生成所述热数据对应的热数据重划分计划,包括:

14、若所述热数据对应的所述hadoop分区文件在第二预设时间范围内连续被划分为热数据且未执行过所述热数据重划分计划,则确定所述热数据的平均文件占用内存;

15、若所述平均文件占用内存满足预设热数据重划分条件,则基于预设文件数量确定规则确定所述热数据重划分计划的重划分文件数量,并根据所述重划分文件数量生成所述热数据重划分计划,以根据所述热数据重划分计划对所述热数据进行重划分。

16、可选的,所述若所述平均文件占用内存满足预设热数据重划分条件,则基于预设文件数量确定规则确定所述热数据重划分计划的重划分文件数量,包括:

17、若所述平均文件占用内存小于预设第一文件占用内存,则利用预设重划分文件占用内存和当前所述热数据分区的热数据文件占用内存确定所述重划分文件数量;

18、若所述平均文件占用内存大于预设第二文件占用内存,则根据所述文件执行情况判断是否存在在所述第二预设时间范围内文件执行时间大于预设期望执行时间的所述热数据,并在存在时,根据预设文件扩增倍数和当前所述热数据分区的热数据文件数量确定所述重划分文件数量;

19、若所述平均文件占用内存不小于所述预设第一文件占用内存,且不存在所述文件执行时间大于所述预设期望执行时间的所述热数据,则根据预设均衡重划分计划确定所述重划分文件数量。

20、可选的,所述基于所述哈希值利用hadoop分布式文件存储系统根据所述文件重划分计划对所述hadoop分区文件进行重划分的过程中,还包括:

21、采集所述文件重划分计划对应的所述hadoop分区文件的第一文件数量和第一哈希值,并根据所述文件重划分计划在所述文件重划分计划对应的目标分区中生成新的隐藏文件;

22、将所述第一文件数量和所述第一哈希值与所述目标分区中的非隐藏文件的第二文件数量和第二哈希值进行对比,若对比结果不一致,则删除所述隐藏文件并在预设时间后跳转至所述根据所述文件重划分计划在所述文件重划分计划对应的目标分区中生成新的隐藏文件的步骤。

23、可选的,所述将所述第一文件数量和所述第一哈希值与所述目标分区中的非隐藏文件的第二文件数量和第二哈希值进行对比之后,还包括:

...

【技术保护点】

1.一种基于Hadoop的文件划分方法,其特征在于,包括:

2.根据权利要求1所述的基于Hadoop的文件划分方法,其特征在于,所述采集Hadoop集群中Hadoop分区文件的分区文件信息和所述Hadoop分区文件在第一预设时间范围内基于Spark SQL的文件执行情况,包括:

3.根据权利要求2所述的基于Hadoop的文件划分方法,其特征在于,所述生成所述冷数据对应的冷数据重划分计划,包括:

4.根据权利要求2所述的基于Hadoop的文件划分方法,其特征在于,所述生成所述热数据对应的热数据重划分计划,包括:

5.根据权利要求4所述的基于Hadoop的文件划分方法,其特征在于,所述若所述平均文件占用内存满足预设热数据重划分条件,则基于预设文件数量确定规则确定所述热数据重划分计划的重划分文件数量,包括:

6.根据权利要求1至5任一项所述的基于Hadoop的文件划分方法,其特征在于,所述基于所述哈希值利用Hadoop分布式文件存储系统根据所述文件重划分计划对所述Hadoop分区文件进行重划分的过程中,还包括:

7.根据权利要求6所述的基于Hadoop的文件划分方法,其特征在于,所述将所述第一文件数量和所述第一哈希值与所述目标分区中的非隐藏文件的第二文件数量和第二哈希值进行对比之后,还包括:

8.一种基于Hadoop的文件划分装置,其特征在于,包括:

9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的基于Hadoop的文件划分方法。

10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于Hadoop的文件划分方法。

...

【技术特征摘要】

1.一种基于hadoop的文件划分方法,其特征在于,包括:

2.根据权利要求1所述的基于hadoop的文件划分方法,其特征在于,所述采集hadoop集群中hadoop分区文件的分区文件信息和所述hadoop分区文件在第一预设时间范围内基于spark sql的文件执行情况,包括:

3.根据权利要求2所述的基于hadoop的文件划分方法,其特征在于,所述生成所述冷数据对应的冷数据重划分计划,包括:

4.根据权利要求2所述的基于hadoop的文件划分方法,其特征在于,所述生成所述热数据对应的热数据重划分计划,包括:

5.根据权利要求4所述的基于hadoop的文件划分方法,其特征在于,所述若所述平均文件占用内存满足预设热数据重划分条件,则基于预设文件数量确定规则确定所述热数据重划分计划的重划分文件数量,包括:

6.根据权利要求1至5任一项所述的基于ha...

【专利技术属性】
技术研发人员:杨晨李杨冯彦明杨得力曹闯孙喜锋周锋李响
申请(专利权)人:河南中原消费金融股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1