基于云计算的海量数据挖掘技术特点(Hadoop框架)
云计算是一种资源利用模式,它能以简便的途径和按需的方式通过网络访问可配置的计算资源,快速部署资源。在这种模式中,应用、数据和资源以服务的方式通过网络提供给用户使用。大量的计算资源组成资源池,用于动态创建高度虚拟化的资源以供用户使用。但对于海量数据分析任务,云平台缺乏针对海量数据挖掘和分析算法的并行化实现。因此面向海量数据挖掘的新型云计算模式,主要包括海量数据预处理、适合于云计算的海量数据挖掘并行算法、新型海量数据挖掘方法和云计算数据挖掘工具箱等技术。
1.海量数据预处理
为了适合并行处理,云平台可以提供海量数据的概念分层组织以及海量数据的并行加载,并实现高维度约减和数据稀疏化技术,提高数据管理和挖掘的效率。
2.适合于云计算的海量数据挖掘并行算法
海量数据挖掘的关键问题是数据挖掘算法的并行化。而云计算采用MapReduce等新型计算模型,这意味着现有的数据挖掘算法和并行化策略不能直接应用于云计算平台下进行海量数据挖掘,需要进行一定的改造。因此需要深入研究数据挖掘算法的并行化策略,继而实现高效的云计算并行海量数据挖掘算法。并行海量数据挖掘算法包括并行关联规则算法、并行分类算法和并行聚类算法,用于分类或预测模型、数据总结、数据聚类、关联规则、序列模式、依赖关系或依赖模型、异常和趋势发现等。在此基础上,针对海量数据挖掘算法的特点对已有的云计算模型进行优化和扩充,使其更适用于海量数据挖掘。
3.新型海量数据挖掘方法
新型海量数据挖掘方法包含面向同构数据、异构数据和跨域数据的不同的数据挖掘新方法。在同构海量数据挖掘系统中,各个节点存储的数据都具有相同的属性空间。云平台采用集成学习的方式来生成最终的全局预测模型。在同构节点的元学习基础上,实现数据挖掘增量学习方法,已满足实时要求;在异构海量数据挖掘系统中,云平台根据数据模态,将数据节点分类,并提供异构数据相关性度量和集成机制。除此之外,由于数据挖掘应用的特殊性,云平台能提供对海量数据迁移挖掘方法的支撑,以便扩充云计算环境下数据挖掘应用的适用范围,更好地满足数据挖掘终端用户的需求。
4.并行数据挖掘工具箱
海量数据挖掘应用系统开发前,都会对采用的算法进行性能的评估。目前已有的WEKA工具箱采用的是单机算法,不能应用在基于云计算的海量数据挖掘应用中。Apache组织近年来组织了Mahout开源项目,设计用于云平台的数据挖掘算法。但Mahout项目目前还缺少数据准备、数据展示和用户交互,还不完全适合海量数据挖掘并行算法的性能评估。因此,云平台应可以提供一个基于MapReduce计算模型的并行数据挖掘工具箱,用于海量数据挖掘并行算法的性能评估。
在网格计算研究中,国际研究者研发了多个基于网格的复杂数据分析任务的服务系统,如Data Mining Grid、Grid Miner等。在这些系统中,实现了复杂数据分析任务的工作流定义、资源调度和管理的透明化、具体算法的注册和服务化。以上部分技术可以直接迁移到云计算平台上,但由于云计算模式和数据挖掘服务的特殊性,仍需在按需服务、多任务调度和分配等技术上进行进一步的突破。具体技术内容包括:
按需服务的自治计算模式。将海量数据挖掘任务的服务化,设计并实现并行数据挖掘软件自配置、自优化、自修复和自保护的方法,以及自适应用户需求的数据挖掘服务的自动发现和组合算法。
多任务的动态分配机制。海量数据挖掘应用往往是数据密集,且具有突发性的特点;除此之外,不同的数据挖掘应用对算法精度、性能要求也不一致。因此,基于云计算的海量数据挖掘必须优化负载调节的策略与任务迁移策略等。
数据挖掘服务的动态按需迁移。云平台提供支持海量数据挖掘任务的服务重定位方法,即当一个服务器上运行中的服务按需迁移到另一个服务器上去时,能同时有效地为后继工作流任务提供可用的资源空间,并满足整合服务器资源的需要。在资源管理和配置中,针对海量数据的大规模和异构等特点,运用虚拟化技术进行存储管理,并设计一种新型的动态迁移架构。
复杂数据挖掘任务服务平台。在Hadoop等云平台上,设计支持复杂数据挖掘任务服务化的中间件系统。支持复杂数据分析任务的流定义、复杂数据分析任务的动态配置、并行算法的注册、云平台资源的调度和管理的透明化,最终实现复杂数据分析任务的按需服务。
