一种基于Hadoop的海事局船检大数据分布式存储系统技术方案

技术编号:33635412 阅读:14 留言:0更新日期:2022-06-02 01:46
本发明专利技术公开了一种基于Hadoop的海事局船检的大数据分布式存储方法。包括首先对海事局船检平台数据特征进行分析,通过在客户端与NameNode中间增加一个部门节点,优化HDFS处理海量小文件时表现出的性能低下的问题;其次,在该节点中实现对小文件的合并时,设立了小文件预处理模块和预取模块;同时对热点数据合并的后的大文件元数据信息进行缓存,达到对小文件的访问流程进行优化,缓解NameNode节点压力;小文件预处理模块和预取模块工作的同时,对热点数据合并的后的大文件元数据信息进行缓存,达到对小文件的访问流程进行优化。本发明专利技术解决了传统的HDFS在存储海量小文件时通常表现出性能低下的问题,针对海事局海量数据文件小的特性,更加方便文件存储。更加方便文件存储。更加方便文件存储。

【技术实现步骤摘要】
一种基于Hadoop的海事局船检大数据分布式存储系统


[0001]本专利技术涉及分布式存储系统领域,具体地涉及一种基于Hadoop的海事局船检大数据分布式系统存储方法。

技术介绍

[0002]随着互联网技术的快速发展,网络信息的规模呈现出指数性的增长。随着企业信息化建设的不断完善,传统的数据存储方式已经不能满足日常过程中产生的大量数据,因此越来越多的企业开始使用分布式文件系统。HDFS是Hadoop集群中最底层的存在,具有分布式存储海量数据的能力,由于其免费开源、可扩展、高容错的特性被广泛用于大量文件的分布式存储。
[0003]但HDFS随机选择存储节点进行数据存放的方式容易产生以下两点问题:易造成数据分布不均衡以及默认放置策略中没有考虑数据节点硬件差异。由于海事局存储的文件大多都是海量小文件,考虑到HDFS分布式系统以集群同构为前提进行数据信息的存储,设计时没有对集群中数据节点的硬件差异进行相应优化,在客户端发起文件请求时,会先访问NameNode节点获取对应文件的元数据信息,通过元数据找到对应DataNode节点查找所存储的数据。Hadoop设计的目的是为了存储较大的文件,在存储文件大小相同的情况下,存储大文件所消耗的NameNode内存更少,因此当存在大量小文件存储和访问请求时,NameNode就会表现出性能低下的问题。

技术实现思路

[0004]一种基于Hadoop的海事局船检的大数据分布式存储方法,以解决上述
技术介绍
中提出的问题。
[0005]为实现上诉目的,本专利技术提供如下技术方案:一种基于Hadoop的海事局船检的大数据分布式存储方法,包括如下步骤:
[0006]S1:海量小文件存储性能分析以及小文件大小的确定;
[0007]S2:小文件存储优化设计;
[0008]S3:文件预处理模块设计;
[0009]S4:小文件检索优化设计;
[0010]S5:缓存预取模块设计;
[0011]所述步骤S1具体包括以下步骤:
[0012]S1.1:采集海事局待分析的文件大小数据集,并进行量化分析;
[0013]S1.2:采用线性拟合的方法确定了分界点的文件大小;
[0014]所述步骤S2中优化的目标包括结点内存消耗、节点访问的时间频率,以及具体定义如下:
[0015]Hadoop分布式文件中有一个NameNode节点处于激活状态,并且NameNode节点不存储具体文件,只负责保存系统存储文件的元数据。假设HDFS本身在不存储文件时内存消耗
为a,一个BlockMap在NameNode中内存消耗为b,HDFS默认一个块大小为64MB,当存储大小依次为M1、M2、M3

、Mn的文件时,NameNode的内存消耗定义如下:
[0016][0017]其中表示文件存存入是被切分的块的数量,(368+b)表示文件存入是是被切分的块的数量,表示每个块的产生的列表信息占用的NameNode的内存,因此,要想降低NameNode节点内存消耗,我们需要减少文件块的数量。
[0018]读取N个大小依次为M1、M2、M3

