写点什么

基于 SparkMLlib 智能课堂教学评价系统 - 系统设计 (三)

发布于: 2021 年 03 月 14 日
基于 SparkMLlib 智能课堂教学评价系统-系统设计(三)

系统是一个有机整体。因此,系统设计中,要从整个系统的角度进行考虑,使系统有统一的信息代码、统一的数据组织方法、统一的设计规范和标准,以此来提高系统的设计质量[8]。本章节分为三部分进行设计,第一部分数系统需求分析,主要从技术,经济,操作及功能方面进行分析。第二部分是系统的总体设计。第三部分是详细设计,针对系统的各模块详细介绍。

1.  系统需求分析

系统的需求分析是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节。需要分析系统在功能上实现什么,以及在非功能需求上是否可行,以及约束条件等。

1.1  系统的可行性分析

随着国家信息技术的高速发展,我国的软件技术已经达到国际领先水平。另一方面国家对教育也是越来越重视,信息化教育得到了广泛应用。课堂智能化也日趋普及。智能课堂教学也能极大提高教师教学的工作效率。

(1)技术可行性

智能课堂教学评价系统,关键技术在于数据分析阶段,即从数据采集完成之后,到可视化展示之前,采用 SparkMllib 机器学习框架进行开发。业务系统部分,采用开源框架 eduSOHO 进行二次开发,提供数据接口 API。技术架构采用 B/S 架构,系统更新及维护更加方便。

(2)经济可行性

本套系统的开发周期为 3 个月,开发所需要的服务器最少只需要三台即可,且配置不需要太高。因为 spark 是基于内存进行计算的,所以对内存要求稍高,需要每台机器至少 16g 内存。对于网络方面,大多数高校都有光纤及局域网接入。该系统的软件安装,运行及维护都不会有太高成本。所以在经济上是可行的。

(3)操作可行性

目前,大多数的服务器能够运行本系统。一般学校都有机房,只需要机房中的三台服务器即可搭建本系统,如果没有机房,只需要三台 PC 机组成集群即可安装部署。如果以上条件都不具备,目前云服务器价格也相对便宜,可以购买企业的云服务器。当集群部署完毕,系统安装调试完成,操作本系统是非常简单的,并且大多数用户几乎不用做任何培训就能够操作本系统。因此在操作可行性方面,本系统是可行的。

综合以上三个方面的因素,开发智能课堂教学评价系统时完全可行的。

1.2  系统的功能需求分析

系统的业务部分功能需求如图 3-1 所示

系统所有用户采用统一登录页面,根据不同的角色进入不同的页面,学生进入系统中,需要满足对教师的评价,进行考试及课程讨论等功能。教师系统功能需要满足上传课程,管理班级,管理题库等功能。

系统中数据存储在 mysql 中,便于向数据采集系统提供数据接口,服务器采用 nginx 服务器,因为 nginx 中自带有日志服务,再加上 js 埋点的日志数据,可满足于数据采集系统的采集。

系统的数据分析系统功能需求如图 3-2 所示:

数据分析部分功能只提供对外查询接口,不对外提供写入操作,所有的写入操作都在业务系统中。数据分析部分需要满足的功能有课堂行为,教师画像等可视化展示。

2.  系统总体设计

系统整体氛围分为两个大的部分,第一部分就是业务系统部分,此部分功能性比较强,可供教师学生进行操作,第二部分是数分析系统,此部分以分析数据为主,并不提供相关的数据写入操作,只提供相关的查询操作,此部分的数据来源全部由业务系统提供。

2.1  系统的体系结构

系统的体系结构如图 3-3 所示:

整个系统从上往下,依次为业务系统,包括:课程管理、助学管理、资源管理三个大模块,然后为数据采集模块,包括:数据采集、数据清洗、数据转化、hive 仓库存储等,再往下是数据分析模块,包括:消息系统(kafka)、数据分析(SparkMllib)、数据存储(Hbase)等。

2.2  智能课堂模块流程

智能课堂模块流程如图 3-4 所示:

智能课堂模块主要分为三个部分,第一部分数据源的获取,通过业务系统中的各项指标数据。第二部分是数据分析,首先进行的数据采集,采集分为两部分采集,一是结构化数据,而是非结构化数据,采集完之后使用 spark 进行清洗,然后存储到 HDFS 中,spark 读取 HDFS 的数据进行分析。第三部分是数据可视化,

具体对应关系如下:学科分布的数据来源对应业务系统中的课程管理/班级管理、学生偏好的数据来源对应业务系统中的考试模块/话题模块、知识点分布的数据来源对应课程管理/考试模块、教师排行榜的数据来源对应评价模块/教师信息数据、活跃教师的数据来源对应用户数据/日志数据、教研统计的数据来源对应课程管理/考试模块/班级管理。


3.  系统核心模块设计

