基于HADOOP的数据挖掘平台分析与设计

时间:2013-12-12

  摘要:云计算技术的出现为数据挖掘技术的发展带来了新的机遇。云计算技术通过使存储和计算能力均匀的分布到集群中的多个存储和计算节点上,从而实现了对超大数据集的巨大的存储和计算能力。

  HADOOP是一个用于构建云平台的Apache开源项目。使用HADOOP框架有利于我们方便、快速的实现计算机集群。在HADOOP平台上,采用了HDFS(分布式文件系统)来实现超大文件的存储和容错,而使用了MapReduce的编程模式来进行计算。

  一、数据挖掘技术概述

  作为一门快速发展的技术,数据挖掘引起了信息产业界和社会的广泛关注。数据挖掘技术跨越多个学科,无论是数据库技术、机器学习、统计学、模式识别,还是神经网络,还是人工智能,数据挖掘都能从中吸取营养,不断发展。如今,随着云计算的出现和发展,数据挖掘技术迎来了新的机遇和挑战。

  1.数据挖掘发展历程与分类

  数据挖掘由单个算法,单个系统到并行数据挖掘与服务的模式,经历了数据挖掘软件开始和数据库结合、多种数据类型融合、分布式挖掘等多个过程。到今天,数据挖掘软件发展的历程,可以说是进入基于云计算的数据挖掘。

  由于数据挖掘是一个交叉学科领域,是在包括机器学习,模式识别等多个学科的基础上发展而来。依赖于我们所用的数据挖掘方法,我们又可以使用其他学科的多种技术,如神经网络、模糊或粗糙集合论、知识表示等。

  所以,对数据挖掘的研究,我们会期望出现大量的各种类型的数据挖掘系统。这样,我们就需要对数据挖掘系统给出一个很清楚的分类。

  有了这种认识,我们才可以帮助用户根据其需求,确定适合其需要的数据挖掘系统。

  因此,数据挖掘的分类标准也必定会出现多样化。我们可以根据挖掘的数据库类型分类,或是技术类型分类,也可以根据运用的场景分类。但是大部分情况下,我们会根据挖掘产生的知识类型进行分类,也即是根据数据挖掘的功能进行分类。

  2.数据挖掘流程

  数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程,表现形式为规则、概念、规律及模式等。数据挖掘主要由以下步骤组成:

  ①数据预处理数据

  预处理阶段主要为数据挖掘准备好数据。

  一般来讲主要包括数据清理和数据集成。对于大量的数据,难免的存在着噪声或不一致的数据。对于存在这些问题的数据源,我们必须进行数据预处理。现在,数据挖掘面对的挖掘对象的种类越来越多。半结构数据、web数据、来自云的数据等各种数据形式层出不穷。如何将数据挖掘技术使用到这些不同的数据结构中,数据预处理是非常重要的步骤和技术。它对于挖掘结果有着重要的影响。

  ②数据挖掘

  一旦对数据的预处理工作完成,数据挖掘工作就开始了。这是整个数据挖掘过程的基本步骤,也就是使用智能的方法来提取数据模式的过程。数据挖掘阶段,根据挖掘任务的不同,我们会使用不同的技术和处理方法。常见的数据挖掘任务包括特征化、区分、分类、关联分析、聚类等。这是数据挖掘过程中重要的步骤。

  ③模式评估

  当数据挖掘一旦完成,就会生成挖掘的结果--模式。然而,这些模式不是我们都感兴趣的。实际上,对于给定的用户,在可能产生的模式中,只存在一小部分是他感兴趣的。如何表示我们对于模式的期望和兴趣,现在存在一些模式兴趣度的客观度量,包括规则的支持度,置信度等。在模式评估阶段,我们去发现只对我们来说是感兴趣的各种模式④知识表示

  对于用户感兴趣的模式,我们可以使用可视化和知识表示技术,以更直观的,更易于理解的方式向用户展现有意义的模式。这是与用户的直接交互,更友好的表示方法可以使用户更好的得到有意义的模式的全部内涵。这是数据挖掘过程中很重要的步骤,也是人们研究的一个重要方面。

  二、典型数据挖掘系统构成

  通过对数据挖掘过程有了一定的认识,一个典型的数据挖掘系统主要由下面的部分构成:

  1.数据源:这可以是一个或一组数据库、数据仓库、展开的表、或其它类型的信息库,提供存储的数据。

  2.数据源服务器:根据用户的数据挖掘请求,数据源服务器负责提取相关数据。

  3.预处理模块:该模块执行数据清理、数据集成等操作,为数据挖掘过程准备结构良好的数据。

  4.知识库:这是领域知识,用于指导搜索,或评估结果模式的兴趣度。这种知识可能包括概念分层,用于将属性或属性值组织成不同的抽象层。用户确信方面的知识也可以包含在内。可以使用这种知识,根据非期望性评估模式的兴趣度。领域知识的其它例子有兴趣度限制或阈值和元数据(例如,描述来自多个异种数据源的数据)。

  5.数据挖掘引擎:这是数据挖掘系统基本的部分,由一组功能模块组成,用于特征、关联、分类、聚类分析、演变和偏差分析。

  6.模式评估模块:该部分使用兴趣度度量,并与挖掘模块交互,以便将搜索聚焦在有趣的模式上,使用兴趣度阈值过滤发现的模式。模式评估模块可以与挖掘模块集成在一起。

  

  7.图形用户界面:该模块在用户和挖掘系统之间通讯,允许用户与系统交互,指定数据挖掘查询或任务,提供信息、帮助搜索聚焦,根据数据挖掘的中间结果进行探索式数据挖掘。此外,该成分还允许用户浏览数据库和数据仓库模式或数据结构,评估挖掘的模式,以不同的形式对模式可视化。

  在这个数据挖掘的基本系统中,模式评估模块可以直接的嵌入到数据挖掘引擎中,以便指导挖掘引擎只产生用户感兴趣的模式。同时,预处理和用户图形界面是很重要的功能模块,也是数据挖掘技术关注的新领域之一。

  三、基于HADOOP的数据挖掘系统设计

  通过对典型的数据挖掘系统的分析和研究,我们可以利用HADOOP平台集群巨大的存储和计算能力,组建基于HADOOP的数据挖掘系统。

  1.基本设计思想

  在经典的数据挖掘系统中,有的模块不需要很大的计算量,而有的模块需要非常大的计算量。充分利用HADOOP的集群特征,将数据挖掘系统中需要巨大计算能力的各个模块的计算和存储要求扩展到HADOOP集群中的各个节点上,利用集群的并行计算和存储能力来进行相关数据挖掘工作。我们可以采用分层的设计思想。在底层,使用HADOOP来存储、分析和处理巨大的数据量,而在高层通过接口直接透明的调用底层的计算和存储能力。其流程如下:

  ①存储

  在整个系统中,我们可以使用HDFS来存储文件和数据。HDFS具有很高的数据吞吐量,并且很好的实现了容错机制。HDFS提供了多种访问接口,包括API以及各种操作命令。使用HDFS,我们可以为原始的大数据集提供存储空间,对临时文件进行存储,为数据预处理、数据挖掘过程提供输入数据,同时输出数据我们也保存在HDFS中。

  ②计算

  在系统中,我们可以使用MapReduce将数据挖掘系统中具有大计算量特征的各个子模块的计算任务发布到集群中的各个节点以实现并行计算。MapReduce具有很好的伸缩性和扩展性,它屏蔽掉底层,通过提供编程接口使我们可以快速的实现各种算法的并行方式。实现过程中我们都需要紧紧结合HDFS.

  2.系统结构模型

  

  如图2所示,结合以上的基本设计思想以及典型的数据挖掘系统模型,采用分层的思想,自顶向下每层都透明的调用下层接口,顶层为交互层,用于用户和系统之间的交互。

  层为分布式计算层,使用HADOOP来实现文件分布式存储和并行计算功能。使用分层,各层之间变得独立,易于系统的扩展。下面详细介绍我们得到的基于HADOOP的数据挖掘系统。

  ①交互层

  这一层主要提供系统和用户之间的接口。

  通过提供具有良好表现形式的图形界面,使得用户可以登陆系统定制各种细粒度的业务,查看或者保存各种输出结果。

  ②业务应用层

  这一层上提供了各种业务逻辑并实现了对各种业务流程的控制和调度。用户提交的业务在这一层被处理,控制和调度。如:用户在交互层提交的对特定数据完成分类挖掘的业务在在一层被处理。业务应用层通过调用数据挖掘算法层的多个模块来完成交互层提交的业务,并返回结果到交互层。业务应用层还控制和调度着数据挖掘平台的各个模块的执行。

  ③数据挖掘平台层

  数据挖掘平台层为业务应用层提供数据挖掘阶段业务流需要的各个模块,并且具有较细的粒度。如数据预处理,模式评估,数据挖掘,结果展示等功能组件。这一层是整个系统的,在这一层,主要的任务在于实现各种任务过程中算法的并行化,并将任务提交到HADOOP分布计算层进行运算。并将结果返回给业务应用层。

  ④分布式计算平台层

  这一层我们使用HADOOP框架来实现集群存储、计算。HADOOP提供了分布式文件系统和并行的运行模式,同时实现了对分布式系统的管理。我们需要在此之上实现任务提交的server.

  3.功能模块

  在这个系统中,每一层都包含了各自的功能模块,以完成各层的任务。下面分别介绍各层具有的模块以及相应的功能。

  ①交互层具有的模块包括:

  用户管理模块:实现用户身份的识别以及相应权限的设置,同时也包括对用户登陆或者注销等常用的管理。

  业务模块:实现了细粒度的用户业务需求的提交。用户提交的各种业务通过业务模块得到完成。

  展示模块:实现了用户对业务结果的查看,分析和保存等功能。用来将系统的返回结果交付给用户。

  ②业务应用层具有的模块包括:

  业务响应模块:相应上层的业务模块,对完成业务所需的子业务进行调用、管理,并通过调用底层模块完成业务。

  工作流模块:对业务状态进行监控、管理。可将具体的信息参数返回给本层的业务响应模块。

  ③数据挖掘平台包括的平台:

  数据加载模块:将挖掘所需的数据进行注册并放入系统的HDFS文件系统。

  结果存储模块:存放挖掘现在产生或者历史产生的各种模式。也可以叫做知识库。

  模式评估模块:对产生的模式进行评估。

  此模块也可以被并行数据挖掘模块调用。

  并行ETL模块:对数据进行预处理。输入的数据来自于HDFS文件中,并将处理结果也放入HDFS中,为挖掘过程进行数据清理,提取,转换和加载。

  ④分布式计算层:

  HADOOP框架自身提供了HDFS,MapReduce运行模式、运算环境以及自动管理。

  四、小结

  本文介绍了数据挖掘流程并在此基础上设计了基于HADOOP的数据挖掘系统的基本架构。

  先对典型的数据挖掘系统做了分析和介绍,随后详细分析了基于HADOOP数据挖掘系统的需求,给出了系统的模型并简要介绍了各个功能模块。(作者:罗刚)

上一篇:嵌入式FORTH虚拟计算机的实现
下一篇:蓝牙技术在现代医疗电子设备中的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料