
基于Hadoop+Redis的在线视频课程系统 毕业设计-附源码84083
文提出了一个基于Hadoop和Redis的在线视频课程系统。首先,使用Hadoop技术对视频资源进行存储和管理,通过分布式文件系统和MapReduce计算模型,实现了数据的可靠性和高效性。其次,利用Redis作为缓存数据库,存储热门视频的元数据和用户访问记录,提高系统的响应速度和并发性能。在系统实现方面,本论文借助Hadoop HDFS和HBase构建了底层数据存储架构,实现了视频资源的分布式存储
目 录
在当今数字化时代,在线教育受到了广泛关注,视频课程作为其中的重要形式之一,具有灵活性和可扩展性。然而,随着用户数量的增加,传统的视频课程系统面临着一系列挑战,如高并发访问、大规模数据存储和实时性需求。
为了解决这些问题,本论文提出了一个基于Hadoop和Redis的在线视频课程系统。首先,使用Hadoop技术对视频资源进行存储和管理,通过分布式文件系统和MapReduce计算模型,实现了数据的可靠性和高效性。其次,利用Redis作为缓存数据库,存储热门视频的元数据和用户访问记录,提高系统的响应速度和并发性能。在系统实现方面,本论文借助Hadoop HDFS和HBase构建了底层数据存储架构,实现了视频资源的分布式存储和索引,确保数据的高可靠性和高可扩展性。同时,通过Hadoop MapReduce模型,实现了视频资源的快速检索和处理。此外,本论文利用Redis构建了视频元数据和用户访问记录的缓存数据库,提高了系统的响应速度和并发性能。
实验结果表明,基于Hadoop和Redis的在线视频课程系统在处理大规模的视频资源和高并发访问方面表现出色。与传统的视频课程系统相比,本系统具有更好的可扩展性和性能表现。此外,系统还具备良好的用户体验,能够满足用户对实时性和灵活性的需求。基于Hadoop和Redis的系统架构不仅能够提高系统的可扩展性和性能表现,还能够满足用户对实时性和灵活性的需求。未来,可以进一步优化系统的性能和功能,扩展应用领域,提升在线教育的质量和效果。
关键词:Java;Hadoop;Redis;在线视频课程系统
Abstract
In today's digital age, online education has received widespread attention, and video courses, as one of its important forms, have flexibility and scalability. However, with the increasing number of users, traditional video course systems face a series of challenges, such as high concurrency access, large-scale data storage, and real-time requirements.
To address these issues, this paper proposes an online video course system based on Hadoop and Redis. Firstly, Hadoop technology is used to store and manage video resources, and the reliability and efficiency of data are achieved through a distributed file system and MapReduce computing model. Secondly, using Redis as a caching database to store metadata and user access records of popular videos can improve the system's response speed and concurrency performance. In terms of system implementation, this paper utilizes Hadoop HDFS and HBase to build an underlying data storage architecture, achieving distributed storage and indexing of video resources, ensuring high reliability and scalability of data. Meanwhile, the Hadoop MapReduce model enables rapid retrieval and processing of video resources. In addition, this paper utilized Redis to construct a caching database for video metadata and user access records, which improved the system's response speed and concurrency performance.
The experimental results show that the online video course system based on Hadoop and Redis performs well in handling large-scale video resources and high concurrency access. Compared with traditional video course systems, this system has better scalability and performance. In addition, the system also has a good user experience, which can meet the needs of users for real-time and flexibility. The system architecture based on Hadoop and Redis can not only improve the scalability and performance of the system, but also meet the needs of users for real-time and flexibility. In the future, the performance and functionality of the system can be further optimized, application areas can be expanded, and the quality and effectiveness of online education can be improved.
Keywords:Java; Hadoop; Redis; Online video course system
1 绪论
1.1 选题背景与意义
随着互联网技术和移动互联网的快速发展,在线教育领域蓬勃发展,尤其是在线视频课程系统作为教学模式的一种创新形式,受到了广泛关注。传统的面对面授课方式存在时间和地点限制,而在线视频课程系统则具有灵活性、可跨地域学习、自主学习等特点,为学习者提供了更为便捷高效的学习方式。
近年来,国内外许多高校、机构和企业纷纷推出了自己的在线视频课程系统,涵盖了各种学科和领域,为学生和职场人士提供了丰富的学习资源。在线视频课程系统的发展为教育教学带来了新的可能性,对传统教育模式进行了颠覆和补充,受到了广泛的欢迎和认可。
通过在线视频课程系统,学生可以根据自身的学习节奏和时间安排进行学习,提升学习的灵活性和效率,有利于提高学生的学习兴趣和积极性。在线视频课程系统的推广可以打破地域限制,让更多的学生能够接触到高质量的教育资源,有助于促进教育公平,缩小城乡教育差距。在线视频课程系统为教育提供了新的可能性和机遇,促进了教育技术的发展和应用,推动了教育教学的创新和改革。系统也为教师提供了新的教学平台和发展空间,有助于提升教师的教学水平和专业素养,促进教师教学能力的提升。
综上所述,研究在线视频课程系统的发展和应用对于教育领域的发展具有积极意义,有助于推动教育的现代化和智能化,为学习者和教育工作者提供更加优质的教育资源和服务。
随着互联网和移动互联网技术的快速发展,学习方式也在不断演变。在线视频课程系统作为一种新型的教育及学习方式,正在受到越来越多人的关注和应用。该系统通过在线视频的形式,为学习者提供便捷、灵活的学习渠道,打破了传统课堂教育的时空限制,让学习者可以随时随地选择适合自己的课程进行学习。国内外已有不少研究致力于探讨在线视频课程系统的发展和应用,为教育领域带来了新的可能性。
在国内,随着互联网教育的兴起,各大高校、教育机构和科研机构纷纷推出在线视频课程系统。例如,中国大学MOOC(慕课)平台、网易云课堂、Coursera、edX等知名教育机构均推出了丰富多样的在线视频课程。这些平台为学习者提供了丰富的学习资源,涵盖了各种学科和领域,为广大学习者提供了更加便捷和有效的学习途径。
在国外,许多教育机构和科研机构也积极推动在线视频课程系统的发展。例如,美国的Coursera、edX、Udemy等在线教育平台,英国的FutureLearn等平台,都为学生和教师提供了丰富多样的在线课程资源。这些平台不仅推动了教育内容的全球化和多样化,也提升了学习者的学习体验和效果。
在线视频课程系统作为一种创新的教育教学方式,正在改变传统的教育模式,为学习者提供了更为便捷和灵活的学习选择。国内外的研究和实践表明,在线视频课程系统已经成为教育领域的重要趋势,未来将会继续受到广泛关注和应用。因此,进一步探讨在线视频课程系统的优化和发展,将对提升教育教学质量和促进教育公平发挥积极作用。
在当前的在线视频课程系统中,数据量庞大、访问量高且需要快速响应用户的请求。为了解决这些问题,需要一种高效、可扩展的存储方案和数据处理框架。Hadoop作为一种分布式存储和计算框架,能够满足大规模数据存储和处理的需求。而Redis作为一种内存数据库,具有高速读写、支持数据持久化等优点,非常适合实时数据处理和缓存。本研究旨在基于Hadoop和Redis技术,构建一个高效、可扩展的在线视频课程系统,实现视频数据的存储、处理和实时传输,提高系统的性能和用户体验。
具体研究内容包括以下几个方面:
(1)设计并搭建基于Hadoop的分布式视频存储系统,实现视频数据的分布式存储和管理。
(2)利用Hadoop进行数据处理和分析,实现视频数据的离线处理和计算。
(3)结合Redis搭建缓存系统,在视频播放过程中实现数据的实时缓存和传输,提高视频播放的流畅度和速度。
(4)设计并实现在线视频课程系统的用户界面及交互功能,提供良好的用户体验。
本文共分为六章,章节内容安排如下:
第一章为引言,此章节对所设计和实现的系统的背景和状况以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
2 在线视频课程系统系统分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
2.1.1 技术可行性分析
Hadoop 是一种常用的Java大数据的开发框架,能够实现分层架构,提高开发效率和代码复用性。在线视频课程系统在数据的存储上使用的Redis缓存数据库,即非关系型数据库,在系统开发中使用了Java、HTML、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。结合Hadoop和Java技术,可以快速搭建一个功能强大、性能稳定的在线视频课程系统。因此,从技术层面分析是可行的。
在开发在线视频课程系统并不需要投入太多,开发工具、服务器、数据库等,都可以通过网络搜索、下载、安装,只需要一台普通的计算机就可以完成操作,而且在系统功能规划上通过走访调查目前用户对在线视频课程系统的需求,了解它们对系统具体实现的功能需求,然后进行设计开发,不存在任何开销,因此系统的开发在经济方面是可行的。
本系统实现功能的操作很简单,普通电脑的常见配置就可以运行本软件,并且只要粗通电脑使用的基本常识就可以流畅的使用本软件。电脑具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可,所以高校教材订购管理系统具备操作可行性。
在线视频课程系统我划分为了普通用户模块和管理员模块这两大部分。
普通用户模块:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现作品点赞、评论等操作,就必须有这个系统的账号,如果没有账号的话,可以注册普通用户进行相关的操作,同时用户还可以通过“我的”这以按钮对个人信息以及操作的信息进行管控。
(2)查看在线视频课程系统的首页信息:在线视频课程系统的首页信息包含了首页、通知公告、新闻资讯、作品信息等。
(3)通知公告:当用户点击“通知公告”这一菜单按钮,会显示管理员在后台发布的所有的通知公告,可以查看详情。
(4)新闻资讯:当用户点击“新闻资讯”这一菜单按钮,会显示管理员在后台发布的所有的新闻资讯,可以查看详情,进行收藏、点赞、评论等。
(5)作品信息:用户可以查看作品信息,在查询到自己想要了解的作品信息的时候,可以进入查看详细的介绍,包括普通用户、用户姓名、作品名称、作品类型、作品视频、发布时间、作品详情等信息,在作品信息详情这个界面,同时支持用户对作品进行点赞、收藏以及评论的功能。
(6)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改进行管控。
(7)个人中心:普通用户在前台点击“个人中心”可以对个人首页、作品信息、作品点赞和自己收藏的信息进行管理。
管理员管理模块:
(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
(2)系统用户:管理员可以对在线视频课程系统中的管理员以及前台注册的普通用户进行增删改查。
(3)作品类型管理:点击“作品类型管理”系统会把在线视频课程系统当中所有的作品类型信息都显示出来,管理员可进行添加作品类型和类型描述管理,并可进行查询、重置或删除等相应操作。
(4)作品信息管理:管理员点击“作品信息管理”会显示出所有的作品信息,如果想要添加新的作品信息,点击“添加”按钮,输入普通用户、用户姓名、作品名称、作品类型、作品视频、发布时间、作品详情等信息,点击“提交”按钮就可以添加了,同时可以选择某一条作品信息,点击“删除”进行删除,也可以对用户提交的作品评论的信息进行管控。
(5)作品点赞管理:管理员点击“作品点赞管理”会显示出所有的作品点赞信息,可以选择某一条作品点赞查看详情。
(6)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行管理。
(7)通知公告管理:管理员点击“通知公告管理”菜单可以查看到系统中的所有通知公告信息,对已经存在的通知公告,管理员可以修改,也可以添加新的通知公告或者删除通知公告。
(8)资源管理:管理员可以对在线视频课程系统前台展示的新闻资讯以及新闻资讯所属的分类进行管控。
在线视频课程系统的非功能性需求比如在线视频课程系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1在线视频课程系统非功能需求表
安全性 |
主要指在线视频课程系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 |
可靠性是指在线视频课程系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 |
性能是影响在线视频课程系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 |
比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 |
用户只要跟着在线视频课程系统的页面展示内容进行操作,就可以了。 |
可维护性 |
在线视频课程系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
在线视频课程系统的完整UML用例图分别是图2-1和图2-2。
图2-1就是普通用户角色的用例展示。

图2-1 系统普通用户角色用例图
图2-2就是管理员角色的用例展示。

图2-2 管理员角色用例图
2.4 系统业务流程分析
管理员权限下的工作流程主要为:管理员通过系统界面提供登录按钮并点击,转入管理员登录界面,并在界面上填入相应的管理员账户和管理员密码,进入管理员权限下的后台系统,并且在系统左侧导航条设置了相应的操作功能。
用户权限下的工作流程主要为:用户通过系统提供的注册功能,进行身份验证并注册,而后在登录界面进行个人身份验证,并且进入用户的个人后台界面,并进行相应的操作。
开发在线视频课程系统最主要的一个目的就是实现用户在线浏览作品信息的便捷,系统的业务流程图如下所示。

图2-3系统业务流程图
2.5本章小结
本章主要通过对在线视频课程系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个在线视频课程系统要实现的功能。同时也为在线视频课程系统的代码实现和测试提供了标准。
本章主要讨论的内容包括在线视频课程系统的功能模块设计、数据库系统设计。
3.1 系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本在线视频课程系统中的用例。那么接下来就要开始对在线视频课程系统的架构、主要功能和数据库开始进行设计。在线视频课程系统根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。
图3-1 系统功能模块图
3.1.2用户模块设计
本系统的用户包括管理员和用户两种用户模块的功能基本是相同的,用户比管理员多了一个注册功能,所以以用户模块的结构图为例进行分析,用户模块结构图为例进行分析,如下图:

图3-2用户模块结构图
3.1.3 评论管理模块设计
在线视频课程系统是一个交流性质的公开平台,用户在平台上提交评论,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,给予管理员删除不合适的评论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:

图3-3评论管理模块结构图
3.1.4作品信息管理模块设计
在线视频课程系统是中需要存储不少作品信息,其模块功能结构,具体的结构图如下:

图3-4作品信息模块结构图
3.1.5作品点赞管理模块设计
在线视频课程系统是中需要存储不少作品点赞信息,其模块功能结构,具体的结构图如下:

图3-5作品点赞信息模块结构图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1 数据库概念结构设计
下面是整个在线视频课程系统中主要的数据库表总E-R实体关系图。

图3-6 系统总E-R关系图
3.2.2 数据库逻辑结构设计
通过上一小节中在线视频课程系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 |
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 |
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 |
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 |
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 |
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面图 |
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000]决定分类显示的先后顺序 |
3 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] |
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 |
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分类图标: |
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授权ID: |
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户组: |
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模块名: |
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: |
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
页面标题: |
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路径: |
|
7 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
8 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
9 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
10 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
11 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
12 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
13 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
14 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
15 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: |
|
16 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: |
|
17 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: |
|
18 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
19 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
20 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
collect_id |
int |
10 |
0 |
N |
Y |
收藏ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
收藏人ID: |
3 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
4 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
5 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
6 |
title |
varchar |
255 |
0 |
Y |
N |
标题: |
|
7 |
img |
varchar |
255 |
0 |
Y |
N |
封面: |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
comment_id |
int |
10 |
0 |
N |
Y |
评论ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评论人ID: |
3 |
reply_to_id |
int |
10 |
0 |
N |
N |
0 |
回复评论ID:空为0 |
4 |
content |
longtext |
2147483647 |
0 |
Y |
N |
内容: |
|
5 |
nickname |
varchar |
255 |
0 |
Y |
N |
昵称: |
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
9 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
10 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
11 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
notice_id |
mediumint |
8 |
0 |
N |
Y |
公告id: |
|
2 |
title |
varchar |
125 |
0 |
N |
N |
标题: |
|
3 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文: |
|
4 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
praise_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
8 |
status |
bit |
1 |
0 |
N |
N |
1 |
点赞状态:1为点赞,0已取消 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
regular_users_id |
int |
10 |
0 |
N |
Y |
普通用户ID |
|
2 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
3 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用户性别 |
|
4 |
contact_phone_number |
varchar |
64 |
0 |
Y |
N |
联系电话 |
|
5 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
6 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
slides_id |
int |
10 |
0 |
N |
Y |
轮播图ID: |
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
标题: |
|
3 |
content |
varchar |
255 |
0 |
Y |
N |
内容: |
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
链接: |
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
轮播图: |
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击量: |
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
type_of_work_id |
int |
10 |
0 |
N |
Y |
作品类型ID |
|
2 |
type_of_work |
varchar |
64 |
0 |
Y |
N |
作品类型 |
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID |
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 |
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 |
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 |
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 |
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 |
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
user_id |
mediumint |
8 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 |
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 |
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 |
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] |
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
13 |
open_id |
varchar |
255 |
0 |
Y |
N |
针对获取用户信息字段 |
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
15 |
vip_level |
varchar |
255 |
0 |
Y |
N |
会员等级 |
|
16 |
vip_discount |
double |
11 |
2 |
Y |
N |
0.00 |
会员折扣 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] |
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
work_information_id |
int |
10 |
0 |
N |
Y |
作品信息ID |
|
2 |
regular_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
3 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
4 |
title_of_the_work |
varchar |
64 |
0 |
Y |
N |
作品名称 |
|
5 |
type_of_work |
varchar |
64 |
0 |
Y |
N |
作品类型 |
|
6 |
artwork_images |
varchar |
255 |
0 |
Y |
N |
作品图片 |
|
7 |
work_video |
varchar |
255 |
0 |
Y |
N |
作品视频 |
|
8 |
release_time |
date |
10 |
0 |
Y |
N |
发布时间 |
|
9 |
work_details |
longtext |
2147483647 |
0 |
Y |
N |
作品详情 |
|
10 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
11 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
12 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
work_likes_id |
int |
10 |
0 |
N |
Y |
作品点赞ID |
|
2 |
regular_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
3 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
4 |
title_of_the_work |
varchar |
64 |
0 |
Y |
N |
作品名称 |
|
5 |
type_of_work |
varchar |
64 |
0 |
Y |
N |
作品类型 |
|
6 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
整个在线视频课程系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 在线视频课程系统详细设计与实现
在线视频课程系统的详细设计与实现主要是根据前面的在线视频课程系统的需求分析和在线视频课程系统的总体设计来设计页面并实现业务逻辑。主要从在线视频课程系统界面实现、业务逻辑实现这两部分进行介绍。
4.1前台用户功能模块
4.1.1 前台首页界面
当进入在线视频课程系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是新闻资讯,其主界面展示如下图4-1所示。

