CN108846021A - 一种基于用户访问偏好模型的海量小文件存储方法 - Google Patents

一种基于用户访问偏好模型的海量小文件存储方法 Download PDF

Info

Publication number
CN108846021A
CN108846021A CN201810500258.6A CN201810500258A CN108846021A CN 108846021 A CN108846021 A CN 108846021A CN 201810500258 A CN201810500258 A CN 201810500258A CN 108846021 A CN108846021 A CN 108846021A
Authority
CN
China
Prior art keywords
file
user
access
queue
small documents
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
CN201810500258.6A
Other languages
English (en)
Other versions
CN108846021B (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 CN201810500258.6A priority Critical patent/CN108846021B/zh
Priority to JP2018147290A priority patent/JP6642651B2/ja
Publication of CN108846021A publication Critical patent/CN108846021A/zh
Application granted granted Critical
Publication of CN108846021B publication Critical patent/CN108846021B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明公开了一种基于用户访问偏好模型的海量小文件存储方法,先结合用户访问偏好模型找出关联性文件集合,再依次将其添加到待合并队列中,如果待合并队列中的文件大小超过128MB,则先将队列中的所有文件合并成一个数据块,并清空待合并队列中的文件信息和删除已合并文件的源文件,直到所有文件都添加到待合并队列中。如果文件添加完,待合并队列中的文件大小不够128MB,则将该队列中所有文件合并成一个数据块,并清空待合并队列中的文件信息和删除已合并文件的源文件;最后将已合并的所有数据块存储到HDFS系统中。采用本发明技术方案能提高小文件的读取效率,减少HDFS系统中namenode内存的消耗。

Description

一种基于用户访问偏好模型的海量小文件存储方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于用户访问偏好模型的海量小文件存储方法。
背景技术
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块大小的大文件,并没有考虑到文件之间的关联性,使得小文件的读取效率不太理想。
发明内容
本发明实施例提出一种基于用户访问偏好模型的海量小文件存储方法,能提高小文件的读取效率,减少HDFS系统中namenode内存的消耗。
本发明实施例提供一种基于用户访问偏好模型的海量小文件存储方法,包括:
步骤A:当客户端上传待存储文件后,遍历HDFS上所有的文件,结合用户访问偏好模型找出所述待存储文件的关联性文件集合;其中,所述用户访问偏好模型是根据用户访问日志记录而统计得出;
步骤B:依次将所述关联性文件集合的中文件和所述待存储文件添加到待合并队列中;
步骤C:判断所述待合并队列中的所有文件总大小是否超过128MB,如果是,则执行步骤D;否则,执行步骤E;
步骤D:将所述待合并队列中的所有文件合并成一个数据块,并清空所述待合并队列中的文件信息和删除已合并文件的源文件,返回步骤B;
步骤E:判断所述关联性文件集合的中文件和所述待存储文件是否均添加到所述待合并队列中;如果是,则将所述待合并队列中的所有文件合并成一个数据块,并清空所述待合并队列中的文件信息和删除已合并文件的源文件,再执行步骤F;否则,返回步骤B;
步骤F:将已合并的所有数据块存储到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子集,并标记为活跃用户集。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的基于用户访问偏好模型的海量小文件存储方法,先结合用户访问偏好模型找出关联性文件集合,再依次将其添加到待合并队列中,如果待合并队列中的文件大小超过128MB,则先将队列中的所有文件合并成一个数据块,并清空待合并队列中的文件信息和删除已合并文件的源文件,直到所有文件都添加到待合并队列中。如果文件添加完,待合并队列中的文件大小不够128MB,则将该队列中所有文件合并成一个数据块,并清空待合并队列中的文件信息和删除已合并文件的源文件;最后将已合并的所有数据块存储到HDFS系统中。相比于现有技术不考虑小文件之间的关联性,本发明技术方案能提高小文件的读取效率,减少HDFS系统中namenode内存的消耗。
附图说明
图1是本发明提供的基于用户访问偏好模型的海量小文件存储方法的一种实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的基于用户访问偏好模型的海量小文件存储方法的一种实施例的流程示意图,该方法包括步骤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系统中。
本发明实施例提供的基于用户访问偏好模型的海量小文件存储方法,先结合用户访问偏好模型找出关联性文件集合,再依次将其添加到待合并队列中,如果待合并队列中的文件大小超过128MB,则先将队列中的所有文件合并成一个数据块,并清空待合并队列中的文件信息和删除已合并文件的源文件,直到所有文件都添加到待合并队列中。如果文件添加完,待合并队列中的文件大小不够128MB,则将该队列中所有文件合并成一个数据块,并清空待合并队列中的文件信息和删除已合并文件的源文件;最后将已合并的所有数据块存储到HDFS系统中。相比于现有技术不考虑小文件之间的关联性,本发明技术方案能提高小文件的读取效率,减少HDFS系统中namenode内存的消耗。
进一步的,本发明将多个具有关联的小文件合并成一个大文件后再存入系统,系统的namenode节点只会存有一份大文件所对应的元数据,namenode节点需要维护的元数据量会大大减少,内存的消耗也就会减小。
进一步的,本发明的合并的方式是将相关联文件合并在同一个大的文件中,文件被合并后是存储在同一个的datanode的同一个数据块中。当用户对文件的请求具有很强的关联性,即只要用户不断访问的小文件是合并在同一个大文件,根据文件访问原则,系统会选择较近datanode节点上的数据块读取,也就是不断的从同一个datanode的数据块读取数据,这样避免了不同文件访问时需要在不同的数据节点间跳转,减少了磁盘寻址开销,占用的系统资源相对较少,大大提高了文件的读取效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (3)

1.一种基于用户访问偏好模型的海量小文件存储方法,其特征在于,包括:
步骤A:当客户端上传待存储文件后,遍历HDFS上所有的文件,结合用户访问偏好模型找出所述待存储文件的关联性文件集合;其中,所述用户访问偏好模型是根据用户访问日志记录而统计得出;
步骤B:依次将所述关联性文件集合的中文件和所述待存储文件添加到待合并队列中;
步骤C:判断所述待合并队列中的所有文件总大小是否超过128MB,如果是,则执行步骤D;否则,执行步骤E;
步骤D:将所述待合并队列中的所有文件合并成一个数据块,并清空所述待合并队列中的文件信息和删除已合并文件的源文件,返回步骤B;
步骤E:判断所述关联性文件集合的中文件和所述待存储文件是否均添加到所述待合并队列中;如果是,则将所述待合并队列中的所有文件合并成一个数据块,并清空所述待合并队列中的文件信息和删除已合并文件的源文件,再执行步骤F;否则,返回步骤B;
步骤F:将已合并的所有数据块存储到HDFS系统中。
2.根据权利要求1所述的基于用户访问偏好模型的海量小文件存储方法,其特征在于,所述用户访问偏好模型是根据用户访问日志记录而统计得出,具体为:
从所述用户访问日志记录中统计得出活跃用户集;
采用bean对象表示所述活跃用户集访问过的小文件;所述小文件为大小小于或等于2MB的文件;其中,所述bean对象的属性包括访问该小文件的用户ID、用户访问过的小文件名、以及该小文件被其访问过的次数;
结合JDBC技术,将所述bean对象持久化到Mysql数据库存储,并根据存储的数据,计算任意两个不同访问行为的相似度;
当所述任意两个不同访问行为的相似度为正时,确定所述任意两个访问行为的用户为相似用户,将相似用户的id记录并采用关联性文件集合存储所有相似用户访问过且具有关联的文件信息;
根据所述关联性文件集合,构建所述用户访问偏好模型。
3.根据权利要求2所述的基于用户访问偏好模型的海量小文件存储方法,其特征在于,所述从所述用户访问日志记录中统计得出活跃用户集,具体为:
筛选出所述用户访问日志记录中访问资源后缀名以jpg结尾的记录行;其中,所述记录行包括:用户IP、访问页面URL、访问起始时间、访问状态、访问流量;
编写日志解析类对所述记录行进行解析,并使用一个二维数组来存储访问者IP和小文件名;
遍历所述二维数组中的访问者IP,并使用HashMap集合统计每一个访问者IP访问量;所述HashMap集合的Key值为访问者IP,Value值是访问量;
对所述HashMap集合按照Value值来进行降序排序,筛选出排名靠前20%的访问者IP,使用ArrayList集合存储该IP子集,并标记为活跃用户集。
CN201810500258.6A 2018-05-22 2018-05-22 一种基于用户访问偏好模型的海量小文件存储方法 Active CN108846021B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810500258.6A CN108846021B (zh) 2018-05-22 2018-05-22 一种基于用户访问偏好模型的海量小文件存储方法
JP2018147290A JP6642651B2 (ja) 2018-05-22 2018-08-04 ユーザアクセスプリファレンスモデルを用いたストレージ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810500258.6A CN108846021B (zh) 2018-05-22 2018-05-22 一种基于用户访问偏好模型的海量小文件存储方法

Publications (2)

Publication Number Publication Date
CN108846021A true CN108846021A (zh) 2018-11-20
CN108846021B CN108846021B (zh) 2021-10-26

Family

ID=64213287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810500258.6A Active CN108846021B (zh) 2018-05-22 2018-05-22 一种基于用户访问偏好模型的海量小文件存储方法

Country Status (2)

Country Link
JP (1) JP6642651B2 (zh)
CN (1) CN108846021B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069466A (zh) * 2019-04-15 2019-07-30 武汉大学 一种面向分布式文件系统的小文件存储方法及装置
CN115630021A (zh) * 2022-12-13 2023-01-20 中国华能集团清洁能源技术研究院有限公司 大数据环境下对象存储中小文件合并方法和装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377733B (zh) * 2021-06-09 2022-12-27 西安理工大学 一种针对Hadoop分布式文件系统的存储优化方法
CN113590566B (zh) * 2021-06-23 2023-10-27 河海大学 基于堆结构的SequenceFile存储优化方法、装置、设备及存储介质
CN117519608B (zh) * 2023-12-27 2024-03-22 泰安北航科技园信息科技有限公司 一种以Hadoop为核心的大数据服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160050247A1 (en) * 2014-08-04 2016-02-18 Media Group Of America Holdings, Llc Sorting information by relevance to individuals with passive data collection and real-time injection
CN105828096A (zh) * 2016-05-19 2016-08-03 网宿科技股份有限公司 媒体流文件的处理方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160050247A1 (en) * 2014-08-04 2016-02-18 Media Group Of America Holdings, Llc Sorting information by relevance to individuals with passive data collection and real-time injection
CN105828096A (zh) * 2016-05-19 2016-08-03 网宿科技股份有限公司 媒体流文件的处理方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XUN CAI: "An optimization strategy of massive small files storage based on HDFS", 《2018 JOINT INTERNATIONAL ADVANCED ENGINEERING AND TECHNOLOGY RESEARCH CONFERENCE》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069466A (zh) * 2019-04-15 2019-07-30 武汉大学 一种面向分布式文件系统的小文件存储方法及装置
CN115630021A (zh) * 2022-12-13 2023-01-20 中国华能集团清洁能源技术研究院有限公司 大数据环境下对象存储中小文件合并方法和装置

Also Published As

Publication number Publication date
JP6642651B2 (ja) 2020-02-12
CN108846021B (zh) 2021-10-26
JP2019204474A (ja) 2019-11-28

Similar Documents

Publication Publication Date Title
CN108804566B (zh) 一种基于Hadoop的海量小文件读取方法
CN108846021A (zh) 一种基于用户访问偏好模型的海量小文件存储方法
CN108932287B (zh) 一种基于Hadoop的海量小文件写入方法
US7689574B2 (en) Index and method for extending and querying index
Sharma et al. A brief review on leading big data models
KR101557294B1 (ko) 편집 거리 및 문서 정보를 이용한 검색 결과 랭킹
CN103366015B (zh) 一种基于Hadoop的OLAP数据存储与查询方法
WO2020024799A1 (zh) 一种时序数据的聚合优化处理方法
CN101996250A (zh) 一种基于Hadoop的海量流数据存储和查询方法及系统
CN103279532B (zh) 多集合元素去重并标识所属集合的过滤系统及其方法
JP2005525657A5 (zh)
CN101641695A (zh) 资源接入过滤系统及供与资源接入过滤系统一起使用的数据库结构
CN108984686A (zh) 一种基于日志合并的分布式文件系统索引方法和装置
CN106471501B (zh) 数据查询的方法、数据对象的存储方法和数据系统
CN103176754A (zh) 一种海量小文件读取存储方法
CN107391544B (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
CN106649870A (zh) 一种搜索引擎分布式实现方法
CN109710455A (zh) 基于fat32文件系统的删除文件恢复方法及系统
JP2011154467A (ja) 検索結果順位付け方法および検索結果順位付けシステム
CN111782686A (zh) 用户数据的查询方法、装置、电子设备及存储介质
JPWO2010084754A1 (ja) データベースシステム、データベース管理方法、及びデータベース構造
CN108932288B (zh) 一种基于Hadoop的海量小文件缓存方法
CN113468107A (zh) 数据处理方法、设备、存储介质及系统
CN114116827B (zh) 一种用户画像数据的查询系统及方法
CN108182244A (zh) 一种基于多层次列式存储结构的时序数据存储方法

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
CB02 Change of applicant information

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

Applicant after: GUANGDONG POLYTECHNIC NORMAL University

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

Applicant before: GUANGDONG POLYTECHNIC NORMAL University

GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20181120

Assignee: HUDONGPAI TECHNOLOGY CO.,LTD.

Assignor: GUANGDONG POLYTECHNIC NORMAL University

Contract record no.: X2023980039907

Denomination of invention: A massive small file storage method based on user access preference model

Granted publication date: 20211026

License type: Common License

Record date: 20230817