大数据算法库教学实验平台设计与实现

2020-09-29 05:49陈志奎
实验技术与管理 2020年6期
关键词:集群界面土地

赵 亮,陈志奎

(大连理工大学 软件学院,辽宁 大连 116620)

为了提升大数据专业方向学生的学习实践能力,我校软件学院大数据研究所开发了一套大数据算法库教学实验平台。该平台基于Hadoop 分布式处理框架,着重打造一套适用于多用户、高并发场景的大数据通用分析处理解决方案,实现适应复杂大数据处理和计算需求的数据分析和挖掘体系,构建鲁棒、高效的数据服务平台。此外,在此平台基础上,构建了针对土地数据的教学实践案例,致力于实现对土地文本数据的搜索及对土地不完整信息的预处理和分析。为了使用户能够友好地操作Hadoop 集群进行大数据处理分析,平台进一步实现了Web 界面化交互操作,提升了用户的使用体验。此平台的有效利用,能够为学生提供有效的数据分析实验、实践资源,提高大数据专业方向的整体教学水平[1-2]。

1 需求分析

1.1 设计目标

平台实现的整体目标是为大数据专业方向的教学和实验提供有效的数据分析处理平台,具体目标如下:

(1)平台利用HDFS 完成数据的存储。HDFS 是Hadoop 系统中的分布式文件系统,可以对海量数据进行管理和存储,是平台实现的基础要素。

(2)平台实现海量数据算法的工具包Mahout,能够把传统数据挖掘中的算法有效迁移到平台上,完成海量数据的分析处理。

(3)平台利用SSM 框架建设平台前端交互界面,实现完全图形化操作。此外,前端实现结合JSTL 技术,完成前后端代码逻辑的有效分离,使平台整体层次更加清晰。

(4)平台通过SSH 协议,建立平台前端网站与后台集群的连接。在终端用户使用平台时,需要先上传Input 文件到HDFS 中。利用SSH 中的数据压缩机制可以有效控制数据传输的大小,提升效率。

(5)在平台土地数据案例应用中,利用Solr 索引技术组织索引土地文本,完成搜索挖掘,能够实现不同粒度词汇的检索。

(6)针对获取的土地数据中存在的不完整内容,设计不同的数据质量提升预处理模型,进而对数据内容进行跨平台调用。

(7)平台基于Hadoop 实现不同外围接口,实现自定义算法功能。用户可以提交自己设计的算法包到平台上,然后通过平台调用Hadoop 集群进行运行。

(8)在Hadoop 集群中执行具体算法的同时,希望能够在前端页面实时输出结果,提升用户体验。

(9)平台实现需要实现对集群实例的远程操控,包括对特定节点的操控,以及利用VNC 技术通过Web界面实现界面的可视化操作。

(10)为了提升整个平台的并发性能,平台实现部分模块读写分离。平台运用Redis 进行系统数据缓存,所有用户请求均落在Redis 上。为了有效保证Redis和MySQL 中数据的一致性,使用Canal 进行功能同步,完成系统解耦。

1.2 功能需求

根据前一节的具体设计目标,本节对基于Hadoop的大数据算法库教学实验平台进行功能细化,保证平台设计的合理性和有效性。图1 给出了整个平台的用例图。

图1 平台用例图

1.2.1 海量数据存储管理

本实验平台设计主要面向海量数据,因此需要解决海量数据的分割和存储问题。Hadoop 自带的HDFS分布式文件系统可以有效调用集群中的节点来存储数据,但是用户不能直接对集群进行操作,只能与网站后台服务器进行交互。所以本实验平台需要实现数据的上传功能,以及网站服务器与后台集群文件系统间的数据传输。此外,平台需要实现用户间的逻辑分析,限制用户访问和操作数据的权限,保证平台数据的有效性和安全性[3]。

1.2.2 传统机器学习算法迁移

传统的数据挖掘和机器学习方法能够解决用户的大多数数据处理需求,但是现有算法设计大多面向小数据样本,直接用其处理海量数据,效率非常低。因此,本平台针对具体算法结构,对其进行有效转换,使其能够迁移和应用于海量数据处理,并通过前端界面实现算法的可视化操作。