图4-1 前台首页界面图
4.1.2 用户注册界面
在线视频课程系统的游客和普通用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2注册界面图
4.1.3 用户登录界面
在线视频课程系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当普通用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到在线视频课程系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

图4-3用户登录界面图
用户点击“通知公告”菜单显示管理员在后台发布的所有的通知公告信息,可以查看通知公告详情。通知公告展示界面如下图4-4所示。

图4-4通知公告展示界面图
4.1.5新闻资讯界面
当访客点击在线视频课程系统中导航栏上的“新闻资讯”后将会进入到该“新闻资讯”列表的界面,然后选择想要看的新闻资讯,点击进入到详细界面,在详细界面可以收藏+赞+订单评价等操作。新闻资讯界面如下图4-5所示。

图4-5新闻资讯界面图
4.1.6 作品信息界面
当用户点击“作品信息”后就可以看到所有的作品信息,可以输入作品名称或作品类型进行搜索查询,选择你想要了解的作品信息后将会进入该作品信息的详情界面,可以了解到该作品信息的普通用户、用户姓名、作品名称、作品类型、作品视频、发布时间、作品详情等,同时可以点击下方的“点赞”、“收藏”进行相关操作,也可以在下方评论区输入想要评论的内容进行评论,作品信息详情展示页面如图4-6所示。

