摘 要:数据处理流程在信息爆炸的今天被广泛应用并呈现出海量和并行的特点, MapReduce 编程模型的简单性和高性价比使得其适用于海量数据的并行处理, 但是 MapReduce 不支持多数据源的数据处理, 不能直接应用于具有多个处理操作、多个数据流分支的数据处理流程。提出一种模型驱动的面向 MapReduce 计算模型的数据处理流程快速开发方法, 定义数据处理流程的逻辑模型、物理模型和组件模型, 使用模型转换算法和代码生成算法将逻辑模型转化为物理模型, 再转换为能直接在 Hadoop 平台上运行的 MapReduce 程序, 基于该方法实现了一个开发工具 CloudDataFlow。
1 引言
常见的数据处理流程应用包括数据仓库应用中的 ETL过程, 商业智能应用中的数据分析挖掘过程, 科学计算领域的科学工作流, 搜索引擎领域的大量分析处理过程等, 这些典型的应用场景广泛出现在大型企业和科学研究领域。
但是 MapReduce模型的简单性也导致了几个问题: 由 于 这 几 个 问 题 的 出 现 , 用 户 在 使 用MapReduce 的过程中总是手工编写各种复杂的数据处理流程, 纠缠于多数据源的数据分析, 重复地在一 些 黑 盒 流 程 中 实 现 基 本 的 操 作 , 严 重 限 制 了MapReduce 编程模型的使用, 减慢数据分析进度, 而且使数据处理程序的可读性大大降低, 同时也不可能进行一些自动的流程优化。 (责任编辑:IT) |