Mn的文件,所消耗的时间为:进一步地,所述负载状态为磁盘使用率,磁盘使用率模型为:
[0019][0020]NameNode接收Client请求时间消耗,记为Tcn,Client接收到NameNode发回的元数据所消耗的时间,记为Tnc。Client接收到元数据后向DataNode发出请求所消耗的时间,记为Tcd。DataNode接收到请求后查询该文件所消耗的时间,记为Td。DataNode将查询到文件返回给Client所消耗的时间,记为Tdc。
[0021]其中C为块的数量HDFS在存储文件时,只要文件大小不超过默认分割数据块的大小,就会将每个文件进行独立存储,因此C=N,因此消耗的总时间计算公式为:
[0022][0023]因此只要减少与NameNode的交互次数,同时减少在NameNode中获取元数据信息所用时间,减少在DataNode中读取文件的时间,我们就可以提升HDFS的读取效率。
[0024]S3具体步骤如下:
[0025]S3.1添加一个部门节点。部门节点中包含文件预处理模块、文件预取模块和缓存模块。部门节点中包含文件预处理模块、文件预取模块和缓存模块。
[0026]S3.2判定客户端上传的文件大小将相关联的文件尽可能使其存储在连续的磁盘空间上,以此提高文件预取的命中率,降低文件读取延迟。
[0027]S3.3部门检测,在文件合并之初首先对小文件名中的部门ID号进行判定,部门ID号相同的文件加入同一文件合并等待队列。
[0028]S3.4此时采用MapFile技术对小文件进行合并。由于文件系统会对超过默认分割块大小的文件进行分块处理,为了避免我们的合并文件被切分存储,我们将合并队列的阈值设定为64MB。
[0029]在访问小文件时,首先会根据小文件名在新建立的部门节点中查找是否有要访问小文件对应的大文件的元数据缓存信息,如果没有则需要根据小文件名通过内存加载获得小文件在大文件中的偏移量以及大文件所在的数据块在DataNode上的位置信息,根据这些信息找到小文件的存储位置。
[0030]S5步骤如下:
[0031]S5.1将DataNode上的缓存区域划分为a个大小为M的缓存区域块。
[0032]S5.2由a和M的取值来决定缓存区域的大小,a和M的值可以根据节点资源进行调整,每个大小为M的区域缓存一个小文件。根据数据特点设计一个合适的缓存预取模块,能大大减少热点文件读取的时间消耗,进一步实现对小文件存储系统的优化。
[0033]S5.3采用缓存置换策略——最不经常使用策略,提高缓存效率。
附图说明
[0034]图1为本专利技术的一种数据存储架构示意图。
[0035]图2为本专利技术中数据存储架构流程图。
具体实施方式
[0036]实施例:
[0037]本专利技术提供如下技术方案:一种基于多目标优化的混合推荐系统及其方法,包括如下步骤:
[0038]S1:海量小文件存储性能分析以及小文件大小的确定;
[0039]S2:小文件存储优化设计;
[0040]S3:文件预处理模块设计;
[0041]S4:小文件检索优化设计;
[0042]S5:缓存预取模块设计;
[0043]根据权利要求书所述的一种基于Hadoop的海事局船检的大数据分布式存储方法,其特征在于,所述步骤S1具体包括以下步骤:
[0044]S1.1:采集海事局待分析的文件大小数据集,并进行量化分析;
[0045]S1.2:对23种大小不等的文件进行了量化分析,选取的文件大小均在0.5MB到64MB之间,通过分析不同大小的文件在处理过程中对内存消耗和访问性能的影响,采用线性拟合的方法确定了分界点的文件大小,大小为4.35本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Hadoop的海事局船检的大数据分布式存储方法,其特征在于,包括:对海事局船检平台数据特征进行分析,并确定分界点的文件大小;通过在客户端与NameNode中间增加一个部门节点,优化HDFS处理海量小文件时表现出的性能低下的问题;部门检测算法合并同属部门id,同时基于MapFile的方法通过键值对的序列化实现小文件到大文件的合并,建立小文件到大文件的映射;优化小文件检索,对数据合并的后的大文件元数据信息进行缓存,达到对小文件的访问流程进行优化,提升存取效率。2.一种基于Hadoop的海事局船检的大数据分布式存储方法,其特征在于,包括如下步骤:S1:海量小文件存储性能分析以及小文件大小的确定;S2:小文件存储优化设计;S3:文件预处理模块设计;S4:小文件检索优化设计;S5:缓存预取模块设计。3.根据权利要求2所述的一种基于Hadoop的海事局船检的大数据分布式存储方法,其特征在于,所述步骤S1具体包括以下步骤:S1.1:采集海事局待分析的文件大小数据集,并进行量化分析;S1.2:采用线性拟合的方法确定了分界点的文件大小。4.根据权利要求2所述的一种基于Hadoop的海事局船检的大数据分布式存储方法,其特征在于:所述步骤S2中优化的目标包括结点内存消耗、节点访问的时间频率,以及具体定义如下:Hadoop分布式文件中有一个NameNode节点处于激活状态,并且NameNode节点不存储具体文件,只负责保存系统存储文件的元数据;假设HDFS本身在不存储文件时内存消耗为a,一个BlockMap在NameNode中内存消耗为b,HDFS默认一个块大小为64MB,当存储大小依次为M1、M2、M3

、Mn的文件时,NameNode的内存消耗定义如下:其中表示文件存存入是被切分的块的数量,(368+b)表示文件存入是被切分的块的数量,表示每个块的产生的列表信息占用的NameNode的内存,因此,要想降低NameNode节点内存消耗,我们需要减少文件块的数量;读取N个大小依次为M1、M2、M3

Mn的文件,所消耗的时间为:进一步地,所述负载状态为磁盘使用率,磁盘使用率模型为:NameNode接收Client请求时间消耗,记为Tcn,Client接收到NameNode发回的元数据所消耗的时间,记为Tnc;...

【专利技术属性】
技术研发人员:邓酩谢刚侯立宪刘超柳庆龙
申请(专利权)人:桂林理工大学
类型:发明
国别省市:

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

1