赵亮 梁胜彬 楚广琳
摘要:该文在开篇介绍了大数据的基本内涵、主要特点和研究价值。随后浅述了数据挖掘的三种工具和四类主要算法,并在第三部分简述了一种以Spark为基础的数据挖掘算法的模型结构。
关键词:大数据挖掘;数据挖掘引擎;Spark模型优化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)24-0261-01
随着信息技术的不断发展,互联网科技的不断进步,人们日常生活中接触到的数据呈爆炸式增长,现有的很多数据已经超过了传统软件的处理能力,人们将这类数据称为大数据。大数据的特点也十分明显,例如其数量庞大、种类繁多、产生的速度十分快、研究价值极大等。也正是基于这几点,所以现在很多研究机构都对大数据的相关处理进行分析。例如,在生物医药方面,大数据可以帮助医生快速判断病情;在商业方面,采用大数据相关技术可以根据用户搜索的记录来向商家提供用户的偏好,提高用户的购买欲望;在交通运输上,采用大数据相关技术可以动态观测庞大的交通信息网,为用户出行及时规避拥堵路段。因此研究大数据是时代科技进步的趋势。
1 数据挖掘概述
1.1 数据挖掘的主要算法和工具
现代开发出来的数据挖掘算法可以分为以下四类:(1)关联规则分析算法:此类算法通常是用来寻找两类关联性较大的数据,例如在购买早餐时,发现购买了包子的人都会选择购买一包餐纸,因此在包子铺里面提供餐纸会提高两者的销量。(2)聚类算法:此类算法是用来找出数据之间的相似项,相当于对具有某同一属性的数据进行归纳。(3)展望回归算法:此类算法首要是用来展望大数据的走向,常见的有线性回归算法。(4)排序算法:此类算法是通过规定某一指标,以此指标的数量来对相关数据进行排序,经典的有谷歌的PageRank算法。
Orange、Apache Mahout、和Spark是常用的数据挖掘工具。这三种工具分别应用于不同的场景进行数据挖掘,例如Orange就是通过python来实现数据挖掘的。
1.2 大数据挖掘的现状和难点
作为一种已经发展了十余年的技术,前人已经开发出了很多经典的大数据挖掘算法和工具,这些算法和工具还是有一定的应用局限,例如此类算法没有办法应用于数据集的挖掘。主要原因是以下五点:(1)大数据的内存占用量大得惊人,传统的软件根本无法承受如此海量的数据,例如,传统的关系型数据库在对大数据进行相关操作的时候就显得力不从心。(2)大数据的储存、读取和计算方式与传统数据有差别。同时为了提高大数据算法的处理能力,很多模型和计算框架都是并行的。(3)一般来说大数据挖掘都是在计算机群上进行操作的,这不仅对设备要求高,对相关从业人员的要求更高。(4)针对大数据集的数据挖掘工具少而且操作难度大,对用户友好度低,并且难以实现数据可视化。(5)处理实时传递的数据,请求有一个可用性高,吞吐量大的传输体系。
2 数据挖掘引擎的构建
2.1 以Spark为基础的数据挖掘算法
文章拟采取Spark作为基础引擎。因为其较Mabout来说,计算速度优势明显,尤其是在大数据的处理背景下。Spark作为拥有RDD(弹性分布式数据集)和共享变量的编程模型,不仅能够让所有节点的内存并行,而且还可以在不同节点处对共享向量进行复制。用户再次使用某一RDD,无须重新建立一个新的RDD,大大提高了其运行速度。但是目前来说Spark还存在着一些缺点,例如:只有八种算法,覆盖量少,而且其中没有涉及PageRank算法和关联算法(Apriori算法)。因此文中主要结合这两种算法,对Spark进行优化。首先关联算法是一种基本的数据挖掘方法,能够挖掘出在设定值范围内的与大数据事件相关的事件。传统的关联算法,在每请求一次计算的过程中都要对整个数据库进行一次遍历,当数据量小的时候,关联算法优势明显。但是如果是面对海量的大数据,就难以高效快捷的完成整个工作。利用Spark的特点可以对关联算法进行优化,我们可以将数据存于RDD中,进行第一阶段的计算,然后再进行迭代计算。北京邮电大学的范嘉麒[[1]]已经成功的建立了此类并行算法模型。针对PageRank算法也可以利用Spark进行优化,这类算法是谷歌率先研发出的,通过计算某一网页的具体链接数,对网页排序按照链接数从小到大依次排列。
2.2 优化引擎系统的整体设计和思路概述
整个系统的设计要考虑到实用性和高效性,因此必须对用户友好且使用方便,而且为了提高用户的使用效率,必须实现底层透明。所以在设计时将整个系统的构建成了三个层次:
(1)数据处理引擎是最底层,这个引擎的主体是Spark集群。作为挖掘数据的核心层,其主要包含了三个组件:Spark SQL、数据挖掘算法和Spark Streaming。这三个组件各有各的功能,分别是:语句查询功能、数据挖局算法、流式数据处理。(2)第二层是中间层,这一层主要是用来解决同时有多个用户请求控制和远程调用。不仅能够让用户在本地直接進行数据调用而且可以保证多个用户同时进行数据处理。(3)最上面一层是用户层,这层的设计目的就是可以让用户直接接入系统,包含了Orange插件。
通过王小燕等人[[2]]的相关实验,我们也可以看出上文涉及的Spark算法具有明显速度优势,而且随着数据处理量的不断增大,时间增长,这种优势会变得越发明显。
参考文献:
[1] 范嘉麒.基于大数据的数据挖掘引擎[M].北京:北京邮电大学,2015.
[2] 王小燕,张丽敏.基于大数据的数据挖掘引擎研究[J].电子设计工程,2017,25
(15):31-34.
[3] 杨占华,杨燕.数据挖掘在智能搜索引擎中的应用[J].微计算机信息2006,22(43):244-246.
[4] 凌志泉.搜索引擎中的网络数据挖掘技术[J].计算机工程与设计,2003,24(09): 70-72.
【通联编辑:代影】