
1.本发明涉及大数据算法技术领域,更具体地说,本发明涉及一种基于大 数据的教学资源配置智能算法。
背景技术:2.互联网技术不断发展,其信息数据量正呈现爆炸式增长,信息化技术已 进入大数据时代。在大数据时代对数据的存储与处理要求更高,可利用大数 据技术解决传统的基于单机服务器进行教学资源共享时对用户访问日志数据 不能进行实时统计分析的问题。
3.当用户点击教学资源共享平台的教学资源时,后台web服务器会产生一 个对应访问日志文件,这个日志文件包含ip地址、访问用户名、访问时间等 信息,利用大数据技术对日志记录文本文件进行处理、统计教学资源访问使 用情况,为资源管理及后续建设提供一定的参考。
4.但是目前市场上并没有完整的数据和平台为用户提供参考的数据,同时 教学资源的选择也不能针对不同的用户进行推送。
技术实现要素:5.为了克服现有技术的上述缺陷,本发明的实施例提供一种基于大数据的 教学资源配置智能算法,通过设有用户数据传输装置和数据反馈端,由用户 登陆端收集用户的个人意愿方面的个人信息,建立起与个人信息相对应的特 征模型,提取出所要选择的教学资源特征信息,系统从用户的历史访问数据 合并当前的操作日志,抽取出特征向量,通过运算建立起初始推送模型,根据 多个用户的数据进行统计和分析,能够在大数据环境下学习资源智能化推送 服务模型构建,能够针对不同的人群进行所需教学资源进行过滤和推送,同 时也可以通过数据反馈端进行查看教学资源的智能配置。
6.为实现上述目的,本发明提供如下技术方案:一种基于大数据的教学资 源配置智能算法,包括用户数据传输装置,所述用户数据传输装置通过传输 线缆分别连接有用户反馈端和用户登陆端,所述用户数据传输装置输出端设 有传输中转站,所述传输中转站输出端设有服务器,所述服务器包括终端接 入层、数据处理层和业务应用层,所述服务器外侧连接有数据库,所述服务 器输出端设有数据反馈端,所述数据反馈端包括查看端和调整端。
7.在一个优选地实施方式中,所述用户数据传输装置包括数据处理模块、 数据提取模块、数据传输模块、wifi通信模块和数据存储模块,所述用户数 据传输装置用于接收用户反馈端、用户登陆端和传输中转站数据进行提取并 相互传输。
8.在一个优选地实施方式中,所述用户反馈端用于查看教学资源和数据, 并搜索和提交所需教学资源资料,所述用户登陆端用于验证不同的用户,对 用户的数据进行统计。
9.在一个优选地实施方式中,所述传输中转站数量设置为多个且根据地域 面积进行设置,所述传输中转站用于记录用户登陆ip并与服务器进行数据的 传输。
10.在一个优选地实施方式中,所述终端接入层用于接入终端设备,所述数 据处理层包括课程资源存储、课程资源搜索、课程资源推荐和用户访问教学 资源统计,所述数据处理层用虚拟化技术对服务器硬件进行虚拟化,将一台 物理服务器虚拟抽象为若干逻辑计算机、计算、存储、网络等资源脱离真实 的环境而在虚拟环境下运行,所述业务应用层在虚拟化硬件基础上安装搭建 hadoop分布式文件系统,部署安装包括hive、hbase、flume、azkaban、sqoop、 mysql、spark。
11.在一个优选地实施方式中,所述服务器数量设置为多个,多个服务器组 合成一个hadoop集群并安装spark,所述多个服务器组成一个web服务器集 群。
12.在一个优选地实施方式中,所述数据库包括sql数据库、hive、sqoop、 spark和关系数据库,所述数据库连接端设有云端数据库。
13.在一个优选地实施方式中,所述数据反馈端通过传输线缆连接有查看端 和调整端,所述查看端用于查看分析数据和分析结果,所述调整端用于设定 工作数据和调整数据至服务器。
14.本发明的技术效果和优点:
15.1、本发明通过设有用户数据传输装置和数据反馈端,由用户登陆端收集 用户的个人意愿方面的个人信息,建立起与个人信息相对应的特征模型,提 取出所要选择的教学资源特征信息,系统从用户的历史访问数据合并当前的 操作日志,抽取出特征向量,通过运算建立起初始推送模型,根据多个用户的 数据进行统计和分析,能够在大数据环境下学习资源智能化推送服务模型构 建,能够针对不同的人群进行所需教学资源进行过滤和推送,同时也可以通 过数据反馈端进行查看教学资源的智能配置;
16.2、通过设有服务器和数据中转站,底层架构的硬件平台主要用虚拟化技 术对服务器硬件进行虚拟化,将一台物理服务器虚拟抽象为若干逻辑计算机、 计算、存储、网络等资源脱离真实的环境而在虚拟环境下运行,在同一台服 务器上实现同时运行多台逻辑计算机,每台逻辑计算机可独立运行完全不同 的操作系统,有效的隔离资源,提高计算机工作效率;
17.3、通过设有数据库和云端数据库,搭建分布式系统来存储相关教学资 源,并通过sqoop把数据导出到mysql等关系型数据库中,最终通过可视化 技术将统计分析的数据以图形图像的形式展现给用户,并根据用户需求提取 所需数据反馈至用户,对于部分教学资源长时间未提及的情况下传输至云端 数据库进行存储,保证数据库能够正常运行。
附图说明
18.图1为本发明的整体结构原理图;
19.图2为本发明的服务器架构图;
20.附图标记为:1用户数据传输装置、2用户反馈端、3用户登陆端、4传 输中转站、5服务器、51终端接入层、52数据处理层、53业务应用层、6数 据库、61云端数据库、7数据反馈端、8查看端、9调整端。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.本发明提供了如图1-2所示的一种基于大数据的教学资源配置智能算法, 包括用户数据传输装置1,所述用户数据传输装置1通过传输线缆分别连接有 用户反馈端2和用户登陆端3,所述用户数据传输装置1输出端设有传输中转 站4,所述传输中转站4输出端设有服务器5,所述服务器5包括终端接入层 51、数据处理层52和业务应用层53,所述服务器5外侧连接有数据库6,所 述服务器5输出端设有数据反馈端7,所述数据反馈端7包括查看端8和调整 端9。
23.所述用户数据传输装置1包括数据处理模块、数据提取模块、数据传输 模块、wifi通信模块和数据存储模块,所述用户数据传输装置1用于接收用 户反馈端2、用户登陆端3和传输中转站4数据进行提取并相互传输。
24.所述用户反馈端2用于查看教学资源和数据,并搜索和提交所需教学资 源资料,所述用户登陆端3用于验证不同的用户,对用户的数据进行统计。
25.实施方式具体为:由用户登陆端3收集用户的个人意愿方面的个人信息, 建立起与个人信息相对应的特征模型,提取出所要选择的教学资源特征信息, 系统从用户的历史访问数据合并当前的操作日志,抽取出特征向量,通过运算 建立起初始推送模型,根据多个用户的数据进行统计和分析,能够在大数据 环境下学习资源智能化推送服务模型构建,能够针对不同的人群进行所需教 学资源进行过滤和推送,同时也可以通过数据反馈端7进行查看教学资源的 智能配置。
26.所述传输中转站4数量设置为多个且根据地域面积进行设置,所述传输 中转站4用于记录用户登陆ip并与服务器5进行数据的传输。
27.所述终端接入层51用于接入终端设备,所述数据处理层52包括课程资 源存储、课程资源搜索、课程资源推荐和用户访问教学资源统计,所述数据 处理层52用虚拟化技术对服务器硬件进行虚拟化,将一台物理服务器虚拟抽 象为若干逻辑计算机、计算、存储、网络等资源脱离真实的环境而在虚拟环 境下运行,所述业务应用层53在虚拟化硬件基础上安装搭建hadoop分布式 文件系统,部署安装包括hive、hbase、flume、azkaban、sqoop、mysql、 spark。
28.所述服务器5数量设置为多个,多个服务器5组合成一个hadoop集群并 安装spark,所述多个服务器5组成一个web服务器集群。
29.实施方式具体为:
30.基于大数据平台的教学资源共享系统由多台服务器支持。例如:其中6 台服务器组合成一个hadoop集群并安装spark;3台安装zookeeper;3台安 装flume;3台服务器安装hbase;3台服器组成一个web服务器集群;2台服 务器组成一个查询接品服务器和前端展示服务器集群,系统间数据处理流程 如图1、2所示。
31.一个完整的日志数据统计分析系统通常都是由大量任务单元组成的,分 布式处理技术是将大的计算任务分配给集群中的各个计算节点进行计算,完 成计算任务后再进行合并。基于大数据平台的教学资源共享系统用户访问教 学资源实时统计时数据源是从linux系统服务器shell脚本程序开始运行, 设置crontab程序实现将日志数据实时传递
flume服务,通过hadoop先将原 始数据同步到hdfs上;借助mapreduce计算框架对原始数据进行转换,生成 的数据以分区表的形式存储到多张hive表中;需要对hive中多个表的数据 进行join处理,得到一个明细数据hive大表;将明细数据进行复杂的统计 分析,得到结果报表信息;然后将数据通过sqoop导入到关系型数据库mysql 中,再利用可视化工具把数据库中的数据以图形的方式展现出来。
32.以下是实现对用户访问教学资源系统实时访问统计的部分程序代码:
33.(1)使用spark-streaming完成数据清洗操作
34.objectdatautils{
35.valyyyymmddhhmmss_format=
36.fastdateformat.getinstance("yyyy-mm-dd hh:mm:ss");
37.valtarge_format=fastdateformat.getinstance ("yyyymmdd");
38.defgettime(time:string)={
39.yyyymmddhhmmss_format.parse(time).gettime
40.}
41.defparsetominute(time:string)={
42.targe_format.format(newdate(gettime(time)))
43.}
44.defmain(args:array[string]):unit={
[0045]
println(parsetominute("2017-11-2201:20:20"))
[0046]
}
[0047]
}
[0048]
(2)针对数据进行分析,清洗数据,过滤出无用数据
[0049]
valcleandata=logs.map(line=》{
[0050]
valinfos=line.split("\\t")
[0051]
valurl=infos(2).split("")(1)
[0052]
varcategaryid=0
[0053]
if(url.startswith("/www")){
[0054]
categaryid=url.split("/")(2).toint
[0055]
}
[0056]
clicklog(infos(0),datautils.parsetomin(infos(1)), categaryid,infos(4).toint,infos(3))
[0057]
}).filter(clicklog=》clicklog.categaryid!=0)
[0058]
cleandata.print()
[0059]
(3)保存收集数据到hbase数据库
[0060]
cleanlog.map(log=》{
[0061]
(log.time.substring(0,8)+"_"+log.categaryid,1)
[0062]
}).reducebykey(_+_).foreachrdd(rdd=》{
[0063]
rdd.foreachpartition(partriosrdds=》{
[0064]
vallist=newlistbuffer[categaryclickcount]
[0065]
partriosrdds.foreach(pair=》{
[0066]
list.append(categaryclickcount(pair._1,pair._2))
[0067]
})
[0068]
categaryclickcountdao.save(list)
[0069]
})
[0070]
})
[0071]
(4)利用spark进行日志数据分割业务功能实现(部分代码)
[0072]
cleanlog.map(log=》{
[0073]
valreferer=log.refer.replace("//","/")
[0074]
valsplits=referer.split("/")
[0075]
varhost=""
[0076]
if(splits.length》2){
[0077]
host=splits(1)
[0078]
}
[0079]
(host,log.categaryid,log.time)
[0080]
}).filter(_._1!="").map(x=》{
[0081]
(x._3.substring(0,8)+"_"+x._1+"_"+x._2,1)
[0082]
}).reducebykey(_+_).foreachrdd(rdd=》{
[0083]
rdd.foreachpartition(partitionrecods=》{
[0084]
vallist=newlistbuffer[categarysearchclickcount]
[0085]
partitionrecods.foreach(pair=》{
[0086]
list.append(categarysearchclickcount(pair._1,pair._2)) })
[0087]
categarysearchclickcountdao.save(list)
[0088]
})
[0089]
})
[0090]
(5)通页面调用数据展示(数据可视化部分代码)
[0091]
data:(function(){
[0092]
vardatas=[];
[0093]
$.ajax({
[0094]
type:"post",
[0095]
url:"/sparkweb/categoryclickcount",
[0096]
datatype:'json',
[0097]
async:false,
[0098]
success:function(result){
[0099]
for(vari=0;i
[0100]
所述数据库6包括sql数据库、hive、sqoop、spark和关系数据库,所 述数据库6连接端设有云端数据库61。
[0101]
所述数据反馈端7通过传输线缆连接有查看端8和调整端9,所述查看端 8用于查看分析数据和分析结果,所述调整端9用于设定工作数据和调整数据 至服务器5。
[0102]
实施方式具体为:利用大数据技术实时统计用户访问教学资源情况,先 要解决教学资源数据存储及处理题,需搭建基于大数据的教学资源共享平台, 通过对用户访问教学资源的日志记录信息进行采集清洗统计处理,了解教学 资源的使用情况,系统设计实现过程中需要利用如下大数据技术:
[0103]
hadoop是大数据处理的基本平台,进行离线计算处理的基本工具,其核 心技术包括hadoopdistributedfilesystem、hadoopmapreduce、 hadoopcommon、hadoopyarn4大模块,基于大数据平台的教学资源共享系统中, 用户访问教学资源情况统计充分利用map-reduce分布式计算框架及hdfs分 布式文件存储系统,其mapreduce分布式模式用户编写的程序分成mapper、 reducer、driver(提交运行mr程序的客户端)3个部分,mapper的输入数 据及输出数据均是key―value对形式,mapper中的业务逻辑写在mapper() 方法中,mapper()方法(maptask进程)对每一个调用一次,reducer的输 入数据类型对应mapper的输出数据类型,reducer的业务逻辑写在reducer ()方法中,reducer任务进程对每一组相同k的组调用一次reducer()方 法,mapper和reducer均继承各自的父类,整个处理程序需要一个drvier来 进行提交;
[0104]
hive是基于hadoop的一个数据仓库,可将结构化的数据文件映射为一张 数据库表,提供简单的sql查询功能,管理存储在分布式系统上的数据集, 可将sql语句转换成mapreduce作业程序进行运行,通过类sql语句快速实 现mapreduce统计;
[0105]
spark是一种大数据计算框架,类似于hadoop的mapreduce,是通用的 大数据快速处理引擎,使用一个技术堆栈解决大数据领域的一些计算任务, 在内存中处理及运行速度较快,但不具有文件管理功能,spark最主要的核心 技术是resilientdistributeddatasets即弹性分布式数据集,对数据的操作 转换成为rdd的操作,spark由sparkrdd、sparksql、sparkstreaming、mllib、 graphx等组成,解决大数据领域中离线批处理、交互式查询、实时流计算、 机器学习与图计算等任务和问题;
[0106]
sparksql支持对hive中存储的数据进行读写,操作hive中的数据时, 必须创建hivecontext,而不是sqlcontext,hivecontext继承自sqlcontext, 但是增加了在hive元数据库中查找表,以及用hiveql语法编写sql的功能, 除了sql()方法,hivecontext还提供了hql()方法,从而用hive语法来 编译sq,使用hivecontext,可以执行hive的大部分功能,包括创建表、向 表中导入数据以及用sql语句查询表中的数据。
[0107]
本发明工作原理:
[0108]
参照说明书附图1:由用户登陆端3收集用户的个人意愿方面的个人信息, 建立起与个人信息相对应的特征模型,提取出所要选择的教学资源特征信息, 系统从用户的历史访问数据合并当前的操作日志,抽取出特征向量,通过运算 建立起初始推送模型;
[0109]
参照说明书附图1和图2:在同一台服务器上实现同时运行多台逻辑计算 机,每台逻辑计算机可独立运行完全不同的操作系统,有效的隔离资源,提 高计算机工作效率;
[0110]
参照说明书附图1:搭建分布式系统来存储相关教学资源,并通过sqoop 把数据导出到mysql等关系型数据库中,最终通过可视化技术将统计分析的 数据以图形图像的形式展现给用户。
[0111]
最后应说明的几点是:首先,在本技术的描述中,需要说明的是,除非另 有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,可以是机 械连接或电连接,也可以是两
个元件内部的连通,可以是直接相连,“上”、
ꢀ“
下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对 位置改变,则相对位置关系可能发生改变;
[0112]
其次:本发明公开实施例附图中,只涉及到与本公开实施例涉及到的结 构,其他结构可参考通常设计,在不冲突情况下,本发明同一实施例及不同 实施例可以相互组合;
[0113]
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明, 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应 包含在本发明的保护范围之内。