一 基于云计算的海量数据挖掘
2008年7 月,《Communications of the
ACM》杂志发表了关于云计算的专辑,云计算因其清晰的商业模式而受到广泛关注,并得到工业和学术界的普遍认可。目前工业界推出的云计算平台有Amazon公司的EC2和S3,Google公司的Google
Apps Engine, IBM公司的Blue Cloud,Microsoft公司的Windows Azure,
Salesforce公司的Sales Force,
VMware公司的vCloud,Apache软件开源组织的Hadoop等。在国内,IBM与无锡市共建了云计算中心,中石化集团成功应用IBM的云计算方案建立起一个企业云计算平台。阿里巴巴集团于2009年初在南京建立电子商务云计算中心。
严格的讲,云计算是一种新颖的商业计算模型,它可以将计算任务分布在大量互连的计算机上,使各种应用系统能够根据需要获取计算资源、存储资源和其他服务资源。Google公司的云平台是最具代表性的云计算技术之一,包括四个方面的主要技术:Google文件系统GFS、并行计算模型MapReduce、结构化数据表BigTable和分布式的锁管理Chubby。基于以上技术,云计算可以为海量数据处理和分析提供一种高效的计算平台。简单来说,将海量数据分解为相同大小、分布存储,然后采用MapReduce模型进行并行化编程,这种技术使Google公司在搜索引擎应用中得到了极大的成功。
然而MapReduce计算模型适合结构一致的海量数据,且要求计算简单。对于大量的数据密集型应用(如数据挖掘任务),往往涉及到数据降维、程序迭代、近似求解等等复杂的算法,计算非常困难。因此,基于云计算的海量数据挖掘技术成为了工业界和学术界共同关心的热点技术之一。
分布式计算是解决海量数据挖掘任务,提高海量数据挖掘效率的方法之一。目前,分布式数据挖掘技术主要有基于主体(agent)的分布式数据挖掘、基于网格的分布式数据挖掘、基于云的分布式数据挖掘等。海量数据挖掘另一个核心问题是数据挖掘算法的并行化。图1给出基于云计算的海量数据挖掘服务的层次结构图。

图1
中国移动研究院从2007年3月份启动“大云”的研发工作。2008年,中国移动研究院已建设有256个节点、1024个CPU、256TB存储的云平台。中国移动“大云”平台主要为数据挖掘、系统评估、搜索等应用提供计算服务。在开源 Hadoop云平台上,中科院计算所研制了并行数据挖掘工具平台PDMiner。针对海量数据,云计算分别从数据挖掘模式和方法等方面进行相关的研究。与此同时,中科院深圳先进研究院还研制了一个分布式数据挖掘系统AlphaMiner。
二 技术热点
三 基于Hadoop的并行数据挖掘算法工具箱——Dodo
Weka是由新西兰Waikato大学研发的数据处理和知识发现软件包。其可以实现数据预处理、聚类、分类、回归、特征选择、可视化等各种数据挖掘的任务。Weka被广泛用于各种数据挖掘任务中算法的评估。但其中数据挖掘算法的实现是基于单机实现的。与Weka不同的是,Apache组织基于Hadoop平台的,采用MapReduce计算模型,实现大量机器学习算法的并行化,并将其封装在Mahout项目。但由于Mahout并不提供一种图形界面交互,用户需要大量手工配置数据和参数,同时目前实现的并行数据挖掘算法也不完全。因此有必须借鉴Weka和Mahout的优点,研发一个基于Hadoop的并行数据挖掘算法工具箱——Dodo。表1给出三个工具箱目前的主要异同点。
表1
|
|
数据源 |
数据格式 |
数据存储 |
算法 |
用户界面 |
|
Weka |
支持文本文件:包括本地的数据文件以及网络数据文件; 支持数据库文件:通过JDBC连接。 |
标准格式是Arff,行表示实例,列表示各个属性。另外还支持CSV,C45以及BSI。 |
数据文件加载存储于内存之中 |
在单机上实现分类、聚类、关联规则等数据挖掘算法 |
包括发现模式的表示,数据挖掘原语的操作,界面功能主要包括4个部分:Simple CLI、Explorer、Experimenter Knowledge Flow |
|
Mahout |
仅支持文本文件 |
每个算法自己根据算法的情况自己设定的文件格式 |
存储于Hdfs上 |
基于MapReduce计算模型,实现…. |
命令行交互 |
|
Dodo |
支持文本文件、网络文件和数据库文件 |
支持Arff等通用标准格式,也支持顺序文件,文本文件等格式,并提供预处理 |
存储于Hdfs上 |
迭代和非迭代类数据挖掘算法的MapReduce化 |
数据管理:上传、删除、修改。 Hadoop平台管理:启动、关闭。 算法管理:选择算法、修改算法参数。 任务提交。 任务进度显示。 |

