CN108804566A - 一种基于Hadoop的海量小文件读取方法 - Google Patents

一种基于Hadoop的海量小文件读取方法 Download PDF

Info

Publication number
CN108804566A
CN108804566A CN201810499647.1A CN201810499647A CN108804566A CN 108804566 A CN108804566 A CN 108804566A CN 201810499647 A CN201810499647 A CN 201810499647A CN 108804566 A CN108804566 A CN 108804566A
Authority
CN
China
Prior art keywords
file
small documents
user
access
active ues
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810499647.1A
Other languages
English (en)
Other versions
CN108804566B (zh
Inventor
魏文国
彭建烽
戴青云
蔡君
赵慧民
谢桂园
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Polytechnic Normal University
Original Assignee
Guangdong Polytechnic Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Polytechnic Normal University filed Critical Guangdong Polytechnic Normal University
Priority to CN201810499647.1A priority Critical patent/CN108804566B/zh
Priority to JP2018147288A priority patent/JP6695537B2/ja
Publication of CN108804566A publication Critical patent/CN108804566A/zh
Application granted granted Critical
Publication of CN108804566B publication Critical patent/CN108804566B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于Hadoop的海量小文件读取方法,该读取方法适用于具有数据合并模块和HBase缓存模块的HDFS系统。该方法包括:接收用户输入的小文件读取命令;小文件读取命令包括用户ID和小文件文件名;根据用户ID和小文件文件名查询先查询HBase缓存模块,如果查询到相应的文件内容,则返回查询到的文件内容;如果查询不到相应的文件内容,则再去查询HDFS系统的数据库,如果查询到,则返回查询到的文件内容;否则,调用Hadoop archive工具的API访问对应的HAR文件,并返回HAR文件。本发明的读取方法在结合了小文件合并和HBase缓存机制后,能提高小文件的读取效率。

Description

一种基于Hadoop的海量小文件读取方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于Hadoop的海量小文件读取方法。
背景技术
Hadoop是Apache基金会在2005年作为Lucene的子项目Nutch中的一部分正式引入。Hadoop最关键的两大设计HDFS和MapReduce。而HDFS负责存储海量的数据,文件以数据块的形式存储在系统上。而HDFS的数据块比普通磁盘定义的数据块(一般是512B)大得多,HDFS目前默认的数据块大小是128MB。如果HDFS存储的文件大小大于128MB,它会将该文件切分成块大小的若干个分块,分开单独存储。而当HDFS不断的存储小文件量达到TB甚至PB级别时,小文件的问题就会产生,这是因为会有大量的元数据存储在HDFS的主节点namenode中,大大增加namenode的负载,从而会影响到系统的读取性能。其中,小文件的大小定义为2MB,即在HDFS存储文件中,当文件大小小于或等于2M,即被定义为小文件。
现有技术对于海量小文件的处理都是将若干个小文件合并成一个block块大小的大文件,并没有考虑到文件之间的关联性,使得小文件的读取效率不太理想。
发明内容
本发明实施例提出一种基于Hadoop的海量小文件读取方法,在结合小文件合并和HBase缓存机制后,能提高小文件的读取效率。
本发明实施例提供一种基于Hadoop的海量小文件读取方法,所述读取方法适用于具有数据合并模块和HBase缓存模块的HDFS系统;所述读取方法包括:
接收用户输入的小文件读取命令;其中,所述小文件读取命令包括用户ID和小文件文件名;
根据所述用户ID和所述小文件文件名查询所述HBase缓存模块;
如果查询到相应的文件内容,则返回所述HBase缓存模块查询到的文件内容;如果查询不到相应的文件内容,则根据所述小文件文件名查询所述HDFS系统的数据库,并判断是否查询到相应的文件内容;
如果是,则返回所述数据库查询到的文件内容;
否则,调用Hadoop archive工具的API访问所述小文件文件名对应的HAR文件,并返回所述HAR文件。
进一步的,所述数据合并模块采用的数据合并方法为:
步骤A:当客户端上传待存储文件后,遍历HDFS上所有的文件,结合用户访问偏好模型找出所述待存储文件的关联性文件集合;其中,所述用户访问偏好模型是根据用户访问日志记录而统计得出;
步骤B:依次将所述关联性文件集合的中文件和所述待存储文件添加到待合并队列中;
步骤C:判断所述待合并队列中的所有文件总大小是否超过128MB,如果是,则执行步骤D;否则,执行步骤E;
步骤D:将所述待合并队列中的所有文件合并成一个数据块,并清空所述待合并队列中的文件信息和删除已合并文件的源文件,返回步骤B;
步骤E:判断所述关联性文件集合的中文件和所述待存储文件是否均添加到所述待合并队列中;如果是,则将所述待合并队列中的所有文件合并成一个数据块,并清空所述待合并队列中的文件信息和删除已合并文件的源文件,再执行步骤F;否则,返回步骤B;
步骤F:将已合并的所有数据块存储到HDFS系统中。
进一步的,其特征在于,所述用户访问偏好模型是根据用户访问日志记录而统计得出,具体为:
从所述用户访问日志记录中统计得出活跃用户集;
采用bean对象表示所述活跃用户集访问过的小文件;所述小文件为大小小于或等于2MB的文件;其中,所述bean对象的属性包括访问该小文件的用户ID、用户访问过的小文件名、以及该小文件被其访问过的次数;
结合JDBC技术,将所述bean对象持久化到Mysql数据库存储,并根据存储的数据,计算任意两个不同访问行为的相似度;
当所述任意两个不同访问行为的相似度为正时,确定所述任意两个访问行为的用户为相似用户,将相似用户的id记录并采用关联性文件集合存储所有相似用户访问过且具有关联的文件信息;
根据所述关联性文件集合,构建所述用户访问偏好模型。
进一步的,其特征在于,所述HBase缓存模块采用的缓存方法为:
获取用户访问日志记录,并从所述用户访问日志记录中统计得出活跃用户集;
结合对数线性模型,计算出所述活跃用户集中每个活跃用户访问过的文件的热度预测值,并按照热度预测值由大到小将各文件进行排序,将排名前20%的文件标记为热点文件;
获取所述热点文件,并采用Hbase数据库缓存所述热点文件的相关信息。
进一步的,所述从所述用户访问日志记录中统计得出活跃用户集,具体为:
筛选出所述用户访问日志记录中访问资源后缀名以jpg结尾的记录行;其中,所述记录行包括:用户IP、访问页面URL、访问起始时间、访问状态、访问流量;
编写日志解析类对所述记录行进行解析,并使用一个二维数组来存储访问者IP和小文件名;
遍历所述二维数组中的访问者IP,并使用HashMap集合统计每一个访问者IP访问量;所述HashMap集合的Key值为访问者IP,Value值是访问量;
对所述HashMap集合按照Value值来进行降序排序,筛选出排名靠前20%的访问者IP,使用ArrayList集合存储该IP子集,并标记为活跃用户集。
进一步的,所述结合对数线性模型,计算出所述活跃用户集中每个活跃用户访问过的文件的热度预测值,并按照热度预测值由大到小将各文件进行排序,将排名前20%的文件标记为热点文件,具体为:
将从所述ArrayList集合提取出的访问者IP,与从所述二维数组中提取出访问者IP进行匹配;
当匹配成功后,以匹配成功的访问者IP作为关键词,查询出每个用户的访问起始时间,再结合对数线性模型,计算出所述活跃用户集中每个活跃用户访问过的文件的热度预测值,并按照热度预测值由大到小将各文件进行排序,将排名前20%的文件标记为热点文件;
所述对数线性模型为:lnNi=k(t)lnNi(t)+b(t);
其中,Ni为文件i的热度预测值,Ni(t)为文件i在观察时间内的访问量,观察时间长度为t。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的基于Hadoop的海量小文件读取方法,该读取方法适用于具有数据合并模块和HBase缓存模块的HDFS系统。该读取方法包括:接收用户输入的小文件读取命令;其中,小文件读取命令包括用户ID和小文件文件名;根据用户ID和小文件文件名查询先查询HBase缓存模块,如果查询到相应的文件内容,则返回查询到的文件内容;如果查询不到相应的文件内容,则再去查询HDFS系统的数据库,如果查询到,则返回查询到的文件内容;否则,调用Hadoop archive工具的API访问对应的HAR文件,并返回HAR文件。相比于现有技术不考虑小文件之间的关联性和热点文件,本发明的读取方法在结合了小文件合并和HBase缓存机制后,能提高小文件的读取效率。
附图说明
图1是本发明提供的基于Hadoop的海量小文件读取方法的一种实施例的流程示意图;
图2是本发明提供的数据合并方法的一种实施例的流程示意图;
图3是本发明提供的缓存方法的一种实施例的流程示意图;
图4是本发明提供的缓存方法的另一种实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的基于Hadoop的海量小文件读取方法的一种实施例的流程示意图,该方法包括步骤101至步骤105。该读取方法适用于具有数据合并模块和HBase缓存模块的HDFS系统,各步骤具体如下:
步骤101:接收用户输入的小文件读取命令;其中,小文件读取命令包括用户ID和小文件文件名。
步骤102:根据用户ID和小文件文件名查询HBase缓存模块,并判断是否查询到相应的文件内容,如果是,则执行步骤105,否则,执行步骤103。
步骤103:根据小文件文件名查询HDFS系统的数据库,并判断是否查询到相应的文件内容,如果是,则执行步骤105,否则,执行步骤104。
步骤104:调用Hadoop archive工具的API访问该小文件文件名所对应的HAR文件,并返回该HAR文件。
步骤105:返回查询到的文件内容。
参见图2,图2是本发明提供的数据合并方法的一种实施例的流程示意图,本发明的数据合并模块采用了图2所示的数据合并方法,包括步骤A至步骤F,各步骤具体如下:
步骤A:当客户端上传待存储文件后,遍历HDFS上所有的文件,结合用户访问偏好模型找出待存储文件的关联性文件集合;其中,用户访问偏好模型是根据用户访问日志记录而统计得出。
在本实施例中,用户访问偏好模型是根据用户访问日志记录而统计得出,具体为:从用户访问日志记录中统计得出活跃用户集;采用bean对象表示活跃用户集访问过的小文件;小文件为大小小于或等于2MB的文件;其中,bean对象的属性包括访问该小文件的用户ID、用户访问过的小文件名、以及该小文件被其访问过的次数;结合JDBC技术,将bean对象持久化到Mysql数据库存储,并根据存储的数据,计算任意两个不同访问行为的相似度;当任意两个不同访问行为的相似度为正时,确定任意两个访问行为的用户为相似用户,将相似用户的id记录并采用关联性文件集合存储所有相似用户访问过且具有关联的文件信息;根据关联性文件集合,构建用户访问偏好模型。
在本实施例中,从用户访问日志记录中统计得出活跃用户集,具体为:筛选出用户访问日志记录中访问资源后缀名以jpg结尾的记录行;其中,记录行包括:用户IP、访问页面URL、访问起始时间、访问状态、访问流量;编写日志解析类对记录行进行解析,并使用一个二维数组来存储访问者IP和小文件名;遍历二维数组中的访问者IP,并使用HashMap集合统计每一个访问者IP访问量;HashMap集合的Key值为访问者IP,Value值是访问量;对HashMap集合按照Value值来进行降序排序,筛选出排名靠前20%的访问者IP,使用ArrayList集合存储该IP子集,并标记为活跃用户集。
为了更好的说明本发明的模型构建过程,以下面的例子说明,具体实现过程如下:
(1)利用正则表达式筛选出访问资源后缀名以jpg结尾的记录行。
(2)编写日志解析类对记录行的五个组成部分进行单独的解析,使用一个二维数组来存储访问者IP、小文件名。
(3)遍历二维数组中的访问者IP元素,设计一个计数器统计每一个访问者IP访问量。使用一个HashMap集合,访问者IP作为Key值,Value值是该访问者的访问量。
(4)对步骤3产生的HashMap集合按照Value值来进行降序排序,筛选出排名靠前20%的访问者IP,使用ArrayList集合存储该IP子集,标记为活跃用户集。
(5)使用一个bean对象抽象表示活跃用户集访问过的小文件,对象的属性包括访问该小文件的用户ID,用户访问过的小文件名,以及该小文件被其访问过的次数。方法为获取属性的get、set方法。
(6)结合JDBC技术bean对象持久化到Mysql数据库存储,形成以下格式的表所示:
(7)在20行中两行之间取出数据,通过公式
计算出两个不同用户访问行为的相似度。其中,本发明采用Pearson相关系数确定相似用户,给定评分矩阵R,用户a和用户b的相似度采用sim(a,b)表示,ra、rb为“用户-访问量”评分矩阵的评分数据
(8)这里设定当sim(a,b)的值为正时,可以判定两个不同用户是相似用户,记录下他们的用户ID。
(9)根据相似用户的用户ID,使用一个集合存储所有相似用户访问过且具有关联的文件信息。
步骤B:依次将关联性文件集合的中文件和待存储文件添加到待合并队列中。
步骤C:判断待合并队列中的所有文件总大小是否超过128MB,如果是,则执行步骤D;否则,执行步骤E。
步骤D:将待合并队列中的所有文件合并成一个数据块,并清空待合并队列中的文件信息和删除已合并文件的源文件,返回步骤B。
步骤E:判断关联性文件集合的中文件和待存储文件是否均添加到待合并队列中;如果是,则将待合并队列中的所有文件合并成一个数据块,并清空待合并队列中的文件信息和删除已合并文件的源文件,再执行步骤F;否则,返回步骤B。
步骤F:将已合并的所有数据块存储到HDFS系统中。
参见图3,图3是本发明提供的缓存方法的一种实施例的流程示意图。本发明的HBase缓存模块采用了图3的缓存方法,该方法包括301至步骤303,各步骤具体如下:
步骤301:获取用户访问日志记录,并从用户访问日志记录中统计得出活跃用户集。
在本实施例中,步骤301中从用户访问日志记录中统计得出活跃用户集,具体为:筛选出用户访问日志记录中访问资源后缀名以jpg结尾的记录行;其中,记录行包括:用户IP、访问页面URL、访问起始时间、访问状态、访问流量;编写日志解析类对记录行进行解析,并使用一个二维数组来存储访问者IP和小文件名;遍历二维数组中的访问者IP,并使用HashMap集合统计每一个访问者IP访问量;HashMap集合的Key值为访问者IP,Value值是访问量;对HashMap集合按照Value值来进行降序排序,筛选出排名靠前20%的访问者IP,使用ArrayList集合存储该IP子集,并标记为活跃用户集。
本发明的步骤301要计算出活跃用户集的目的是,用户关于小文件的访问接近于帕累托分布规律而不是均匀的随机分布。即大部分的I/O请求访问少量的热门数据,大多数80%的访问量集中在20%的数据上。因此,如果能从文件系统存储的海量小文件通过模型预测出热点文件,再进行缓存,一定能将节省提高用户访问数据的效率。
步骤302:结合对数线性模型,计算出活跃用户集中每个活跃用户访问过的文件的热度预测值,并按照热度预测值由大到小将各文件进行排序,将排名前20%的文件标记为热点文件。
在本实施例中,步骤302具体为:将从ArrayList集合提取出的访问者IP,与从二维数组中提取出访问者IP进行匹配;当匹配成功后,以匹配成功的访问者IP作为关键词,查询出每个用户的访问起始时间,再结合对数线性模型,计算出活跃用户集中每个活跃用户访问过的文件的热度预测值,并按照热度预测值由大到小将各文件进行排序,将排名前20%的文件标记为热点文件;
对数线性模型为:lnNi=k(t)lnNi(t)+b(t);
其中,Ni为文件i的热度预测值,Ni(t)为文件i在观察时间内的访问量,观察时间长度为t。k(t)与b(t)是线性关系的相关参数,可以使用线性回归方法计算得到最优值。本发明的对数线性模型所提及到的观察时间长度t的定义是:用户访问日志记录中记录行的访问起始时间元素与收集到用户访问日志记录的时间差。例如收集到的用户访问日志记录的时间点是30/Jan/2018:17:38:20,而用户访问日志记录中记录行的访问起始时间为29/Jan/2018:10:35:15,观察时间长度是29/Jan/2018:10:35:15到30/Jan/2018:17:38:20之间的时间差,为了方便计算,时间长度以小时作为单位。
步骤303:获取热点文件,并采用Hbase数据库缓存热点文件的相关信息。
在本实施例中,采用Hbase数据库缓存热点文件的相关信息,HBase的表名值为访问者ID,HBase的RowKey设为小文件名,HBase的列族名为”file content”,Value值即单元格值为小文件内容。当用户访问HBase中的小文件时,只需根据用户ID作为表名和所要访问的小文件名作为HBase的get()方法的参数,就可以获取对应的小文件内容。
为了更好的说明本发明的缓存方法,参见图4,图4是本发明提供的缓存方法的另一种实施例的流程示意图。如图4所示,该流程包括:用户访问记录集→正则表达式过滤筛选出所需的记录行→解析记录行→使用bean对象封装好记录行信息→调研JDBC API将bean对象持久化到Mysql数据库→使用一个二维数组存储访问者IP与小文件名信息→遍历数组,统计出用户访问量→根据用户访问量进行排序,使用ArrayList集合存储活跃用户集的用户IP→将二维数组和活跃用户集中的访问者IP进行匹配→匹配成功时,以访问者IP作为关键词,提取出用户访问起始时间和访问量→使用文件热度预测公式计算出文件热度值→对文件热度值进行排序,标记处热点文件→HBase缓存热点文件相关信息。
由上可见,本发明实施例提供的基于Hadoop的海量小文件读取方法,该读取方法适用于具有数据合并模块和HBase缓存模块的HDFS系统。该读取方法包括:接收用户输入的小文件读取命令;其中,小文件读取命令包括用户ID和小文件文件名;根据用户ID和小文件文件名查询先查询HBase缓存模块,如果查询到相应的文件内容,则返回查询到的文件内容;如果查询不到相应的文件内容,则再去查询HDFS系统的数据库,如果查询到,则返回查询到的文件内容;否则,调用Hadoop archive工具的API访问对应的HAR文件,并返回HAR文件。相比于现有技术不考虑小文件之间的关联性和热点文件,本发明的读取方法在结合了小文件合并和HBase缓存机制后,能提高小文件的读取效率。
进一步的,本发明提供了一种数据合并方法,能提高小文件的读取效率,减少HDFS系统中namenode内存的消耗。
进一步的,本发明数据合并方法将多个具有关联的小文件合并成一个大文件后再存入系统,系统的namenode节点只会存有一份大文件所对应的元数据,namenode节点需要维护的元数据量会大大减少,内存的消耗也就会减小。
进一步的,本发明数据合并方式是将相关联文件合并在同一个大的文件中,文件被合并后是存储在同一个的datanode的同一个数据块中。当用户对文件的请求具有很强的关联性,即只要用户不断访问的小文件是合并在同一个大文件,根据文件访问原则,系统会选择较近datanode节点上的数据块读取,也就是不断的从同一个datanode的数据块读取数据,这样避免了不同文件访问时需要在不同的数据节点间跳转,减少了磁盘寻址开销,占用的系统资源相对较少,大大提高了文件的读取效率。
进一步的,本发明提供了一种缓存方法,相比于现有技术没有考虑用户访问的热点文件,本发明通过HBase缓存热度文件,不仅提高了缓存的命中率,而且加快了文件的读取效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (6)

1.一种基于Hadoop的海量小文件读取方法,其特征在于,所述读取方法适用于具有数据合并模块和HBase缓存模块的HDFS系统;所述读取方法包括:
接收用户输入的小文件读取命令;其中,所述小文件读取命令包括用户ID和小文件文件名;
根据所述用户ID和所述小文件文件名查询所述HBase缓存模块;
如果查询到相应的文件内容,则返回所述HBase缓存模块查询到的文件内容;如果查询不到相应的文件内容,则根据所述小文件文件名查询所述HDFS系统的数据库,并判断是否查询到相应的文件内容;
如果是,则返回所述数据库查询到的文件内容;
否则,调用Hadoop archive工具的API访问所述小文件文件名对应的HAR文件,并返回所述HAR文件。
2.根据权利要求1所述的基于Hadoop的海量小文件读取方法,其特征在于,所述数据合并模块采用的数据合并方法为:
步骤A:当客户端上传待存储文件后,遍历HDFS上所有的文件,结合用户访问偏好模型找出所述待存储文件的关联性文件集合;其中,所述用户访问偏好模型是根据用户访问日志记录而统计得出;
步骤B:依次将所述关联性文件集合的中文件和所述待存储文件添加到待合并队列中;
步骤C:判断所述待合并队列中的所有文件总大小是否超过128MB,如果是,则执行步骤D;否则,执行步骤E;
步骤D:将所述待合并队列中的所有文件合并成一个数据块,并清空所述待合并队列中的文件信息和删除已合并文件的源文件,返回步骤B;
步骤E:判断所述关联性文件集合的中文件和所述待存储文件是否均添加到所述待合并队列中;如果是,则将所述待合并队列中的所有文件合并成一个数据块,并清空所述待合并队列中的文件信息和删除已合并文件的源文件,再执行步骤F;否则,返回步骤B;
步骤F:将已合并的所有数据块存储到HDFS系统中。
3.根据权利要求2所述的基于Hadoop的海量小文件读取方法,其特征在于,其特征在于,所述用户访问偏好模型是根据用户访问日志记录而统计得出,具体为:
从所述用户访问日志记录中统计得出活跃用户集;
采用bean对象表示所述活跃用户集访问过的小文件;所述小文件为大小小于或等于2MB的文件;其中,所述bean对象的属性包括访问该小文件的用户ID、用户访问过的小文件名、以及该小文件被其访问过的次数;
结合JDBC技术,将所述bean对象持久化到Mysql数据库存储,并根据存储的数据,计算任意两个不同访问行为的相似度;
当所述任意两个不同访问行为的相似度为正时,确定所述任意两个访问行为的用户为相似用户,将相似用户的id记录并采用关联性文件集合存储所有相似用户访问过且具有关联的文件信息;
根据所述关联性文件集合,构建所述用户访问偏好模型。
4.根据权利要求1所述的基于Hadoop的海量小文件读取方法,其特征在于,其特征在于,所述HBase缓存模块采用的缓存方法为:
获取用户访问日志记录,并从所述用户访问日志记录中统计得出活跃用户集;
结合对数线性模型,计算出所述活跃用户集中每个活跃用户访问过的文件的热度预测值,并按照热度预测值由大到小将各文件进行排序,将排名前20%的文件标记为热点文件;
获取所述热点文件,并采用Hbase数据库缓存所述热点文件的相关信息。
5.根据权利要求4所述的基于Hadoop的海量小文件读取方法,其特征在于,所述从所述用户访问日志记录中统计得出活跃用户集,具体为:
筛选出所述用户访问日志记录中访问资源后缀名以jpg结尾的记录行;其中,所述记录行包括:用户IP、访问页面URL、访问起始时间、访问状态、访问流量;
编写日志解析类对所述记录行进行解析,并使用一个二维数组来存储访问者IP和小文件名;
遍历所述二维数组中的访问者IP,并使用HashMap集合统计每一个访问者IP访问量;所述HashMap集合的Key值为访问者IP,Value值是访问量;
对所述HashMap集合按照Value值来进行降序排序,筛选出排名靠前20%的访问者IP,使用ArrayList集合存储该IP子集,并标记为活跃用户集。
6.根据权利要求5所述的基于Hadoop的海量小文件读取方法,其特征在于,所述结合对数线性模型,计算出所述活跃用户集中每个活跃用户访问过的文件的热度预测值,并按照热度预测值由大到小将各文件进行排序,将排名前20%的文件标记为热点文件,具体为:
将从所述ArrayList集合提取出的访问者IP,与从所述二维数组中提取出访问者IP进行匹配;
当匹配成功后,以匹配成功的访问者IP作为关键词,查询出每个用户的访问起始时间,再结合对数线性模型,计算出所述活跃用户集中每个活跃用户访问过的文件的热度预测值,并按照热度预测值由大到小将各文件进行排序,将排名前20%的文件标记为热点文件;
所述对数线性模型为:lnNi=k(t)lnNi(t)+b(t);
其中,Ni为文件i的热度预测值,Ni(t)为文件i在观察时间内的访问量,观察时间长度为t。
CN201810499647.1A 2018-05-22 2018-05-22 一种基于Hadoop的海量小文件读取方法 Active CN108804566B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810499647.1A CN108804566B (zh) 2018-05-22 2018-05-22 一种基于Hadoop的海量小文件读取方法
JP2018147288A JP6695537B2 (ja) 2018-05-22 2018-08-04 Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810499647.1A CN108804566B (zh) 2018-05-22 2018-05-22 一种基于Hadoop的海量小文件读取方法

Publications (2)

Publication Number Publication Date
CN108804566A true CN108804566A (zh) 2018-11-13
CN108804566B CN108804566B (zh) 2019-11-29

Family

ID=64091399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810499647.1A Active CN108804566B (zh) 2018-05-22 2018-05-22 一种基于Hadoop的海量小文件读取方法

Country Status (2)

Country Link
JP (1) JP6695537B2 (zh)
CN (1) CN108804566B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656958A (zh) * 2018-12-18 2019-04-19 北京小米移动软件有限公司 数据查询方法以及系统
CN110647497A (zh) * 2019-07-19 2020-01-03 广东工业大学 一种基于hdfs的高性能文件存储与管理系统
CN111159120A (zh) * 2019-12-16 2020-05-15 西门子电力自动化有限公司 电力系统处理文件的方法、装置与系统
CN111190926A (zh) * 2019-11-25 2020-05-22 腾讯云计算(北京)有限责任公司 资源缓存方法、装置、设备及存储介质
WO2020125630A1 (zh) * 2018-12-17 2020-06-25 新华三大数据技术有限公司 文件读取
CN112532724A (zh) * 2020-11-27 2021-03-19 上海爱数信息技术股份有限公司 一种文件传输系统及其方法
CN117519608A (zh) * 2023-12-27 2024-02-06 泰安北航科技园信息科技有限公司 一种以Hadoop为核心的大数据服务器

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111460229B (zh) * 2020-02-23 2023-06-09 华中科技大学 单用户多工作负载之间json解析优化方法和系统
CN111367857B (zh) * 2020-03-03 2023-06-16 中国联合网络通信集团有限公司 数据存储方法、装置、ftp服务器及存储介质
CN111930684A (zh) * 2020-07-28 2020-11-13 苏州亿歌网络科技有限公司 基于hdfs的小文件处理方法、装置、设备及存储介质
CN113190577B (zh) * 2021-03-11 2022-08-30 新华三大数据技术有限公司 一种表连接查询方法、装置及存储介质
CN113722274B (zh) * 2021-08-09 2024-10-11 河南农业大学 一种R-tree索引遥感数据存储模型

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104820714A (zh) * 2015-05-20 2015-08-05 国家电网公司 基于hadoop的海量瓦片小文件存储管理方法
CN106294374A (zh) * 2015-05-15 2017-01-04 北京国双科技有限公司 小文件合并的方法和数据查询系统
CN107577809A (zh) * 2017-09-27 2018-01-12 北京锐安科技有限公司 离线小文件处理方法及装置
CN108053863A (zh) * 2017-12-22 2018-05-18 中国人民解放军第三军医大学第附属医院 适合大小文件的海量医疗数据存储系统及数据存储方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294374A (zh) * 2015-05-15 2017-01-04 北京国双科技有限公司 小文件合并的方法和数据查询系统
CN104820714A (zh) * 2015-05-20 2015-08-05 国家电网公司 基于hadoop的海量瓦片小文件存储管理方法
CN107577809A (zh) * 2017-09-27 2018-01-12 北京锐安科技有限公司 离线小文件处理方法及装置
CN108053863A (zh) * 2017-12-22 2018-05-18 中国人民解放军第三军医大学第附属医院 适合大小文件的海量医疗数据存储系统及数据存储方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANAND S S, MOBASHER B: "Introduction to intelligent techniques for Web personalization", 《ACM TRANSACTIONS ON INTERNET TECHNOLOGY》 *
宋晓东: "Hadoop分布式文件系统小文件数据存储性能的优化方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
彭建烽,魏文国,郑东炜: "基于Hadoop 的海量小文件合并的研究与设计", 《广东技术师范学院学报》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020125630A1 (zh) * 2018-12-17 2020-06-25 新华三大数据技术有限公司 文件读取
CN109656958A (zh) * 2018-12-18 2019-04-19 北京小米移动软件有限公司 数据查询方法以及系统
CN110647497A (zh) * 2019-07-19 2020-01-03 广东工业大学 一种基于hdfs的高性能文件存储与管理系统
CN111190926A (zh) * 2019-11-25 2020-05-22 腾讯云计算(北京)有限责任公司 资源缓存方法、装置、设备及存储介质
CN111190926B (zh) * 2019-11-25 2023-04-07 腾讯云计算(北京)有限责任公司 资源缓存方法、装置、设备及存储介质
CN111159120A (zh) * 2019-12-16 2020-05-15 西门子电力自动化有限公司 电力系统处理文件的方法、装置与系统
CN112532724A (zh) * 2020-11-27 2021-03-19 上海爱数信息技术股份有限公司 一种文件传输系统及其方法
CN117519608A (zh) * 2023-12-27 2024-02-06 泰安北航科技园信息科技有限公司 一种以Hadoop为核心的大数据服务器
CN117519608B (zh) * 2023-12-27 2024-03-22 泰安北航科技园信息科技有限公司 一种以Hadoop为核心的大数据服务器

Also Published As

Publication number Publication date
JP6695537B2 (ja) 2020-05-20
JP2019204472A (ja) 2019-11-28
CN108804566B (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
CN108804566B (zh) 一种基于Hadoop的海量小文件读取方法
CN108932287B (zh) 一种基于Hadoop的海量小文件写入方法
Sharma et al. A brief review on leading big data models
Chen et al. Ti: an efficient indexing mechanism for real-time search on tweets
CN108846021A (zh) 一种基于用户访问偏好模型的海量小文件存储方法
CN103366015B (zh) 一种基于Hadoop的OLAP数据存储与查询方法
CN101055580B (zh) 用于检索文档的系统、方法及用户接口
Chen et al. Diversity-aware top-k publish/subscribe for text stream
CN102521406A (zh) 海量结构化数据复杂查询任务的分布式查询方法和系统
CN108932288A (zh) 一种基于Hadoop的海量小文件缓存方法
Bhavithra et al. Personalized web page recommendation using case-based clustering and weighted association rule mining
JP2007526537A (ja) 持続的にイベントデータを記憶および提供するためのサーバアーキテクチャおよび方法
CN108460121A (zh) 智慧城市中时空数据小文件合并方法
Kim et al. Efficient distributed selective search
CN111159176A (zh) 一种海量流数据的存储和读取的方法和系统
Keeton et al. Lazybase: freshness vs. performance in information management
Holzmann et al. Tempas: Temporal archive search based on tags
Zhou et al. Improving big data storage performance in hybrid environment
CN110858210A (zh) 数据查询方法及装置
Lian The construction of personalized Web page recommendation system in e-commerce
Li et al. On mining webclick streams for path traversal patterns
JP5655764B2 (ja) サンプリング装置、サンプリングプログラム、およびその方法
Nouvellet et al. A Quantitative analysis of digital library user behaviour based on access logs
Liu et al. P-index: An efficient searchable metadata indexing scheme based on data provenance in cold storage
Wei et al. MDDM: A method to improve multiple dimension data management performance in HBase

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 510000 No. 293 Shipai Zhongshan Avenue, Tianhe District, Guangzhou City, Guangdong Province

Applicant after: Guangdong Normal University of Technology

Address before: 510665 293 Zhongshan Avenue, Tianhe District, Guangzhou, Guangdong.

Applicant before: Guangdong Technical Normal College

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant