CN108491277A - 一种中小学生学习资源实时热点协同过滤及推荐的方法 - Google Patents

一种中小学生学习资源实时热点协同过滤及推荐的方法 Download PDF

Info

Publication number
CN108491277A
CN108491277A CN201711459240.8A CN201711459240A CN108491277A CN 108491277 A CN108491277 A CN 108491277A CN 201711459240 A CN201711459240 A CN 201711459240A CN 108491277 A CN108491277 A CN 108491277A
Authority
CN
China
Prior art keywords
real
kafka message
data
students
recommendation
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.)
Pending
Application number
CN201711459240.8A
Other languages
English (en)
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.)
South China Normal University
Original Assignee
South China 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 South China Normal University filed Critical South China Normal University
Priority to CN201711459240.8A priority Critical patent/CN108491277A/zh
Publication of CN108491277A publication Critical patent/CN108491277A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种中小学生学习资源实时热点协同过滤及推荐的方法,包括如下的步骤:步骤1)首先启动zookeeper程序和kafka消息队列集群,在zookeeper程序里面配置好kafka消息队列集群;步骤2)客户端提交用户读写请求给服务器端,其将读写请求之后首先将用户的读写请求写入到kafka消息队列集群;步骤3)服务器端内的服务模块取出需要处理的读写请求消息;步骤4)服务模块通过去噪模块进行噪化处理;步骤5)将用户请求和去噪之后的数据提交给Spark Streaming框架进行实时处理;步骤6)将排名结果写入到redis模块,步骤7)客户端接收到消息之后就进行结果的显示。

Description

