大数据实验室建设与应用研究
2018-06-05李馥娟
李馥娟
(江苏警官学院 计算机信息与网络安全系, 江苏 南京 210031)
随着移动互联网、物联网、社交网络等应用的快速发展,数据的产生、存储、分析、展示等方式都发生着深刻变化,不同来源、不同结构、不同功能数据的应用价值越来越多地引起人们的重视,大数据已成为目前整个信息技术行业中关注度最高、发展最快、市场需求最旺盛的技术之一,成为学术界和工业界研究的重点和热点。目前,对于传统数据挖掘和处理技术的研究和应用成果已经非常丰富,但原有的软件技术和常用的软件处理工具在面对大数据这一具有特定属性的数据集时,在技术和方法上都遇到了困难和挑战。
在学术界和企业界加快大数据技术研究和应用创新的同时,政府职能部门也在大数据专业人才培养方面提出了一系列具有重要指导意义的政策文件。其中,在2015年8月31日国务院印发的《促进大数据发展行动纲要》中就提出:“创新人才培养模式,建立健全多层次、多类型的大数据人才培养体系”,并鼓励采取跨校联合培养等方式开展跨学科大数据综合型人才培养。在此环境下,一些高校开始设置大数据相关专业,推动大数据学科建设,加强大数据人才培养,为大数据产业发展提供有效保障。根据教育部公布的普通高等学校本科专业备案和审批结果中提供的信息,从2015年首批开设“数据科学与大数据技术”专业以来,开设该专业的高校到2016年已经达到35所。然而,由于大数据专业是一个新型专业,即使是目前已经开设该专业的高校,也是在不断实践中探索人才培养的具体内容和环节,没有现成的模式可供借鉴和套用。为此,本文立足社会人才需求和大数据人才培养要求,结合本校大数据相关课程建设中取得的成功经验,从大数据专业人才培养的具体要求出发,提出了大数据实验室建设的内容和方法。
1 大数据实训平台设计
大数据实验室的建设,在突出大数据技术和应用固有功能的同时,还需要充分借鉴现有实验室建设、应用和管理中的既有成果,提升大数据实验室的建设和应用水平,最大限度地发挥实验室在服务教学和科研中的功能[1-2]。大数据实验实训平台具体由6大功能模块组成。
(1) 大数据处理支撑平台。该平台一般以开源Apache Hadoop为基础,其功能是为整个实验实训平台提供对海量数据的分布式处理。该支撑平台除提供了Apache Hadoop 项目中的HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)和MapReduce编程框架两大基本组件外,还提供了Hadoop Streaming、HBase、Hive等主流组件[3]。为便于进行实验,并可以更快速、更准确、更稳定、更可靠地从各类无序的海量数据中挖掘有价值的信息,对支撑平台在安全性、易管理性、高可用性等方面进行了优化。
(2) 教学管理支持平台。该平台充分借鉴现有在线学习系统的功能,采用B/S架构,以便于对教学课程、实验教材、教学资源库等进行集中管理和访问授权。同时,通过增加在线评估、在线测试等辅助功能,有效提升教学质量。
(3) 云课堂综合服务平台。云计算是支撑大数据的关键技术之一。该平台基于云计算技术,为实验者提供虚拟教学桌面和虚拟实验桌面。虚拟教学桌面的功能与传统在线互动教学平台类似,为师生提供桌面共享、在线测试、分组讨论等功能,以提高教学质量;虚拟实验桌面提供Hadoop部署环境和实验应用环境,强化对大数据基础理论的学习和实践应用的训练。
(4) 虚拟化实验平台。大数据技术离不开虚拟化技术的支持,在具体实验过程中,各类大数据组件的安装部署、数据分析等操作都需要在虚拟机上进行。该平台需要提供虚拟机的创建与配置、虚拟化网络环境设置[4]、存储资源分配等管理功能,为实验者提供虚拟化实验环境。
(5) 应用建模分析平台。大数据分析和可视化建模[5]是大数据技术中直接服务于具体应用的两项功能,也是大数据技术最具代表性的功能体现。建模分析平台整合了大数据分析和可视化建模两大功能,支持典型的数据分析算法,实验者可直接通过图形化的组件、以拖拽方式进行数据分析模型的搭建,以降低大数据建模难度。
(6) 师生客户端。师生客户端以Web方式,除实现传统的在线资源管理与师生互动功能,还提供有关大数据技术的开发工具,使实验者可以根据学习需要选择安装所需的开发工具,编写和调试代码。
2 主流大数据技术
2.1 大数据技术框架
近年来,随着大数据应用越来越被重视,各类大数据技术得到了雨后春笋般的发展,分别围绕大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用等方面进行了大量创新性研究和实践,取得了大量成果。就Hadoop生态圈而言,短时间内推出了很多各具功能特征和应用特点的组件,并快速得到了应用。在大数据学习中,需要根据学习者的特点,有选择地选取学习内容,使其较为系统全面地学习当前主流的大数据技术。根据教学需要,本文认为对于大数据技术框架的学习,主要包括以下内容:数据抽取工具Sqoop、分布式海量日志分析工具Flume、分布式存储系统HDFS、键值数据库HBase、数据仓库Hive、分布式计算框架MapReduce/Yarn、内存计算Spark、流式计算Storm、数据挖掘算法库Mahout、机器学习工具包MLLib,以及其他主流大数据组件[6]。
2.2 数据挖掘算法库Mahout
云计算和大数据被称为一枚硬币的两面,掌握云平台下的编程方法是学习大数据技术的基础。不像单机或传统的网络环境,在云平台下编程时首先要掌握云平台框架,并要熟悉某一个具体算法的原理,增加了学习和应用的难度。然而,Mahout的推出,在学习大数据技术与教学难度之间取得了一个平衡。Mahout是Apache基金会的一个适用于Hadoop云计算平台的开源项目,提供了一个可扩展的云平台机器学习经典数据挖掘算法库[7-9],以帮助开发人员在不需要自己编写复杂算法、不需要掌握太深的云平台框架和数据流程理论知识的条件下,通过调用Mahout相关算法的程序接口来方便快捷地创建智能应用程序。
(1) 聚类算法。一个聚类即是一类具有相同特征的数据的集合,位于该集合中的每个个体是相似的,而不同聚类中的个体是不相似的。聚类是将一个数据集合根据特征的不同分割成多个被称为簇或类别的子集,使得同一子集中的元素尽可能相似,而不同簇中的元素尽可能相异。聚类分析的目的就是把一组无标签的数据加上标签,是一个迭代学习的过程。Mahout算法库中聚类模块包含的算法主要有:Canopy、K-Means、Fuzzy K-Means、Mean Shift、Spectral、Minhash、Top Down。表1对算法的主要功能进行了描述[10]。
表1 Mahout算法库中聚类模块主要功能描述
(2) 分类算法。分类算法是数据挖掘、机器学习和模式识别等领域用于解决分类问题的方法,具体通过对已知类别训练集的分析,从中发现分类规则,以此预测新数据的类别。分类是一种基于训练样本数据(这些数据都已经被贴了标签)区分另外的样本数据标签的过程,即解决另外的样本数据应该如何贴标签的问题。分类算法和聚类算法的不同之处在于,当具体的学习过程有指导时称为分类,而无指导时称为聚类。有指导是指在具体的训练过程中训练样本数据已经贴上了标签,而无指导则不同。Mahout算法库中分类模块包含的算法主要有Logistic Regression、Bayesian、Support Vector Machine、Random Forests、Hidden Markov Models。表2对算法的主要功能进行了描述[10]。
表2 Mahout算法库中分类模块主要功能描述
(3) 协同过滤算法。在推荐系统中,协同过滤算法是应用最为广泛的一种算法。在大数据环境中,协同过滤算法的核心思想是首先确定一个指定用户的兴趣,然后以该用户为样本在海量用户群中寻找具有相似兴趣的用户并形成一个集合,综合该集合中每一个用户对某一信息的评价,该评价即为该指定用户对此信息的喜好程度预测。Mahout算法库的协同过滤算法主要有Distributed Item-Based Collaborative Filtering和Collaborative Filtering using a parallel matrix factorization,前者是基于项目的协同过滤算法,其简单思想就是利用项目之间的相似度来为用户进行项目推荐;后者的核心思想是把所有的用户以及项目想象成一个二维表格,利用表格中有数据的单元格来预测用户(空单元格)对项目的评分,进而得到推荐结果。
3 主要的大数据开发工具
任何一项应用技术的学习都应遵循环境和方法的一致性,对于大数据技术的学习更应如此[11-12]。一般情况下,大数据开发工作的流程为:安装开发工具→配置开发环境→编写代码→代码编译→制作jar包→将jar包上传服务器→程序运行→代码修改→再次上传程序调试。如此反复的练习,也是学好大数据技术的基础。通过对当前大数据开发工具的综合分析,结合高校教学特点和需要,从培养应用型大数据人才的角度出发,介绍典型的3种大数据开发工具。
(2) R语言。R语言是一款完整的开源的具有数据处理、统计分析和绘图等功能的软件系统,其功能组件主要包括:大数据的存储和处理,具有强大向量、矩阵运算功能的数组运算工具,统计分析工具,统计制图工具,简捷而强大的编程语言等。强大的统计分析功能是R语言适用于大数据处理环境的一大优势,R语言通过以R软件包形式发布的大量数学计算和统计分析工具,使开发者能够在一个开放环境中灵活地对各类结构化、非结构化和半结构化数据进行处理分析,还可以根据用户具体需求设计出统计计算模型。例如,在Hadoop中,通过MapReduce将TB和PB量级的数据处理后可生成GB量级的数据,被缩小后的数据再在R语言中利用MPI并行处理框架构建的机群计算进行处理,大大提高了数据处理的效率。
4 结语
大数据技术是大数据价值得以体现的基本手段,云计算、分布式处理技术和具有感知功能的物联网等技术的发展,为大数据的采集、处理、存储、分析处理及过程和结果展示等提供了技术支撑和方法保证。大数据专业及其相关课程的建设需要紧扣大数据技术的发展,创新性地探讨其人才培养体系。其中,大数据实验室的建设和应用探讨,更是从人才培养的最基础性的需求出发,提供最基本的知识和方法保障。本文提出了一套适应大数据人才培养需要的实验室建设方案,强调在系统掌握大数据基础知识的基础上,通过科学地设计实验实训方案,使实验者较为扎实地掌握目前主流的大数据技术。本实验室建设方案的特点是在充分借鉴在线学习平台已取得的被大家普遍认可的应用功能的基础上,突出了大数据技术的完整性和系统性,尤其是突出了云计算技术在大数据中的应用,真实体现了云计算与大数据之间的关联性。当然,作为一项既复杂又在快速发展中的技术,如何使实验室建设在充分体现技术特点的同时,更能够较好地反应人才培养要求,本文尚有一些考虑不周的地方,这也是作者下一步继续研究和实践的一个方向。
参考文献(References)
[1] 李辉,张标,高万林.大数据实验平台及资源建设的思考与探索[J].实验技术与管理,2016,33(7):195-199.
[2] 尹学松,蒋融融,张吉先,等.面向大数据远程开放实验平台构建研究[J].中国远程教育,2016(11):28-34.
[3] 董新华,李瑞轩,周湾湾,等.Hadoop系统性能优化与功能增强综述[J].计算机研究与发展,2013,50(增刊):1-15.
[4] 李馥娟.虚拟机技术在复杂网络实验中的应用[J].实验技术与管理,2009,26(12):79-83.
[5] 崔迪,郭小燕,陈为.大数据可视化的挑战与最新进展[J].计算机应用,2017,37(7):2044-2049,2056.
[6] 程学旗,靳小龙,王元卓,等.大数据系统和分析技术综述[J].软件学报,2014,25(9):1889-1908.
[7] Barrachina A D,O’Driscoll A. A big data methodology for categorising technical support requests using Hadoop and Mahout[J].Journal of Big Data,2014,1(1):1-11.
[8] Eluri V R,Ramesh M,Al-Jabri A S M,et al.A comparative study of various clustering techniques on big data sets using Apache Mahout[C]//Mec International Conference on Big Data and Smart City.IEEE,2016:1-4.
[9] Bamnote G R,Agrawal S S.Evaluating and Implementing Collaborative Filtering Systems Using Apache Mahout[C]//International Conference on Computing Communication Control and Automation.IEEE Computer Society,2015:858-862.
[10] 樊哲.Mahout算法解析与案例实战[M].北京:机械工业出版社,2014.
[11] 刘凤娟.大数据的教育应用研究综述[J].现代教育技术,2014,24(8):13-19.
[12] 周情涛,何军,胡昭华.基于GPU的Spark大数据技术在实验室的开发应用[J].实验室研究与探索,2017,36(1):112-116,131.