图4-6 作品信息详情界面图
当用户点击右上角“我的”这个按钮,会出现子菜单,点击“我的账户”可以对个人的资料以及登录系统的密码进行设置管理,我的账户界面如下图4-7所示。

图4-7 我的账户界面图
前台普通用户点击右上角“个人中心”模块,可以查看和管理个人首页、作品信息、作品点赞和收藏的信息。普通用户个人中心界面如下图4-8所示。

图4-8普通用户个人中心界面
4.2后台功能模块
4.2.1系统用户界面
在线视频课程系统中的管理人员在“系统用户”这一菜单是中可以对注册的普通用户以及管理员进行管控。界面如下图4-9所示。

图4-9系统用户管理界面图
管理员点击“作品类型管理”会显示出所有的作品类型信息。在系统此页面管理员执行管理作品类型列表,可以对作品数据进行查询、添加、重置或删除。作品类型管理界面如下图4-10所示。

图4-10作品类型管理界面图
管理员点击“作品信息管理”显示所有的作品信息,支持通过作品名称对作品信息进行查询。如果想要添加新的作品信息,点击“添加”按钮,输入普通用户、用户姓名、作品名称、作品类型、作品视频、发布时间、作品详情等信息,点击“提交”按钮就可以添加了,可以对用户提交的作品评论的信息进行管控。作品信息管理界面如下图4-11所示。