一种中小学生学习资源实时热点协同过滤及推荐的方法
技术领域
本发明涉及一种协同过滤方法,尤其是一种基于Spark框架的中小学生学习资源实时热点协同过滤及推荐的方法。
背景技术
在中小学生学习资源系统之中,除了有通过题库进行学习资源的搜索,基于用户的行为数据进行的学习资源推荐等技术之外,学生知道对于现在这一刻来说哪些学习资源有着最高的热度,有最高分的评价也是非常重要的功能。学生除了知道自己的学习资源推荐之外,若能够知道现在大家最关心,最多人参与讨论,以及是通过最多人评分来得出的最精辟的学习资源,那么学生就能够去一起参与到这些学习资源的讨论,交流,评分当中,于是,学习资源的排名系统也就应运而生。
现有技术主要存在以下缺点:
1.缺乏了有效的数据备份及容灾策略。现有技术之中,都设计了怎么样去完成目标,使功能达到预期,但是,这放在实践之中还不可行,原因就是现有技术之中缺乏了数据的备份以及是数据的融在策略,这样在平时不出问题,一切都按照预期来的时候还不会出问题,但是当遇到了突发情况或者紧急情况时,整个系统就会不堪一击,脆弱无比。
2.缺乏可靠的消息处理机制。现有技术之中,也有使用Spark框架进行处理以及是利用HBase的强一致性和实时性进行实时监测,但是并没有在该种技术发明之中提到任何关于可靠性处理的方法。可靠性是系统实现之中一个重中之重的部分,没有消息传递的可靠性保证,就极容易在消息传递的过程之中出现丢失或发送错误,又或者是不知道消息的处理结果而做出错误的执行。这些种种行为都会导致系统处理出现混乱,甚至是整个系统不可用,严重损害了用户的利益。
3.在实时处理方面不够优化。现有技术之中,虽基于spark进行实时计算,以HBase的实时性作为数据持久化的方式,但是这种实现方式是可以有很大的改进和提升空间的。虽然HBase以实时性作为它的一大优势,但是它只要数据超过一个阈值,终究还是会存储到硬盘上面,于是在读写的时候就是会比读写缓存慢,这样,就会影响了实时处理的速度,使得实时处理达不到实时的要求。
发明内容
有鉴于此,本发明的主要目的是提供一种中小学生学习资源实时热点协同过滤及推荐的方法,本发明着眼于消息可靠以及是数据的备份及容灾。消息可靠是每一个实时技术都应该具备的基本要求,倘若不能保证消息可靠,不但用户的数据,隐私都会出现严重的安全问题,而且后台系统的运行也会出现混乱最终崩溃。而数据备份则是为了达到容灾的目的,在一些节点宕机的时候依然能够迅速恢复出该节点上面的数据,不影响系统的正常运行以及是用户作业的及时处理。
其采用的技术方案是:
一种中小学生学习资源实时热点协同过滤及推荐的方法,包括如下的步骤:
步骤1)首先启动zookeeper程序和kafka消息队列集群,在zookeeper程序里面配置好kafka消息队列集群;当有读写请求到来时,kafka消息队列集群就会先将请求提交给leader,等到leader成功执行之后follower再跟随leader执行;
步骤2)客户端提交用户读写请求给服务器端,服务器端接收到客户端的读写请求之后首先将用户的读写请求写入到kafka消息队列集群;
步骤3)服务器端内的服务模块从kafka消息队列里面取出需要处理的读写请求消息;
步骤4)服务模块视自己的实现逻辑通过去噪模块进行噪化处理;
步骤5)将用户请求和去噪之后的数据提交给Spark Streaming框架进行实时处理;
步骤6)将排名结果写入到redis模块,当redis模块的数据超过设定的阈值时,就持久化到hbase数据库,并且将处理结果写入到kafka消息队列集群,kafka消息队列集群就将消息返回给客户端;
步骤7)客户端接收到消息之后就进行结果的显示。
在步骤1)中,启动kafka消息队列集群之后,zookeeper程序就能够通过zab协议选举出kafka消息队列集群里面的leader,然后集群里面选不到leader的就成为follower。
在步骤3)中,在kafka消息队列内设置有发布订阅模块,每一个服务模块都对一种类型的消息进行订阅,当有这种类型的消息到来时,kafka消息队列就会将该消息发布给对应的服务模块。
在步骤4)中,在去噪化过程中,去除用户恶意评价,而对于当前热度,讨论度排名则是不需要进行去噪化处理。
在步骤4)中,Spark Streaming框架将每一个数据片的数据转换为分布式弹性数据集,然后对分布式弹性数据集进行迭代计算和转换,最后得出排名结果。
所述Spark Streaming框架对于热度的实时排名处理,则是对结果进行累加,统计出实时结果,并且在内存之中进行top n排序,对于实时评分排名,则是计算相应项目的平均评分,然后也在内存之中进行top n排序。
在步骤7)中,当数据超过一定限度的时候,就会将redis模块的数据缓存到hbase数据库。
本发明的有益效果如下:
可靠性:数据容灾方面的保证以及是实时性方面的性能提升。通过zookeeper程序和kafka消息队列集群保障了消息存储的可靠性,保证了消息在传递的时候只会发送给订阅了该消息的消费者,不会让订阅了该消息的消费者收不到以及是没有订阅该消息的消费者收到了该消息。
容错性:kafka消息队列集群有可靠的副本策略,使得就算出现了消息丢失的情况也能够从副本之中迅速恢复。
数据的备份及容灾:依靠于redis模块的主从策略来实现。在redis模块的集群之中,选举出Master节点和Slave节点。当Slave节点初始化并向Master节点发出复制请求时,Master节点就能够对当前数据进行快照并将快照文件发送给Slave,Slave就会马上加载快照文件,然后Master节点就会将写命令写入到缓冲区记录之中,Slave节点就会不断读取Master节点的缓冲区文件并且执行上面的命令,这样就保证了Master或者Slave宕机时数据的不丢失,系统的正常运作。
实时性:使用了缓存策略,将缓存写入到redis模块,只要是读命中或者是写命中,就可以从内存之中直接读写数据,而不用再直接访问hbase数据库从硬盘上面读写数据,大大提高了读写速度和数据处理速度。
附图说明
图1为本发明的框架原理图。
具体实施方式
下面将结合附图以及具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用来解释本发明,但并不作为对本发明的限定。
参照图1,本发明公开了一种基于中小学生学习资源推荐系统的协同过滤方法,具体的步骤如下:
步骤1)首先启动zookeeper程序和kafka消息队列集群,在zookeeper程序里面配置好kafka消息队列集群。启动kafka消息队列集群之后,zookeeper程序就能够通过zab协议选举出kafka消息队列集群里面的leader,然后集群里面选不到leader的就成为follower,当有读写请求到来时,kafka消息队列集群就会先将请求提交给leader,等到leader成功执行之后follower再跟随leader执行。
步骤2)客户端提交用户请求给服务器端。服务器端接收到客户端的请求之后首先将用户的请求写入到kafka消息队列集群。
步骤3)服务模块从kafka消息队列里面取出需要它处理的消息。这里面利用的就是kafka消息队列集群的发布订阅模块,每一个服务模块都对一种类型的消息进行订阅,当有这种类型的消息到来时,kafka消息队列集群就会将该消息发布给对应的服务模块。
步骤4)服务模块视自己的实现逻辑需要进行去噪化处理。在中小学生学习资源系统之中,用户的评分以及评价的处理是首先需要进行去噪处理的防止一些恶意评价,而对于当前热度,讨论度排名则是不需要进行去噪化处理。
步骤5)将用户请求和去噪之后的数据提交给Spark Streaming框架进行实时处理。Spark Streaming框架将每一个数据片的数据转换为分布式弹性数据集(RDDs),然后对RDDs进行迭代计算和转换,最后得出排名结果。
步骤6)将排名结果写入到redis模块,当redis模块的数据超过一个阈值时,就持久化到hbase数据库,并且将处理结果写入到kafka消息队列集群,kafka消息队列集群就将消息返回给客户端。
步骤7)客户端接收到消息之后就进行结果的显示。
本发明在接受客户端传过来的消息请求时采用的是kafka消息队列集群。kafka消息队列集群具有实时和高可靠性的特点,采用订阅发布模型,保证了消息的准确投递和实时投递。另外,采用zookeeper程序来解决kafka消息队列集群的单点问题以及在kafka消息队列集群在初始化以及出现故障时迅速选举和恢复。
在redis模块的集群之中,选举出Master节点和Slave节点。当Slave节点初始化并向Master节点发出复制请求时,Master节点就能够对当前数据进行快照并将快照文件发送给Slave节点,Slave节点就会马上加载快照文件,然后Master节点就会将写命令写入到缓冲区记录之中,Slave节点就会不断读取Master节点的缓冲区文件并且执行上面的命令,这样就保证了Master节点或者Slave节点宕机时数据的不丢失,系统的正常运作。
以上对本发明实施例所公开的技术方案进行了详细介绍,本文中应用了具体实施例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在具体实施方式以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种中小学生学习资源实时热点协同过滤及推荐的方法,其特征在于,包括如下的步骤:
步骤1)首先启动zookeeper程序和kafka消息队列集群,在zookeeper程序里面配置好kafka消息队列集群;当有读写请求到来时,kafka消息队列集群就会先将请求提交给leader,等到leader成功执行之后follower再跟随leader执行;
步骤2)客户端提交用户读写请求给服务器端,服务器端接收到客户端的读写请求之后首先将用户的读写请求写入到kafka消息队列集群;
步骤3)服务器端内的服务模块从kafka消息队列里面取出需要处理的读写请求消息;
步骤4)服务模块视自己的实现逻辑通过去噪模块进行噪化处理;
步骤5)将用户请求和去噪之后的数据提交给Spark Streaming框架进行实时处理;
步骤6)将排名结果写入到redis模块,当redis模块的数据超过设定的阈值时,就持久化到hbase数据库,并且将处理结果写入到kafka消息队列集群,kafka消息队列集群就将消息返回给客户端;
步骤7)客户端接收到消息之后就进行结果的显示。
2.根据权利要求1所述的中小学生学习资源实时热点协同过滤及推荐的方法,其特征在于,在步骤1)中,启动kafka消息队列集群之后,zookeeper程序就能够通过zab协议选举出kafka消息队列集群里面的leader,然后集群里面选不到leader的就成为follower。
3.根据权利要求1所述的中小学生学习资源实时热点协同过滤及推荐的方法,其特征在于,在步骤3)中,在kafka消息队列内设置有发布订阅模块,每一个服务模块都对一种类型的消息进行订阅,当有这种类型的消息到来时,kafka消息队列就会将该消息发布给对应的服务模块。
4.根据权利要求1所述的中小学生学习资源实时热点协同过滤及推荐的方法,其特征在于,在步骤4)中,在去噪化过程中,去除用户恶意评价,而对于当前热度,讨论度排名则是不需要进行去噪化处理。
5.根据权利要求1所述的中小学生学习资源实时热点协同过滤及推荐的方法,其特征在于,在步骤4)中,Spark Streaming框架将每一个数据片的数据转换为分布式弹性数据集,然后对分布式弹性数据集进行迭代计算和转换,最后得出排名结果。
6.根据权利要求1所述的中小学生学习资源实时热点协同过滤及推荐的方法,其特征在于,所述Spark Streaming框架对于热度的实时排名处理,则是对结果进行累加,统计出实时结果,并且在内存之中进行top n排序,对于实时评分排名,则是计算相应项目的平均评分,然后也在内存之中进行top n排序。
7.根据权利要求1所述的中小学生学习资源实时热点协同过滤及推荐的方法,其特征在于,在步骤7)中,当数据超过一定限度的时候,就会将redis模块的数据缓存到hbase数据库。
CN201711459240.8A 2017-12-28 2017-12-28 一种中小学生学习资源实时热点协同过滤及推荐的方法 Pending CN108491277A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711459240.8A CN108491277A (zh) 2017-12-28 2017-12-28 一种中小学生学习资源实时热点协同过滤及推荐的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711459240.8A CN108491277A (zh) 2017-12-28 2017-12-28 一种中小学生学习资源实时热点协同过滤及推荐的方法

