基于Hadoop的科技成果转化平台设计与实现

2020-06-11 13:46王秀慧
电子技术与软件工程 2020年3期
关键词:键值余弦海量

王秀慧

(山西大同大学教育科学与技术学院 山西省大同市 037009)

1 引言

近些年随着社会信息化的不断发展,信息数据呈现出爆炸式的增长,科技成果数据也不例外。对于如此庞大的数据,单一的存储服务器模式已经不能满足企业的需求,如何存储海量科技成果数据成为亟待解决的问题;同时企业针对海量科技成果数据不知所措,因为无法准确的查找到本身需要的数据,导致了科技成果转化率低,成为制约企业发展的瓶颈。

针对以上问题,结合科技成果数据的特点与企业对科技成果需求的实际情况,构建了基于Hadoop的科技成果转化平台。该平台数据是以分布式的结构进行存储,通过扩展相应存储设备来对数据进行数据扩容,并且分布式结构极大地降低了平台的耦合度,使其可独立部署[1];同时运用余弦相似度算法计算数据之间的相似程度,给企业推送所需科技成果数据以及相关数据。这样不仅提升了企业科技成果转化率,而且还提高了科技成果转化的质量,进而达到使企业核心竞争力增强的目的。

2 总体设计

2.1 体系结构

基于Hadoop的科技成果转化平台分为两部分:

(1)通过HDFS(分布式文件系统)来存储海量的科技成果数据,同时应用MapReduce并结合余弦相似度算法计算数据之间相似情况,以便为企业推送所需数据。

(2)采用B/S结构、按照JavaEE标准框架标准设计与实现用户服务,以便企业通过注册登录后可查询所需数据,平台架构图如图1所示。

2 关键技术

2.1 HDFS

HDFS是Hadoop项目的核心子项目,是Hadoop中的存储组件,由于它涉及到数据存储,MapReduce等计算模型都要依赖于存储在HDFS中的数据,因此它也是最为基础的一部分。HDFS是一个分布式文件系统,它采用了主从(Master/Slave)结构模式,由NameNode和DataNode组成。其中NameNode是主服务器,统筹管理着文件系统与文件数据的操作,而DataNode作为服务节点,管理着数据的存储,其中数据是以块的形式存储,Hadoop2.0中数据块默认大小是128MB。

HDFS的数据访问使用流式模式:一次写入,多次读取,这样更加关注的是读取整个数据集的整体时间,提升了数据的读写吞吐量,但由于流式读取,无法高效存储大量小文件,也不支持多用户写入,写操作总是以添加形式在文件数据末尾追加,并且还无法在任意位置进行修改。

2.2 MapReduce

MapReduce是一种编程模型,适应于大规模数据的并行运算。主要思想是通过Map(映射)把一组键值对映射成一组新的键值对,并自动划分计算数据和计算任务,然后指定并发的Reduce函数来收集计算结果并再次规约计算,使得所有映射的键值对中的每一个共享相同的键组。这样编程人员在没有掌握分布式并行编程的情况下,就可以将自己的程序运行在分布式系统上,同时数据的处理、通信和运算等操作都交由MapReduce负责处理,大大的减少了软件开发人员的工作量。

图1:平台架构图

2.3 余弦相似度

余弦相似度[2]是一种数学模型,用于计算两个向量的夹角角度,0度角的余弦值是1,90度角的余弦值是0,而其他任何角度的余弦值都不大于1,180度角的余弦值是-1,且是其最小值。由于余弦相似度的特性,人们发现其计算数据间的相似程度有着天生的优势,而且计算比较简单方便,因此在计算文本数据之间相似度的过程中得到了广泛的应用,同时规定其取值范围是0到1之间。其原理是:把文本数据转化成向量数据,即文本含有的特征项的权重来表示向量数据。设文本的向量表示:di=(w1,w2,…,wp,…,wn),wp表示某文本特征项的权重值,d'i=(w'1,w'2,…,w'p,…,w'n),则di与d'i之间的余弦相似度计算公式如下:

3 功能设计

3.1 设计目标

图2:平台功能模块图

根据科技成果转化平台的实际需求进行功能设计,主要完成以下几个目标:

(1)上传各类科技成果数据,并审核;

(2)展示平台各类科技成果数据;

(3)浏览查看科技成果相关文档;

(4)浏览查看科技成果相关专家;

(5)推送科技成果数据;

(6)计算科技成果数据间相似度;

(7)科技成果数据分布式存储;

(8)提交企业用户的需求信息,并审核;

(9)注册、登录平台;

(10)浏览查看平台新闻、咨询、政策、通知等。

3.2 主要功能

该平台主要功能包含科技成果管理、用户管理、专家管理、信息管理(其中包括新闻管理、通知管理、资讯管理、政策管理)、需求管理、统计管理等。平台主要功能如图2所示。

3 平台实现

3.1 平台开发环境

平台选用Hadoop2.7作为科技成果数据存储介质,并承载数据间相似度计算;同时应用Jdk9.0配置Java开发环境,运用Tomcat8.0作为Web服务器,数据库使用MySql5.5,页面设计工具使用Dream weaver2018,程序开发工具运用MyEclipse2014。

3.2 主要实现代码

该平台主要完成海量科技成果数据的存储与精确数据的推送(即相似度的计算)的实现,下面是数据相似度计算源代码。

4 结束语

该平台采用Hadoop、按照JavaEE框架标准、使用余弦相似度等信息技术,根据科技成果转化实际需要进行开发,实现了全部设计需求,做到了界面友好、平台运行安全、可操作性强等特点。此平台的实现将科技成果数据以分布式的结构进行存储,解决了海量数据存储难的问题;同时使用余弦相似度计算数据间相似程度,解决了为企业推送所需数据难的问题。我们相信随着此平台在科技成果转化工作中的逐步深入,将会大大提升企业科技成果转化率、提高科技成果转化质量。

猜你喜欢
键值余弦海量
一种傅里叶域海量数据高速谱聚类方法
海量快递垃圾正在“围城”——“绿色快递”势在必行
两个含余弦函数的三角母不等式及其推论
分数阶余弦变换的卷积定理
图像压缩感知在分数阶Fourier域、分数阶余弦域的性能比较
离散余弦小波包变换及语音信号压缩感知
基于文件系统的分布式海量空间数据高效存储与组织研究
注册表值被删除导致文件夹选项成空白
“扫除”技巧之清除恶意程序