1.2.3 算法自定义

平台除了具有传统机器学习算法功能外,还支持算法自定义功能,用于设计面向具体数据处理的用户算法。在算法具体实现时,只需要上传符合Hadoop规范的程序文件,然后平台后台对程序进行正确性验证,并将其加入到算法列表中。默认情况下,每个用户仅能对自己的算法列表中的算法进行操作,不支持用户间的算法共享。

1.2.4 不完整数据填充

平台除了具有基础数据处理算法功能外,还支撑面向土地数据的应用算法。在土地数据的采集和获取过程中,由于采集设备、传输网络和人为因素等,可能存在部分数据属性值缺失。针对土地数据的不完整性,设计了面向缺失值填充的数据预处理算法,提升数据的可计算性。

1.2.5 集群实例管理

支持对集群平台中单个处理节点的信息查询、管理和Web 界面化交互操作。使用户更加友好、便捷地管理实验平台,使个性化数据应用得以实现。

1.3 安全需求

本平台中主要包含用户在表单中输入的数据和用户上传的相关数据。对于数据的安全性保障,本平台也提供了相应的解决方案。

用户输入数据主要包括用户密码及算法相关配置和解释信息,在平台中使用MySQL 数据库进行存储。为了避免数据信息泄露,平台中使用MD5+SHA 等加密机制对其进行安全性保证。此外,为了防御SQL 注入攻击,平台中使用PrepareStatement 类对SQL 语句进行拼接。

用户上传的相关数据主要包括数据集和算法实现包。通常数据集的数据量超过单机存储容量,因此使用HDFS 分布式文件系统对其进行分布式存储。同时使用HDFS 的文件冗余、副本分配等策略,保证数据的可用性、可靠性和安全性。算法包要被平台中的具体集群节点进行调用,因此也需要将其上传到集群中,并且只对具体操作用户可视,对其他用户不公开[4]。

1.4 性能需求

本平台集成实验室所有普通机器,因此集群节点出现故障的概率较高,需要使用相应的平台保障机制来提升集群系统的稳定性。在平台的具体实现中,基于Hadoop 技术, 文件系统采用HDFS 分布式文件系统,主节点NameNode 监管各从节点DataNode 的运行状态。当从节点发生故障时, 主节点负责重启故障节点,若故障节点不再可用,主节点根据自身分配策略将故障节点数据转移,保证平台数据的可靠和可用。此外,在平台进行具体的数据运算时, 主节点负责监控管理每个从节点的工作状态,保证整个集群的有效运行。

2 平台设计

2.1 总体设计

按功能进行划分,本平台包括大数据算法库模块、大数据应用模块和云计算平台管理模块[5-6]。

2.2 大数据算法库模块

该模块主要改进、集成数据挖掘与机器学习常用算法,包括分类算法、聚类算法、属性约简算法和相关分析算法等。平台提供友好的用户操作和解释界面,提升用户使用算法的便捷性和高效性。

在平台使用过程中,用户主要通过前端界面进行平台直接交互。当用户登录平台后,主界面会显示当前用户权限内可以使用的所有算法列表,用户可以查看算法详情和使用相应算法。如果当前算法不能满足用户的特殊需求,用户可以自定义新算法。首先用户需要上传提交自定义算法程序,然后等待平台管理员验证,验证成功后,新算法便出现在用户算法列表中。当用户使用算法时,首先要给出算法的参数,然后上传要处理的数据,平台使用Ajax 和SpringMVC 把用户提交的数据上传到网站服务器中,服务器端使用SSH 的SCP 功能,将数据进行压缩和分发到分布式文件系统中。SSH 的使用能够保证数据的安全和数据传输的实时性。当分布式文件系统收到数据后,Hadoop集群开始执行算法,并通过Ajax 技术将当前数据和算法的执行状态实时反馈给前端页面。当整个处理过程执行完毕后,后台将输出Output 文件传递回网站服务器,可供当前用户下载查看,同时平台也支持输出文件的自动解析。图2 给出了平台的总体处理流程[7-9]。

图2 平台处理流程

2.3 大数据应用模块