Publications (1)

Publication Number Publication Date
CN108491277A true CN108491277A (zh) 2018-09-04

Family

ID=63344142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711459240.8A Pending CN108491277A (zh) 2017-12-28 2017-12-28 一种中小学生学习资源实时热点协同过滤及推荐的方法

Country Status (1)

Country Link
CN (1) CN108491277A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271365A (zh) * 2018-09-19 2019-01-25 浪潮软件股份有限公司 一种基于Spark内存技术对HBase数据库加速读写的方法
CN109857739A (zh) * 2019-01-28 2019-06-07 中国石油大学(华东) 一种基于RK(Redis and Kafka)的实时高效缓存机制
CN110569406A (zh) * 2019-07-25 2019-12-13 北京明朝万达科技股份有限公司 一种可配置化的热点数据自动分析方法、装置、系统及介质
CN110968578A (zh) * 2018-09-28 2020-04-07 中建水务环保有限公司 污水处理工艺推荐方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105704566A (zh) * 2016-04-25 2016-06-22 浪潮软件集团有限公司 一种基于电视机顶盒的视频推荐系统
CN107193909A (zh) * 2017-05-08 2017-09-22 杭州东方通信软件技术有限公司 数据处理方法及系统
CN107229639A (zh) * 2016-03-24 2017-10-03 上海宝信软件股份有限公司 分布式实时数据库的存储系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229639A (zh) * 2016-03-24 2017-10-03 上海宝信软件股份有限公司 分布式实时数据库的存储系统
CN105704566A (zh) * 2016-04-25 2016-06-22 浪潮软件集团有限公司 一种基于电视机顶盒的视频推荐系统
CN107193909A (zh) * 2017-05-08 2017-09-22 杭州东方通信软件技术有限公司 数据处理方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
广州市图书馆学会 等: "《图书馆合作创新与发展•2016年卷》", 30 November 2016 *
沈杰: "大数据环境下基于协同过滤的推荐系统研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271365A (zh) * 2018-09-19 2019-01-25 浪潮软件股份有限公司 一种基于Spark内存技术对HBase数据库加速读写的方法
CN110968578A (zh) * 2018-09-28 2020-04-07 中建水务环保有限公司 污水处理工艺推荐方法及装置
CN109857739A (zh) * 2019-01-28 2019-06-07 中国石油大学(华东) 一种基于RK(Redis and Kafka)的实时高效缓存机制
CN110569406A (zh) * 2019-07-25 2019-12-13 北京明朝万达科技股份有限公司 一种可配置化的热点数据自动分析方法、装置、系统及介质
CN110569406B (zh) * 2019-07-25 2022-04-19 北京明朝万达科技股份有限公司 可配置化的热点数据自动分析方法、装置、系统及介质

