基于Hadoop的课程诊改大数据可视化分析研究与应用
2023-09-21陈俊生彭莉芬
陈俊生 彭莉芬
摘 要:针对职业院校课程诊改的时效性和准确性需求,基于Hadoop平台并综合运用Scrapy爬虫框架、Echarts可视化工具等设计大数据可视化分析系统,以实现异源异构课程诊改大数据的快速采集、预处理、存储、分析、挖掘和可视化展示。可视化分析结果以图、表等方式向用户展示课程诊改大数据背后的关键信息和有用知识,为教学管理部门和教学团队改进课程教学提供支持。
关键词:Hadoop;课程诊改;大数据;可视化分析
中图分类号:G712 文献标识码:A 文章编号:2096-3769(2023)03-053-06
在大数据无处不在的今天,包括制造、金融、汽车、互联网、餐饮、电信、能源、物流、体育、娱乐和教育等在内的社会各行各业都已经融入了大数据[1]。大数据由于具有体量大、数据类型繁多等特点,传统的数据采集、处理和分析方法已经遇到了相应瓶颈,需要借助于功能更加强大的大数据处理平台。其中,Hadoop是最受关注且被运用最多的一种,几乎所有主流厂商都基于Hadoop提供开发工具、商业化工具和技术服务等,如谷歌、雅虎、微软、思科、淘宝和腾讯等都支持Hadoop[2]。随着大数据分析处理技术的快速发展,大数据正在对社会发展产生深远的影响,大数据决策也正在成为一种新的决策方式[3],因此如何对分析结果进行直观有效和科学合理的展示就显得尤为重要。大数据可视化分析是指用简单明了、清晰有效的图形或动画等呈现出大数据中蕴含的信息,便于从中提炼出最为重要及关键的信息,获取最为有用的知识与价值,是理解和洞察大数据本质(seetheunseen)的重要途径,也是体现大数据价值的关键[4],近年来正在成为大数据分析领域的研究热点之一。
课程教学作为职业院校人才培养的关键环节,直接影响着人才培养的质量。在职业院校全面推进教学诊改的大背景下,课程诊改以课程建设为统领,以提高课程教学质量为目标,按照事前、事中、事后三个环节实施。事前设定目标和标准,事中进行监测预警,事后诊断与改进[5]。目前,绝大部分职业院校在事前的目标和标准设定方面都较为完善,但事中如何进行准确监测预警,事后如何进行科学合理的诊断与改进,却缺乏足够的数据支撑和有效的数据分析手段,仍然存在诊断与改进不及时和不到位的情况。鉴于此,研究如何基于Hadoop平台实现课程诊改大数据的可视化分析,可帮助学校教学管理部门和教学团队做出科学合理的课程诊改决策,提升课程教学质量。
一、大数据可视化分析的关键技术
(一)大数据采集技术
大数据具有体量大、数据类型繁多和产生速度快等特点,因此如何进行海量异源异构数据的快速采集是大数据可视化分析的基础,也是大数据可视化分析技术的研究起点。在互联网行业快速发展的今天,数据采集方式有了质的飞跃,包括传感器采集、日志采集、网络爬虫采集和数据库采集等[6]。其中网络爬虫采集指的是在网上到处或者定向抓取特定网站网页数据的自动化程序,由于其使用灵活且可以高度定制,还支持非结构化数据的抽取,所以在数据采集领域被广泛使用。
网络爬虫可以通过Python、Java和PHP等多种语言实现,由于有强大的第三方程序库的支持,其中以Python实现最为便捷。Scrapy是用纯Python编写的专门用于爬虫程序开发的应用框架,由多个模块组成,用户一般只需要开发少数几个模块就可以轻松实现相关主题的爬虫。Scrapy框架各模块的功能和使用需求如表1所示。
Scrapy 框架虽然使用简单、高效,但也存在不足,例如,Scrapy框架下的爬虫不支持分布式、单线程执行、内存消耗过大等,因此深入理解 Scrapy 框架的扩展机制,通过改进和扩展框架中的一些模块来弥补其不足是十分必要的[7]。
(二)基于Hadoop的大数据分析处理技术
Hadoop是Apache软件基金会旗下的一个开源分布计算平台,为用户提供系统的底层细节透明的分布式基础框架,具有良好的跨平台性,且可以部署在廉价的计算机集群中,目前被公认为大数据标准开源软件[8],其与大数据分析处理相关的核心组件如下:(1)分布式文件系统(HDFS)和MapReduce是Hadoop的两大核心,HDFS是对谷歌文件系统的开源。HDFS可运行在廉价机器集群上且可以处理超大数据集,在设计上HDFS把硬件故障作为一种常态来考虑,因此在部分硬件发生故障时,仍能最大限度地保证文件系统的可用性和可靠性;MapReduce是一种大数据集离线并行计算框架,其核心思想就是“分而治之”,它把原始数据集切分成若干个独立的数据块,再分发给若干个子节点来并行处理,最后通过整合各子节点的结果得到最终结果。(2)HBase是一个构建在Hadoop之上的分布式的、面向列的开源数据库,HBase不同于一般的關系数据库,它是一个非常适合对非结构化数据进行存储的数据库。(3)Hive是基于Hadoop的数据仓库工具,它提供了类似于关系型数据库SQL的查询—HiveQL,Hive将HiveQL转换为MapReduce任务运行,而不必开发专门的MapReduce应用,因此十分适合对结构化数据进行统计分析。(4)Sqoop是专门为大数据集设计的,是用来在Hadoop和各种数据系统之间进行双向数据交换的工具,通过Sqoop可以实现在HDFS、Hive、HBase和关系型数据库之间的数据迁移工作。
(三)数据可视化技术
随着大数据技术的快速发展,可视化展示的应用需求越来越多,各种可视化展示工具也应运而生,常见的数据可视化工具包括D3.js、Data.js、Google Chart Tools、High Charts、Echarts、iCharts、R、Tableau和Python(如pyplot包)等[9]。其中ECharts是由百度团队开源,并于2018年初捐赠给Apache基金会,是一款基于JavaScript的数据可视化工具。ECharts由于其简单易用、量级合适,且可以提供生动、直观、可个性化定制和可交互的数据可视化图表,所以在可视化领域应用范围十分广泛。
二、系统的设计与实现
(一)系统整体架构设计
系统整体架构设计如图1所示,旨在通过快速有效地对相关行业大数据进行采集,并基于Hadoop及其核心组件实现数据预处理、存储和分析挖掘工作,最终通过可视化工具围绕相应指标和维度对分析挖掘结果进行合理展示。
具体来说,数据采集与清洗层负责对业务系统数据、网站标准接口数据和网络公有数据进行采集和初步清洗工作;数据存储与管理层负责对初步清洗以后的数据进行集成和存储工作;数据处理与分析层负责对预处理后的数据进行分析和挖掘工作,并将分析和挖掘的结果加载到结果数据库中;数据应用层通过自定义数据接口实现对结果库数据的访问,并将数据推送至前端进行可视化展示和交互等,用户通过浏览器即可使用。
(二)系统实现的技术流程
系统主要围绕数据采集、預处理、存储、分析、挖掘和可视化展示等环节设计与实现。借助于数据库采集工具和自主设计的Scrapy分布式爬虫完成原始数据的快速采集工作;使用Kettle和Sqoop等实现数据预处理工作,并将预处理后的数据存入分布式数据库Hbase中;数据的分析和挖掘工作主要由Hive和MapReduce实现,结果数据将被推送至后台MySQL结果数据库中;前端通过自定义数据接口获取结果数据,并通过Echarts等可视化工具实现后台数据到前端可视化图表的转化,系统实现的技术流程如图2所示。
(三)系统关键环节的设计与实现
从实现难度和对系统的重要性影响方面来考量,系统设计与实现的关键环节包含以下四个方面。
1.分布式爬虫设计
系统需要围绕课程诊改的指标和维度进行数据采集,虽然每个学校的校情不尽相同,但课程诊改的目标链、标准链的指标和维度大体相通,以某校课程诊改为例,需要采集的数据对照关系,如表2所示。
由表2可知,除了需要采集业务系统和线下数据以外,还有来源和维度众多的网络标准接口数据及网络公有数据需要通过爬虫采集。考虑到大数据分析的数据量级和课程诊改的时效性问题,采用传统的单机爬虫会受到带宽、CPU和IO等因素限制,爬取效率过低,无法出色完成网络数据的采集工作,因此设计性能更优的分布式爬虫是必需的。
通过上节的分析可知,虽然Scrapy 框架默认不支持分布式,但其具有良好的可扩展性,因此重点对基于Scrapy的分布式爬虫策略进行研究,项目组借助于Redis(一种key-value存储系统,具有极高的读写性能),并基于redis的特性对Scrapy做了相应的改进和扩展,进而设计并实现了所需的分布式爬虫。具体来说完成了Scheduler、Duplication Filter、Item Pipeline和Base Spider四个组件的改进和扩展工作,改进和扩展的策略包括:(1)在scheduler组件中重写了爬虫调度模块,把原有的Scrapy队列换成了Redis数据库队列,从而实现了分布式调度工作;(2)在Duplication Filter组件中使用Redis的set结构实现对request的去重工作;(3)在Item Pipeline组件中将Item存储在Redis数据库队列中以实现items processes集群和分布式处理;(4)在Base Spider组件中不再使用原有的Spider类,重写的RedisSpider继承了Spider和RedisMixin这两类,RedisMixin是用来从Redis数据库队列中循环读取url的类。
2.大数据预处理核心要素
由于采集到的数据通常无法直接用于后续的数据分析,因为对于来源众多、类型多样的数据而言,数据缺失和语义模糊等问题是不可避免的[10],因此必须进行数据预处理操作。大数据预处理包含数据清洗、数据规约、数据转化与数据集成等[11],其核心要素是数据的归一化表示和存储,即如何实现众多数据系统中异构数据的快速迁移和集成。由表2可知,课程诊改的数据具有异源异构的特性,具体来说业务系统数据和线下考核文件数据一般都存储在Oracle或MySQL数据库中,爬取的数据为了操作的方便一般会直接写入HBase数据库中,分析和挖掘的结果需要存入到MySQL结果数据库中,以便最终被可视化展示。面对众多的数据系统,研究如何在不同数据系统之间快速实现数据迁移至关重要。由上节的分析可知,Sqoop是专门为大数据集数据迁移工作而设计的,结合Sqoop的特点和系统开发实际,利用Sqoop在不同数据系统之间的互导操作实现数据的快速迁移和集成。具体实现过程如下:
(1)业务系统数据导入到HBase
启动Hadoop集群和HBase,在HBase上创建所需的数据表,然后通过shell命令导入数据,以导入教务系统中学生评教表score至HBase中为例,导入的命令如下:
sqoop import--connect jdbc:mysql://bgserver:3306/gradedb--username root-P--table score--hbase-table "gradedb"--column-family "score"--hbase-row-key "sid,cid"--hbase-bulkload
(2)分析和挖掘结果导入到Mysql结果数据库
启动Hadoop集群和MySQL数据库服务器,登录MySQL数据库服务器并完成结果数据表的创建,然后通过shell命令导入数据,以导入Hive统计分析以后的学生评教数据为例,导入的命令如下:
sqoop export--connect jdbc:mysql://bgserver:3306/gradedb--username root-P--table score--input-fields-terminated-by ','--export-dir /user/hive/warehouse/gradedb.db/score/*
3.基于大数据思维的文本数据挖掘算法思想
系统分析和挖掘的数据对象大体可以分为两类,即结构化的业务数据和非结构化的网络评论等文本数据。对于结构化数据可以通过搭建Hive数据仓库,并利用HiveQL来完成统计分析;而对于非结构化的文本数据主要是用来分析学生对于某些课程的关注点(评论文本的关键词)及情感倾向(正面或负面),需要自行设计算法完成。
由于市面上成熟的开源中文分词工具很多,所以关注点的分词、词频统计和排序等工作实现较为便捷,因此本环节的研究工作主要集中在关注点情感倾向的分析算法设计上。目前文本关键词的情感倾向分析方法主要有情感词典方法和机器学习方法两大类[12],由于中文语义的特殊性,这两种方法实现的门槛都比较高。考虑到关注点情感倾向只需区分正负面,而处理的又是大数据集,所以关注点情感倾向与课程评教评分之间总体必然呈正相关[13]。鉴于此,项目组设计了基于大数据思维的关注点回溯分析法来分析关注点的情感倾向,即将关注点回溯到评教评分数据中,结合评分的高低分布来判定关注点的情感倾向。具体的算法流程设计如图3所示。
4.数据可视化展示的实现
数据可视化展示作为大数据可视化分析最后一个同时也是最重要的环节,由图2可知,分析和挖掘的结果均存放于MySQL结果数据库中,故数据可视化分析结果展示的具体步骤包括:(1)基于Mybatis开发自定义数据接口,向上层提供MySQL结果数据库的数据访问与处理功能;(2)结合课程诊改的指标和维度需求,综合运用HTML、CSS、Java Script、Vue和Echarts等,选择合适的图表对后台结果数据进行科学合理的可视化展示。综合前面的技术流程和可视化展示的步骤即可实现课程诊改大数据的可视化分析。
三、可视化分析结果的应用价值
正如前文所述,课程诊改大数据可视化分析的结果旨在通过简单明了、清晰有效的图形呈现出课程诊改大数据中蕴含的重要及关键信息,从而获取到最为有用的知识与价值,能够为教学诊改提供科学的决策支持。为了便于说明,这里以某高校“大数据技术基础”课程诊改的部分可视化分析结果为例来对其应用价值进行分析。
(一)分析学生的课程视频观看行为和观看趋势
由图4可知,大部分学生的视频观看次数都在0~50次之间,观看300次以上的学生寥寥无几,说明大部分学生对于课下自主学习的积极性和重视程度不够;学生单次观看时长大都集中在0~20min之间,这说明在当前快节奏的生活中,短小精悍的微课版视频可能会更受学生欢迎,这也为后续课程视频资源的建设和完善提供了新的方向。
由图5可知,学生按教学周的视频观看人次和观看时长总体呈正相关,期初呈现快速增长趋势,期中下降趋势明显,期末又呈现出逐步回升的态势,这说明新学期伊始的新鲜感和期末考核之前的紧迫感会刺激学生的观看欲望,而期中阶段是学生最容易放松的时候,这也是教学过程中需要及时预警并要求教学团队加强过程監管的阶段。
(二)分析学生网络评论中对于该课程的关注点
由图6可知,学生对于该课程的正面关注点主要集中在OBE加分制、过程考核、课堂互动、1+X课证融合等方面,这说明教学团队在授课过程中注重课堂互动、过程考核和OBE加分制的正向激励作用等教学方法,以及积极推行1+X课证融通的课程教学改革得到了学生们的普遍认可,这些都值得在其他课程教学过程中推广和应用。当然除了这些正向的关注点以外,也应看到还有诸如枯燥、严厉和拖堂等相对负面的关注点,这些则是教学团队后续需要重点诊改的地方。
本文综合运用大数据可视化分析技术(大数据采集技术、基于Hadoop的数据分析处理技术和数据可视化技术等)对课程诊改大数据进行分析。实践证明,分析结果以图、表等简单明了、清晰有效的方式呈现出课程诊改大数据中蕴含的信息,便于从中提炼出关键的信息和有用的知识,能够为学校教学管理部门和课程教学团队推进课程诊改、有效提高课程教学质量提供相应的支持。在系统设计与实现过程中,构建了相对完整的大数据可视化分析系统框架,能够为教学诊改的学校、专业教师和学生等用户进行大数据可视化分析提供一个较为完善的模板。
参考文献:
[1][3][8][10]林子雨.大数据技术原理与应用[M].北京:人民邮电出版社,2021:11-34.
[2]王艳,蒋义然,刘永立.基于Hadoop的大数据处理技术及发展[J].信息记录材料,2020(11):021.
[4]Zikopoulos P, Eaton C. Understanding Big Data: Analytics for Enterprise Class Hadoop and Streaming Data[M].New York:McGraw-Hill Osborne Media,2011:1-10.
[5]教育部办公厅关于建立职业院校教学工作诊断与改进制度的通知[L].教职成厅[2015]2号.
[6][11]天津滨海迅腾科技集团有限公司.数据采集与预处理项目实战[M].天津大学出版社,2020:45.
[7]李代祎,谢丽艳,钱慎一,等.基于Scrapy的分布式爬虫系统的设计与实现[J].湖北民族学院学报(自然科学版),2017,35(3):6.
[9]贾利娟,刘娟,王健,等.基于PyEcharts的全球玉米贸易数据可视化系统建设及应用展望[J].农业展望,2019,15(03):46-54.
[12]洪巍,李敏.文本情感分析方法研究综述[J].计算机工程与科学,2019,41(4):8.
[13]陈俊生,彭莉芬.基于Python+Echarts的大数据可视化系统的设计与实现[J].安徽电子信息职业技术学院学报,2019(4):6-9.
Research and application of Hadoop-based big data visualization analysis of curriculum diagnosis and reform
CHEN Jun-sheng, PENG Li-fen
(Anhui Vocational College of Electronics & Information Technology,
Bengbu Anhui 233000, China)
Abstract: Aiming at the timeliness and accuracy requirements of curriculum diagnosis and reform in vocational colleges, a big data visualization analysis system is designed based on Hadoop platform and comprehensive use of the Scrap crawler framework, Echarts visualization tools, etc., to realize the rapid collection, pre-processing, storage, analysis, mining and visual display of big data of heterogeneous curriculum diagnosis and reform. The visual analysis results show users some potential key information and useful knowledge in the big data of curriculum diagnosis and reform in diagrams and tables, which can provide support for teaching management departments and teaching teams to improve course teaching.
Key words: Hadoop; Curriculum Diagnosis and Reform; Big Data; Visualization Analysis