图2

图3
四 数据挖掘云
不同于其他的企业应用,将数据挖掘应用服务化,具备以下4个非常特殊的特点:
(1)简单化的工作流。数据挖掘应用从工作流角度来看,相对非常简单。应用中没有复杂的流程,也没有很多不同的角色。但数据挖掘应用仍然是一个工作流。因此将其服务化时,需要提供一个可视化的工作流编辑、管理界面,云平台也要提供对工作流引擎的监控。
(2)丰富的算法选择。不同于企业应用,在数据挖掘应用实现一个具体的挖掘任务有很多种算法。在很多情况下,每种算法的性能和效率都有可能不一样。
(3)结果的不确定性。数据挖掘任务中,选择不同的数据和算法,将有可能导致不同的计算结果。
(4)应用的突发性。很多的数据挖掘应用的请求会随着时间、空间呈现出突发性,这对资源提出了很高的“伸缩性”需求。
从以上特点可以看出,数据挖掘服务是一种真正的按需服务。用户可以根据自己的需求以及付费能力选择适合自己的服务模式。因此,所谓数据挖掘云是指在hadoop平台上提供支持复杂数据挖掘任务的服务系统,此系统能够提供复杂数据挖掘任务的工作流定义、资源调度、算法和工具以web service的方式向外提供服务。
数据挖掘云的结构如图4所示:

图4 数据挖掘云
数据挖掘云的最底层是扩展云计算平台Hadoop的功能,实现HDFS数据管理、算法管理和资源监控,其中算法管理模块集成了各种基于MapReduce的 工具箱,以向上提供算法服务。数据挖掘云的底层组件中,需要根据云服务的自适应需求,实现优化的资源分配和任务调度。数据挖掘云的中间层是数据挖掘云高层 服务,包括目录服务、效用服务、数据服务和算法服务等核心组件。而最上层是客户端组件,主要用于与用户的直接交互。用户通过友好的可视化界面管理和监视任 务的执行,并且很方便地查看任务执行结果。
在数据挖掘云的设计中,核心的组件有以下6个:
(1)目录服务:各种资源都能以目录的方式展示给用户,用户可以方便地展开目录查看所有可用的资源。
(2)资源分配和任务调度服务:把上层生成的执行计划映射到具体的计算资源和节点上,然后进行任务的调度和执行。
(3)数据访问服务:用户根据自己的任务,需要查找、上传或下载所需要的数据,数据访问服务为用户提供了良好的接口让用户方便进行这些操作。
(4)算法和应用访问服务:用户在编辑工作流的时候,需要查找满足需求的算法和应用,算法和应用服务提供了良好的接口让用户方便数据和应用的访问。
(5)流管理服务:流管理服务包括工作流的编辑和执行,以及用户对流的执行过程的监控和控制,并且在执行过程中会生成相应的日志。
(6)结果展示服务:任务执行完毕以后,用户需要查看任务的执行结果,结果展示可能包含多种方式,图状的、表格式的、文本式的等方式。
五 总结
综上所述,本文讨论了基于云计算的海量数据挖掘的进展和主要技术热点,并分析了基于Hadoop平台的数据挖掘算法工具箱和数据挖掘云的结构。Dodo工具箱主要实现海量数据挖掘算法MapReduce化,以提高对海量数据的处理能力。在工具箱实现中,强调与Hadoop平台的交互式配置,迭代/非迭代类数据挖掘算法的并行化实现。在数据挖掘云服务中,为使海量数据挖掘应用服务化,提供从Hadoop资源分配到目录服务,再到流管理等一系列的组件服务,继而提高海量数据挖掘软件的服务能力。作为能为企业效益增值的数据挖掘应用,本质上具备了请求突发、需求多变,结果依赖于数据和算法的特点,因此必须进一步优化云计算平台,提高云平台对按需服务的支撑能力。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21249723/viewspace-1120407/ ,如需转载,请注明出处,否则将追究法律责任。