Similar Documents

Publication Publication Date Title
CN106406758B (zh) 一种基于分布式存储系统的数据处理方法及存储设备
CN108491277A (zh) 一种中小学生学习资源实时热点协同过滤及推荐的方法
US20200012568A1 (en) Scalable log-based continuous data protection for distributed databases
US11599557B2 (en) System and method for persistence and replication of changes to a data store
US9965364B2 (en) Fault tolerant listener registration in the presence of node crashes in a data grid
US20170339238A1 (en) Large message support for a publish-subscribe messaging system
US10366106B2 (en) Quorum-based replication of data records
CN108073656A (zh) 一种数据同步方法及相关设备
CN101061467B (zh) 远程存储数据副本
CN103207867B (zh) 处理数据块的方法、发起恢复操作的方法和节点
CN103885895A (zh) 容错集群存储系统中的写入性能
CN103607448B (zh) 一种atc系统动态数据存储的方法
US10698771B2 (en) Zero-data-loss with asynchronous redo shipping to a standby database
JP4988370B2 (ja) 結合セッション環境におけるセッションのクラスタのためのセッション情報の統合方法、システム、およびプログラム
DE112005002481T5 (de) Rekonfigurierung einer redundanten Datenspeicherung
CN107832138A (zh) 一种扁平化的高可用namenode模型的实现方法
WO2011158387A1 (ja) データ処理の障害回復方法、システムおよびプログラム
CN107977167B (zh) 一种基于纠删码的分布式存储系统的退化读优化方法
CN113590574B (zh) 一种分布式图数据库数据处理方法、介质和电子设备
CN106446300A (zh) 一种基于共享存储池的事务处理方法及系统
CN106155835A (zh) 一种基于同步复制技术的容灾方法
US8234243B2 (en) Third tier transactional commit for asynchronous replication
US20150112929A1 (en) Parallel Truncation Point Management for Log Based Replication
CN111045869B (zh) 一种数据备份方法、装置及可读存储介质
US10348817B2 (en) Optimizing latency and/or bandwidth of large client requests for replicated state machines

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180904

RJ01 Rejection of invention patent application after publication