数据分析部分是系统核心模块,数据分析结果的好坏直接影响系统的使用价值,所以选择合适的设计方法及工具显得尤为重要。本部分主要有三个模块设计。第一个是数据采集模块,即从业务系统中如何采集到理想的数据,第二个数据分析模块,即如何把采集到的数据变成有价值的数据,第三个评价标准的设计,在数据分析部分应该制定怎样的标准使得数据分析结果是准确无误的。


3.1  数据采集模块设计

数据采集分为两部分,一部分采集日志及 js 埋点数据,采用 Flume 实现。Flume 是 Cloudera 公司提供的一个高可用的,高稳定的,分布式的海量日志采集、聚合和传输的软件。

Flume 的核心是把数据从业务系统中的数据源(source)采集过来,也就是日志数据,再将收集到的数据送到指定的目的地(sink),这里就是数据分析系统中的 HDFS 上。为了保证数据采集到落地过程一定成功,在送到目的地(sink)之前,会先缓存数据(channel),待数据真正到达 HDFS 后,flume 在删除自己缓存的数据。

Flume 系统中核心的角色是 agent,agent 本身是一个 Java 进程,一般运行在日志收集节点。

每一个 agent 相当于一个数据传递员,内部有三个组件:

Source:采集源,用于跟数据源对接,以获取数据;

Sink:下沉地,采集数据的传送目的,用于往下一级 agent 传递数据或者往最终存储系统传递数据;

Channel:agent 内部的数据传输通道,用于从 source 将数据传递到 sink;

在整个数据的传输的过程中,流动的是 event,它是 Flume 内部数据传输的最基本单元。event 将传输的数据进行封装。如果是文本文件,通常是一行记录,event 也是事务的基本单位。event 从 source,流向 channel,再到 sink,本身为一个字节数组,并可携带 headers(头信息)信息。event 代表着一个数据的最小完整单元,从外部数据源来,向外部的目的地去。

另一部分是 mysql 中的数据,采用 sqoop 实现。Apache Sqoop 是在 Hadoop 生态体系和 RDBMS 体系之间传送数据的一种工具,Sqoop 工作机制是将导入或导出命令翻译成 mapreduce 程序来实现。在翻译出的 mapreduce 中主要是对 inputformat 和 outputformat 进行定制。

Hadoop 生态系统包括:HDFS、Hive、Hbase 等。

RDBMS 体系包括:Mysql、Oracle、DB2 等。

Sqoop 可以理解为:“SQL 到 Hadoop 和 Hadoop 到 SQL”。


在大数据平台立场看待数据流转问题,可以分为数据的导入导出:

Import:数据导入。RDBMS----->Hadoop

Export:数据导出。Hadoop---->RDBMS


3.2  数据分析模块设计

数据分析采用 SparkMllib 机器学习库。SparkMllib 为了解决在大数据场景下建立机器学习模型解决实际业务问题,提供了从基础的数据统计、数据类型、管道、特征抽取、加载、转换等,分类、聚类、回归算法、推荐领域提供了协同过滤和关联规则算法,模型选择部分提供了模型优化和超参数优化场景算法。算法架构如下:

Mllib 主要包含两个部分:

(1)底层基础:主要包括 Spark 的运行库、矩阵库和向量库。MLlib 支持本地的密集向量和本地向量,并且支持标量向量;同时支持本地矩阵和分布式矩阵,分布式矩阵分为:RowMatrix、IndexedRowMatrix 和 CoordinateMatrix 等。

(2)算法库:包含分类、回归、聚集、协同过滤、梯度下降和特征提取和变换等算法。

从高层设计来看,数据分析模块的机器学习部分统的组成如图 3-7 所示,其中展示了机器学习的流程。该流程始于从数据存储处获取数据,之后将其转换为可用于机器学习模型的形式。随后的环节有对模型的训练,测试和完善,以及将最终的模型部署到数据分析系统中。有新数据产生时则重复该流程。


3.3  数据分析标准设计

数据分析主要分为两个部分:一部分是应用传统的统计计算的方法对评价数据进行初步分析,并对每一个教师的评价结果以具体的分数的形式给出一个量化的结果;另一部分就是应用数据分析技术对采集的评价数据进行挖掘分析,发现隐藏在数据中有用的知识,并将其提取出来供学校和相关教师学习和借鉴由于时间和条件等多方因素的限制。

制定一个对数据分析的标准,在高阶性方面对老师的知识、能力、素质进行评价,考核综合能力和高级思维。创新性方面的评价主要体现在教师课程内容的设置是否具有前沿性和时代性,教学形式是否具有先进性和互动性。通过同行专家的听课结果,对老师是否进行深度备课,深度反思,学生是否进行深度预习,深度复习进行简要评价。

具体的分析标准如图 3-8 所示:


发布于: 2021 年 03 月 14 日阅读数: 23
用户头像

还未添加个人签名 2021.03.07 加入

还未添加个人简介

评论

发布
暂无评论
基于 SparkMLlib 智能课堂教学评价系统-系统设计(三)