图4-11作品信息管理界面图
管理人员在“系统管理”这一菜单下是可以对在线视频课程系统内的轮播图进行添加修改的,其管理界面如下图4-12所示。

图4-12系统轮播图管理界面图
4.2.5资源管理界面
管理员点击“资源管理”菜单能够对其下子菜单新闻资讯和新闻资讯的分类进行增删改查。界面如下图4-13所示。

图4-13资源管理界面图
5系统测试
5.1 系统测试用例
系统测试包括:用户登录功能测试、作品信息查看功能测试、作品点赞添加、新闻资讯搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1 用户登录功能测试表
用例名称 |
用户登录系统 |
目的 |
测试用户通过正确的用户名和密码可否登录功能 |
前提 |
未登录的情况下 |
测试流程 |
1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 |
用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 |
实际结果与预期结果一致 |
作品信息查看功能测试:
表5-2 作品信息查看功能测试表
用例名称 |
作品信息查看 |
目的 |
测试作品信息查看功能 |
前提 |
用户登录 |
测试流程 |
点击作品信息列表 |
预期结果 |
可以查看到所有作品信息 |
实际结果 |
实际结果与预期结果一致 |
添加作品点赞界面测试:
表5-3 添加作品点赞界面测试表
用例名称 |
添加作品点赞测试用例 |
目的 |
测试作品点赞添加功能 |
前提 |
用户正常登录情况下 |
测试流程 |
1)点击作品点赞管理,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 |
提交以后,页面首页会显示新的作品点赞 |
实际结果 |
实际结果与预期结果一致 |
新闻资讯搜索功能测试:
表5-4新闻资讯搜索功能测试表
用例名称 |
新闻资讯搜索测试 |
目的 |
测试新闻资讯搜索功能 |
前提 |
无 |
测试流程 |
1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 |
页面显示包含有搜索关键字的新闻资讯 |
实际结果 |
实际结果与预期结果一致 |
密码修改搜索功能测试:
表5-5 密码修改功能测试表
用例名称 |
密码修改测试用例 |
目的 |
测试管理员密码修改功能 |
前提 |
管理员用户正常登录情况下 |
测试流程 |
1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 |
使用新的密码可以登录 |
实际结果 |
实际结果与预期结果一致 |
通过编写在线视频课程系统的测试用例,已经检测完毕用户登录功能测试、作品信息查看功能测试、作品点赞添加、新闻资讯搜索、密码修改功能测试,通过这5大模块为在线视频课程系统的后期推广运营提供了强力的技术支撑。
在开发本在线视频课程系统之前我胸有成竹,觉得很简单,但在实际的开发中我发现了自身的很多问题,许多编程思想和方法都还没有掌握牢靠,比如对于Hadoop框架和Redis的使用,通过开发这个在线视频课程系统我成长了很多,懂得了做什么事情都要脚踏实地,不能眼高手低,在本次在线视频课程系统的开发中我逐渐掌握逐渐熟悉的技术。
本次基于大数据的在线视频课程系统的开发中我还学会了很多,例如良好的编程思想和完善的规划思想。在着手编程之前需要罗列出程序框架的大概,脑海中构建出程序的主题框架。做好这一步我们才能胸有成竹的经行开发项目。当设计框架了熟于心之后,需要思考本次编程所需的主要知识点和技术点,并充分学习。如此一来项目的开发才能循序渐进、如丝般顺滑,长久以往就能养成良好的开发习惯。一个程序好不好还要看出的bug多不多,如果在项目完成前做好bug的查验与预防可能发生的事故才能保证程序的稳定长久性运行。如果项目在完工后出现各种问题自己,那么在进入社会后,不仅会给公司团队带来麻烦和增加不必要的工作,还会导致客户流失,公司对自己的评价下降。
在本次项目中我也暴露了诸多问题。对于Hadoop的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。
[1]Vengadeswaran S ,Balasundaram S ,Dhavakumar P .IDaPS — Improved data-locality aware data placement strategy based on Markov clustering to enhance MapReduce performance on Hadoop[J].Journal of King Saud University - Computer and Information Sciences,2024,36(3):101973-.
[2]董明,牟云环.基于Hadoop的高校教学质量评测系统构建与评估方法[J].微型电脑应用,2024,40(02):26-28+37.
[3]杨洪.基于Redis的共享缓存分析[J].数字技术与应用,2024,42(01):110-112.DOI:10.19695/j.cnki.cn12-1369.2024.01.35.
[4]Chen Y ,Liu S .Cloud Computing Based Online Video Rhythmic Gymnastics Course Management[J].Applied Mathematics and Nonlinear Sciences,2024,9(1):
[5]雍雅.基于Hadoop的艺术类教育资源集成共享平台设计[J].信息与电脑(理论版),2023,35(24):247-249.
[6]周德,杨成慧,罗佃斌.基于Hadoop的分布式日志分析系统设计与实现[J].现代信息科技,2023,7(23):57-60.DOI:10.19850/j.cnki.2096-4706.2023.23.012.
[7]Savita C ,V. K ,R. S , et al.Parametrized Optimization Based on an Investigation of Musical Similarities Using SPARK and Hadoop[J].SN Computer Science,2023,5(1):
[8]任宏,李春林,李晓峰.基于Hadoop技术的物联网大数据同步存储系统设计[J].网络安全和信息化,2023,(12):85-87.
[9]顾少伟,井波.Redis在软件项目中的应用[J].电脑编程技巧与维护,2023,(11):16-19+32.DOI:10.16184/j.cnki.comprg.2023.11.046.
[10]左文涛,胡必波,刘钟凌.Hadoop架构下数量关联规则的数据挖掘研究[J].信息记录材料,2023,24(11):210-212+216.DOI:10.16009/j.cnki.cn13-1295/tq.2023.11.036.
[11]赵维娜,孙博,潘墨尧,等.基于Redis缓存技术的APS系统架构设计[J].河北冶金,2023,(S1):55-57.DOI:10.13630/j.cnki.13-1172.2023.S113.
[12]程远瑶,王昕怡,陈逸,等.基于Redis的ATS缓存系统设计与实现[J].计算机应用与软件,2023,40(07):111-115.
[13]杨秉杰,薛钰.基于Scrapy-redis的网站敏感信息监测系统设计与实现[J].无线互联科技,2023,20(11):84-87.
[14]李晨昊.基于Hadoop集群下海量小文件存储的研究与优化[D].河北建筑工程学院,2023.DOI:10.27870/d.cnki.ghbjz.2023.000046.
[15]王苗,李明倩,刘芳.基于嵌入式Linux的在线开放课程教学视频录制系统[J].自动化技术与应用,2023,42(04):126-129.DOI:10.20033/j.1003-7241.(2023)04-0126-04.
[16]Tsung C H ,An S F ,Cheng F L , et al.Applying the student response system in the online dermatologic video curriculum on medical students' interaction and learning outcomes during the COVID-19 pandemic[J].Indian Journal of Dermatology,2022,67(4):477-477.
[17]李幸.智能录播系统在民办高校“金课”建设中的应用[J].软件,2021,42(05):49-51.
[18]李恺杰.面向在线课程视频的案例片段检测系统的设计与实现[D].华中科技大学,2020.DOI:10.27157/d.cnki.ghzku.2020.001176.
[19]戴敏圣.云环境下海量小文件存储性能的研究与优化[D].电子科技大学,2020.DOI:10.27005/d.cnki.gdzku.2020.003012.
[20]王晶,谭程元,周靖林,等.《线性系统理论》课程改革思考与实践[J].教育教学论坛,2020,(04):214-216.
这篇文章的完成经历了多个日日夜夜的努力,终于在今天得以完成。这篇文章的创作过程实为不易,但在老师和同学的辛勤帮助下顺利渡过。让我在设计过程中举步维艰时,非常感谢我的导师不耐其烦的帮助我解决问题,给予了我许多指导意见。也感谢所有为我授业解惑的老师!
另外,本文的完成也参考借鉴了许多国内外在Hadoop和Redis技术上的著作,如果没有著作原作的辛勤付出和科研成果,我也很难完成本论文。感谢在本论文中关联到的学者们!也感谢Google等公司,感谢他们强大的搜索引擎,让我的资料查阅省事简单。
感谢之余也还有几句话要说,虽大学学习四年,怎奈何本人才疏学浅,本文的完成已为尽力,但文中不免有些不当和错误之处,诚挚真切的请求各位老师对本文的批评改正,感谢百忙之中费心审阅我论文的老师。
点赞+收藏+关注 → 私信领取本源代码、数据库
更多推荐
所有评论(0)