大数据应用模块中,主要针对土地数据和业务特点,实现土地文本数据索引和土地缺失数据填充两个主要功能。

2.3.1 土地文本数据索引

土地业务流程中,需要处理海量的文本数据,本实验平台使用Solr 技术组织土地文本的索引和管理。

在土地文本数据组织索引的具体实现中,针对结构复杂的文本格式,需要逐级对索引流程进行创建和管理,具体如图3 所示[10]。

图3 索引创建过程

2.3.2 缺失数据填充

在土地数据的处理和分析过程中,缺失数据的存在给准确的分析带来挑战。当缺失数据比例较低时,往往忽略缺失数据是一个有效方法。在一些情况下,缺失值的快速修复,如均值填充、中位数填充也是有效的数据填充方案。然而这种简单的数据填充机制容易引起数据的偏差,所以需要更加有效的数据填充方法。本平台选用R 中的mice 包完成土地大数据中缺失值的填充。该方法计算的数据填充值是从一个根据缺失数值点的特点设计的数据分布中得到的,可以保证数据的准确性[11]。

2.4 云计算平台管理模块

云平台管理模块的主要功能包括集群信息查询、云平台计算节点管理、集群应用管理以及分布式文件系统管理等。该模块能够使用户通过可视化界面便捷地管理云计算平台,实现个性化的大数据应用教学实验方案。可以对具体的数据平台节点进行操作,实现节点实例的直接接入,方便用户操作。此外,通过可视化可以查看平台的分布式文件系统和分布式应用的运行情况,方便了解平台的实施动态信息。

利用Web 端的节点控制技术noVNC,通过存储的现有用户信息和节点信息,可以获取节点的详细登录信息和运行情况。

3 平台实现

整个平台的主界面实现如图4 所示,主要包括基础大数据算法库和大数据应用模块。为了提升主页面提取和显示算法类别信息的速度,在缓存中添加主页面内容请求,直接将请求内容定位到后端的Redis 中。如果请求内容不存在,则重新提取[12]。

图4 主页面实现效果

3.1 大数据算法库模块

该模块主要实现了常用的数据挖掘和机器学习算法,并提供一系列帮助文档,辅助用户高效、便捷地使用集成的大数据算法。图5 展示了算法库中的聚类算法的导航结构,在使用具体某一个聚类算法时,根据提示的使用说明对其进行相应操作,如果算法具体操作过程不符合定义的规范,算法将被终止。

3.2 大数据应用模块

大数据应用模块主要实现土地文本数据挖掘和不完整数据填充两项功能,可以对用户提供的土地文本进行搜索、挖掘和归类管理等。如图6 所示,能够完成各粒度词汇的文本检索,并且面向具体的文档类型设定了不同的搜索限制。针对土地缺失数据质量的提升,平台实现了不同的不完整数据处理方案。当用户上传的数据中含有缺失值时,通过实现的填充算法进行处理,并对填充过程进行分析和监督。只有当用户遵守相关数据和格式条件限定时(对应说明界面),才能够正常使用该功能。

图5 聚类算法类算法引导页

图6 对土地文本数据进行多粒度检索

3.3 云计算平台管理模块

云平台管理模块主要实现集群信息的查询、云平台计算节点管理、集群应用管理和分布式文件系统管理等,为用户提供便捷、个性化的大数据管理应用方案。如图7 所示,用户可以查看分布式系统和应用的运行状况以及各节点的实时状态信息,可以对整个平台系统进行图像化操作,提升用户对平台管理的便捷性和可操作性。

图7 集群实例信息列表

4 结语

本文依据我校软件学院大数据研究所的研究成果,设计了一套全新的大数据专业方向数据算法库教学实验平台。该平台更新并充实了现有的教学实验环节,将研究所的研究内容融入教学,很好地激发了学生学习专业知识的积极性和主动性,提升了学生的动手实践能力。希望本文提出的算法库平台能够为其他院校在大数据人才培养方面提供有益参考。

猜你喜欢
集群界面土地
我爱这土地
国企党委前置研究的“四个界面”
一种可用于潮湿界面碳纤维加固配套用底胶的研究
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
对这土地爱得深沉
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
电子显微打开材料界面世界之门