〕 和 MapReduce〔7〕 基于 MapReduce 实现的数据挖掘平台的系统架构主要框架为大规模并行数据计算
与分析提供了重要的参考。
Ma- 包括数据挖掘过程模型、代码生成引擎、数据挖掘组件模pReduce 框架将数据的运算抽象成 “Map” 和 “Reduce” 两 型、MapReduce 执行
框架 4 个
模块,如图 2 所示。
个阶段,以分而治之的
思想简化了大规模数据集的
并行计 数据挖掘过程模型: 用户通过可视化的界面来定义数算过程。
Hadoop 是 MapReduce 框架与
分布式文
件系统 GFS 据挖掘过程,并配置相关的组件信息,该部分通过基于 E-的开源实现,它实现的 MapReduce 框架和 HDFS 分布式文 clipse 的 EMF〔12〕 、GEF〔13〕 和 GMF 〔14〕 实现图形
化的数据流件系统使得在
成本可控的情况下处理海量数据成为可能。
程处理模型。
业界围绕着 Hadoop
发展起来了一
系列工具,这些工具扩展 代码生成引擎: 为了避免让用户重复编写
通用代码,第 34 卷 第2 期 黄斌,许舒人,蒲卫: 基于 MapReduce 的数据挖掘平台设计与实现 497 图2 基于 MapReduce 数据挖掘处理平台架构
系统具备生成符合 Hadoop 规范代码的功能,用户通过系统 关。
逻辑模型经过系统的后台解析转换成物理模型后才能提供的参数配置
界面配置需用户定义的参数,这些参数最 在系统中执行。
后将会反映到最终生成的代码中。
从用户定义的数据挖掘 过程模型使用 EMF
技术实现逻辑模型到物理模型的转过程模型
转换成可在 Hadoop 上运行的代码有一个过程分析 换。
同时,通过 GEF 技术,用户可通过模型的
图形化方式与代码生成过程,该过程由代码生成引擎完成,主要包括 来实现逻辑模型
的定义。
物理模型与具体实现相关,物理了过程模型分析、依赖关系分析、代码模板解析等工作。
模型包含了数据挖掘组件模型、Jet 模板代码生成技术以及 数据挖掘组件模型: 数据挖掘过程是通过将组件连接 与 MapReduce
相关的 Mapper 与 Reducer 定义、Job
类型等相起来
构成的,组件为了实现不同的功能,将封装不同的数 关内容。
这些
内容将分别在 2. 3 节代码生成引擎和 2. 4 节据操作逻辑。
数据挖掘组件主要分成数据挖掘算法 ( dat- 数据挖掘组件
介绍。
amining algorithm) 组件、Connector 组件、
用户自定义组件 数据挖掘过程包括数据准备、数据预处理、数据挖掘( user defined component) 三大类。
和结果展示几个步骤。
如图 3 所示,数据
准备主要是指定 MapReduce 执行 框 架: 系 统 以 Hadoop 提 供 的 MapRe- 义一个或多个数据来源,并在执行
过程中完成数据抽取工duce 框架
作为数据挖掘过程执行平台,通过向 MapReduce 作,用户可通过定义
不同的 Connector 组件来实现对不同数框架提交代码的形式,运用 MapReduce 的并行计算能力实 据源的数据抽取。
数据预处理包括了数据清理 ( 去噪和去现挖掘过程的并行化。
除不一致数据) 、数据集成 ( 多数据源的
组合) 和数据选 运用基于模型
驱动的开发
方法,系统将软件过程中使 择 ( 定义数据过滤规则) 。
用户通过定义过滤、正则匹配等用的算法
提取出来
形成抽象模型。
该方法可使用户无需关 组件来实现该
步骤。
数据挖掘运用数据挖掘
算法对经过预心特定算法实现细节,系统以面向组件的方式简化数据挖 处理的数据执行挖掘算法。
最后,结果展示步骤将执行结掘流程
定义和算法组件定义。
面向
模型驱动的开发方法提 果以数据或图表的形式展示给用户。
高了系统的抽象
层次,系统以一种可扩展的方式实现了数据挖掘平台的低耦合、高内聚。
2. 1 数据挖掘过程模型 用户通过系统提供的模型组件来定义数据挖掘过程, 图3 数据挖掘过程该过程是一个符合过程逻辑模型的挖掘过程。
在逻辑模型中,挖掘过程中的每一步数据操作被抽象成一个数据操作 2. 2 代码
生成引擎 代码生成引擎主要完成从
逻辑模型到可被 MapReduce节点,该节点可称为逻辑节点。
系统通过解析逻辑节点的 框架执行的可执行代码的转换过程,如图 4 所示,大致可输入输出信息、用户配置参数、节点对应的系统组件元信 分成模型解析与代码生成两步。
息来构建物理过程模型。
逻辑过程模型与具体实现技术无 第一步是模型解析,模型解析的主要