基于服务器集群的大数据实训平台建设
2023-11-13施炎峰
韩 磊,施 展,施炎峰
(南京工程学院 计算机工程学院,南京 211167)
数据科学与大数据技术专业(以下简称大数据专业)是“新工科”背景下的新兴专业[1],也是教育部落实《促进大数据发展行动纲要》而批准的计算机类特设专业[2]。
中国大数据技术与应用联盟的统计数据显示,我国大数据产业规模逐年提高,大数据人才缺口巨大,大数据专业的设立顺应了大数据人才需求[3]。从招聘网站公开的岗位看,大数据采集工程师、实施运维工程师、大数据应用开发工程师、数据分析工程师、机器学习算法工程师、数据科学家等岗位需求量大。不同岗位的知识、能力、素质要求差异较大,但强化实践是这些岗位的共同特征。强化实践教学离不开优质的实验平台,作为新兴专业,大数据专业的实训平台建设还不完善,在平台系统结构、实践教学设计等方面亟待深入研究。
1 大数据专业实践教学体系分析
1.1 大数据专业课程体系逐步完善
我国最早设立大数据专业的3 所高校于2016 年开始招生,随后各高校前赴后继,设置大数据专业的本科院校多达600 余所。这些高校在专业定位、人才培养方面各具特色,形成了百花齐放的局面[4]。在人才培养方案和课程设置方面,积累了宝贵经验,形成的课程体系主要包括计算机科学、数据科学、大数据技术3 类课程[5]。
1)计算机科学类课程包括Python 语言、Java语言、数据结构、计算机组成原理、操作系统、计算机网络等。这类课程服务于学生了解计算机的发展历史、计算机的软硬件构成及运行环境、编程技术等。
2)数据科学类课程主要包括统计学、离散数学、数值计算方法、数据科学导论、数据库原理、大数据存储与管理、并行与分布式计算、数据可视理论等。这类课程培养学生在大数据数理基础、数据存储原理、并行计算和可视化方法等方面的能力。
3)大数据技术类课程有数据采集与预处理、机器学习、深度学习、R 语言数据分析、数据挖掘、行业大数据分析等。此类课程通常以项目化教学的方式,培养学生分析、挖掘大数据的技术能力。
1.2 大数据实践教学有待优化
尽管各高校已经设计了相对完善的人才培养方案和课程体系,但总体来看,实践教学仍是各高校大数据专业的短板所在[6],具体表现在如下3 个方面。
1)实训平台算力不足
各高校对新专业建设都会投入一些专项经费,用于实验室建设。考虑到专业平衡,经费划拨参照传统专业实验室建设进行,但是大数据存储与计算资源价格昂贵,划拨的实验建设经费不足以购买充足的服务器,导致实训平台算力不足,学生对集群的体验感差。有的学校只购置了3~4 台服务器,无法同时满足两个行政班同时开展实验,只能分批进行实验。
2)实验项目资源匮乏
因为建设时间短,大数据专业在实践教学方面缺少具有广泛共识的经典案例。各个学校根据自身实验平台和师资力量情况,开发不同的课程资源。在实践教学过程中,实验项目设计完全依赖于教师的知识背景、实践经验。不同课程实验之间的衔接也有待进一步优化。比如,围绕同一数据集的清洗、存储、分析,进而设计对应的实验,这些工作还未进行系统化探索。
3)统一平台管理体系缺失
目前,大数据实验室通常缺乏统一的虚拟化资源分配与管理平台,仅使用服务器操作系统自身的账户管理功能分配给学生使用,增加了教师的日常管理负担。另外,实验室资源使用相对混乱,特别是服务器的使用、维护、保养,达不到规定的要求,难以做到持续优化。
2 大数据实训平台总体设计
针对大数据专业在实践教学中的上述痛点,本节以构建大数据实训平台为突破口,深入分析平台功能需求,进而提出完善的设计方案。
2.1 大数据实训平台功能需求
大数据实训平台主要面向管理员、教师和学生三类用户,提供教学管理、课程资源池服务和虚拟化服务。对于教学管理功能,学生角色仅使用其中的作业管理功能。从以下3 个方面介绍大数据实训平台的功能需求。
2.1.1 课程教学管理功能
大数据实训平台面向于大数据专业的日常教学,平台应具备课程教学中必要的管理功能。常见的管理功能包括:学生管理、课程资源建设、信息发布、作业提交与批改、成绩综合评定等,如图1 所示。
图1 课程教学管理模块分析
学生管理模块用于教师对参与实验或实训的学生进行系统管理。如学生名单的批量导入与导出、格式定制,学生基本信息的增删改查,实验前的分班分组,实验资源的权限分配等。课程资源建设模块除了平台预置一些资源外,应提供教师自建课程资源的接口,方便教师将教学视频、演示文稿资源传入系统;同时应支持教师设计实验资源,如实验指导教程、实验参考代码、实验数据等。作业管理模块应根据题型特点,灵活支持教师录入、导入、发布等,至少应具有题库设计、组卷发布、计时、题型、统计等功能。成绩评定模块应体现过程评价,尤其是实验的参与度、资源访问情况、作业完成情况等。
另外,教学管理各模块中界面构成方面有一些共同的需求,如对文件的显示与处理等[7]。具体需求如下。
1)支持的文件类型及操作
文本文件内容查看、在线编辑保存;自动生成图片文件缩略图,支持图片幻灯片播放;支持mp3、wav、wma、m4a、webma 等常见音频文件的在线播放;支持flv、f4v、mp4、mkv、wmv、rmvb 等视频文件的在线播放;支持pdf、word、excel、ppt 等办公类文档;支持zip、rar、tar、gzip 等压缩文件。
2)文档操作
支持类似Windows 的键盘快捷功能,选中文件后,提供打开、复制、剪切、删除、属性、压缩、重命名等功能。
2.1.2 课程资源池功能
课程资源是大数据实训平台的重要组成部分,起到支撑大数据专业实践教学的作用。日常教学中的课内实验和综合实践阶段的教学案例共同构成了实践教学资源,不同高校的课程体系特色不同,用以支撑课程体系的实践教学环节也不尽相同。因此,实践教学设计要求能够彰显教学特色,方便教师更灵活地进行教学设计。本文设计的大数据实训平台对实践教学资源的管理将以实验项目或实训项目作为优化组合的单位,逻辑上以项目库的形式存储于系统中,提供查询编辑基本接口,教师根据课程需要组合优化实验项目,如图2 所示。同时,允许教师查询所授班级前导课程的实践项目,鼓励递进式项目开发。
图2 课程教学管理模块分析
大数据实训平台提供的实践课程资源应具备如下4 个方面的特点。
1)项目内容围绕大数据核心技术体系
一方面,随着大数据技术迅速发展,技术生态系统越发庞大,各类组件层出不穷[8]。从成本角度看,针对每个组件设计实验项目,不仅可能超出高校实验室项目建设预算,而且也偏离教学实践的实际需求。另一方面,只有抓住大数据的核心技术体系,才能服务好多类高校的人才培养需求。不同特色的高校在人才培养方面都高度重视大数据核心技术体系,抓住核心技术体系,就抓住了实践教学根本。因此,项目的内容应紧紧围绕大数据核心技术体系展开。
2)项目设计服务递进式项目教学
递进式项目化实践教学是教师与学生通过共同实施一个完整系列的实训项目提高学生实践操作能力的教学活动[9]。大数据专业的递进式项目化教学能够体现课程的递进式和项目的递进式,大数据实训平台在项目设计时可以围绕数据采集、清洗、存储、处理、可视化这条主线,设计项目之间的递进关系,如针对同样的数据集展开或面向同样的业务领域展开,提升教学效果。
3)项目运行考虑并发性特征
实验或实训项目设计与其他工程项目不同,多个班级或多个小组同时进行实验是常见的组织管理形式,所以项目设计应充分考虑运行时的并发性,结合平台资源特点,设计合理的算法和数据存储模式,必要时给出特殊的实验管理方式建议。
4)项目维护坚持高效实用准则
大数据实验和实训是有组织的学生实践,应考虑数据采集、清洗和加工对数据资源的改变,也应考虑教师结合本校特点对现有实训项目的改进。前者的改变应在实验之后快速的恢复或清除;后者的改变是对项目库的丰富,应加以保留。凡此种种,都是实训平台维护应解决的重要问题,应坚持高效实用的准则,设计必要的维护操作界面,提高系统的易用性和可持续性。
2.1.3 虚拟化平台部署功能
除了提供课程资源外,大数据实训平台还要服务于大学生创新创业,因此,平台应具有一定的开放资源,包括计算、存储和网络等。
首先,对于开放资源的管理应采用Web 化的统一界面,提供必要的身份认证和角色权限功能,不同角色具有不同的资源使用权限。
其次,至少支持两个层级的资源定制云服务[10],包括IAAS 和PAAS。IAAS 层级要提供CPU、GPU、存储、网络等虚拟硬件资源,学生根据项目所需,自己安装和管理操作系统、数据库、中间件、应用软件和数据资源;PAAS 层级主要搭建机器学习领域必要的训练平台,可以通过半PAAS 和全PAAS 两种方式进行设计。半PAAS平台软件层中只安装了操作系统;全平台PAAS安装了应用软件依赖的全部平台软件,针对应用软件来做资源配额和权限控制。
2.2 大数据实训平台建设方案
2.2.1 架构设计
大数据实训平台是面向实践教学的系统,教学平台对高性能的要求低于对全面性的追求。根据上节的系统需求分析,大数据教学既有特殊类别的数据采集,也有面向流数据和批数据的智能分析。因此,本文使用成熟稳定的Lamda 架构设计大数据实训平台。
Lamda 架构将批处理作业和实时流处理作业分离,各自独立运行[11]。本文的Lamda 架构如图3所示,主要包括Batch、Serving、Speed 共3 个层次。Batch 层主要负责所有的批处理操作,同时也维护数据处理依赖的主数据,为Serving 层提供“预计算”。而Serving 层是对Batch 层的增强,响应数据查询请求,既可以使用关系数据库传统技术,也可以采用OLAP 产品。Speed 层处理流式数据,能以实时或近似实时的方式处理大量的数据,支撑的技术主要有Storm、Spark Streaming等,也是实践教学的技术重点。
图3 Lamda 架构
2.2.2 系统部署
常规实践教学以原有教学资源+教师创新教学设计的方式进行,遵循既定教学大纲,所需的平台资源固定,涉及技术基本属于Hadoop 生态链[12];而大学生创新实践活动是教师指导下的学生自主创新过程,没有既定方案,不同创新小组所需的算力、存储、网络、数据等各不相同,要求平台具有资源定制能力。
考虑到大数据实训平台要支撑常规实践教学和大学生创新实践两类应用,本文提出将大数据实训平台部署为Hadoop 和私有云两个功能集群。Hadoop 集群主要负责实践课程常规教学,私有云集群支持大学生创新实践。另外,为节约实验室建设成本,两个集群的物理部署存在交集,相关组件分布于10 台服务器上,如图4 所示。
图4 系统部署
Hadoop 集群中,1 台服务器作为管理节点,管理文件系统的命名空间,维护文件系统树及整棵树上所有文件和目录;1 台服务器作为备用管理节点和工具节点,主要运行其他非管理进程,比如Cloudera Manager 和Hive Metastore 等。2 台服务器作为集群的边缘节点,用于集群中启动作业的客户端;4 台服务器用于部署数据节点,主要用于运行DataNode 以及分布式进程,比如ImpalaD。私有云集群中,控制节点、存储节点和计算节点各占2 台服务器,其中,控制节点的2 台服务器与Hadoop 集群中的边缘节点共用,存储节点的2 台服务器与Hadoop 集群中的部分数据节点共用。
2.2.3 软件层次
在集群物理部署基础上,安装相关系统组件,软件层次如图5 所示,大数据专业的核心课程实验环节依托这些组件的应用展开,内容贯穿了大数据采集及处理全过程[13]。
图5 集群软件层次
1)支撑数据抽取层的课程主要是数据采集技术,该课程是大数据专业的核心课程。课程教学要求平台支持常见的数据采集方法,如日志采集、分布式消息订阅分发、ETL、网络数据采集等。配备Flume、Kafka、ETL 等核心组件。
2)数据层组件是大数据存储的技术核心,相关课程主要有分布式文件系统、NewSQL 和NoSQL数据库等。核心组件包括MongoDB、GraphDB、MySQL cluster、HBase、Hive、Pig 等。
3)计算层是大数据处理的关键,与之相关的课程有大数据并行计算、统计过程与数据挖掘、大数据机器学习等。该层的主要技术组件包括:YARN、MapReduce、Spark、Mahout 等。
4)应用层是大数据平台高层业务抽象,包含了提供给用户的接口。在大数据实训平台中,主要是实验和实训应用系统。
3 基于实训平台的递进式项目化教学实践
按照本文思路建设的大数据实训平台,能够服务教师开展递进式的项目化教学。下面以音视频推荐系统为例,阐述递进式实践教学设计。
3.1 教学设计思路
本文将大数据实践教学分为3 个进阶阶段,如图6 所示。
图6 递进式实践教学体系
1)课内实验阶段,针对课程涉及的核心技术,设计相关实验,起到强化知识点的作用。本阶段的主要课程有大数据采集技术、数据清洗技术、大数据存储技术、统计过程与数据挖掘、大数据安全和数据可视化等。
2)课程实训阶段,这是在课内实验基础上的进阶,在课程体系的关键节点上,设置若干课程实训,每个实训历时1~2 周,综合运用课程实验的相关技术点,并提升拔高。大数据实践教学体系中,实训阶段的项目有大数据采集实训、分布式数据库实训、大数据挖掘实训等。
3)创新项目阶段,面向一定的应用场景,综合运用系列课程的知识点和关键技术,解决实际问题。该阶段的创新项目围绕2 个方向展开:一是围绕Hadoop 集群的综合实践;二是大数据驱动下的机器学习综合实践。
在实验设计时,本文采用逆向思维,对音视频推荐系统进行分解,分配到各个实践阶段,进而嵌入到核心课程。学生在课程学习中,通过解决实验级别的小问题,逐步构建项目级应用,不断提升学习兴趣。
3.2 实践项目设计
推荐系统是信息过载时代应运而生的智能化应用[14],信息过载源于互联网、社会化媒体、物联网、云计算的飞速发展和深度融合,而这些技术又是大数据形成与发展的关键支撑[15-16]。因此,推荐系统是大数据专业理想的教学案例之一。
本文重点针对音视频的推荐系统,其中,音频信息是大数据实训系统的基础数据,存储于本地集群,用于音频数据标记、清洗、音频处理,推荐等应用;系统不存储原视频信息,只存储爬取来的影评数据,用于推荐算法的研究。作为服务于教学的案例项目,系统不仅能够根据历史记录,合理推荐音视频信息,还将设计过程分解到课程实验中实施。
3.3 系列实验组织
围绕音视频推荐系统涉及的数据处理流程,本文将其分解到数据采集、数据存储、数据分析和数据可视化4 个阶段。
在数据采集课程中,可以安排两个针对音视频推荐系统的实验如图7 所示,分别是影评数据网络爬虫采集实验和Flume 日志数据采集实验。前者是获取豆瓣电影、猫眼电影、Box office mojo等影评信息,后者收集本地音频访问日志。基于这些数据,通过构建Hadoop 集群,清洗爬虫数据,并进行分布式存储。在此过程中,设置Hadoop集群搭建、影评数据清洗、音频数据分布式存储、影评数据存储转换等实验。分布式存储音视频信息后,可以进行多种智能分析算法,比如Kmeans 聚类分析、协同过滤推荐算法、Spark 随机森林算法、影评语义分析等。然后,将大数据分析结果通过不同方式进行可视化展现,如柱状图-条形图-散点图实验、扇形图-箱型图-面积图实验、Top10 流行电影展示实验等,实验清单如表1所示。通过递进式项目教学的开展,让学生对知识体系的认识更加清晰,学习兴趣更加浓厚。
表1 递进式项目教学设计
图7 实践教学系统界面
4 结束语
大数据专业作为“新工科”背景下的新兴专业,实践教学尚未形成标准化体系,实验室建设存在平台算力不足、实验项目匮乏、管理工具缺失等问题。本文从师生角度分析大数据实训平台功能需求,融合Hadoop 集群和云计算两个功能集群,设计了一种资源集约、功能全面的大数据实训平台架构,围绕数据采集、清洗、存储、分析和可视化,开展了从课内实验到课程实训,再到创新项目的递进式项目教学实践,取得良好实效。所提出的“2+2+2”建设方案及教学实践是对大数据专业建设的有益探索,将为同类专业建设提供借鉴。