论文部分内容阅读
近年来,大数据研究和应用已成为产业升级与新产业崛起的重要力量,网络数据呈现指数级增长,GB,TB乃至PB级别的数据处理变得司空见惯。这些海量数据存储于社会中的各个部门当中,置于多种数据环境和数据平台,形态各异,形成了大量的异构数据。异构数据的广泛存在,严重阻碍了数据交流。与此同时,以Hadoop和Spark为代表的大数据处理平台应运而生。然而这些大数据处理平台有其自身特有的编程模型和实现细节,使用这些平台也需要借助于特定的编程语言,因此学习门槛较高,学习曲线陡峭。基于以上背景,我们需要一种可以屏蔽平台细节和数据异构性的方法,让用户在对大数据平台没有深刻掌握,不需要考虑数据异构的情况下,进行大数据程序开发。本文提出了一套模型驱动的MapReduce大数据变换程序开发方法,该方法对数据进行抽象建模,用模型转换表示数据的变换过程,利用代码生成技术映射生成Hadoop和Spark两种数据处理程序的代码,让用户开发大数据程序对海量异构进行处理的过程可以屏蔽平台细节和数据异构姓。我们选取了目前广泛使用的Ecore格式用于源数据和目标数据的模型表示,并采用OMG组织公布的QVT-R标准作为模型转换层的描述语言。我们引入一门平台无关命令式描述语言Midcore作为大数据处理代码与QVT-R桥接的中间语言。Ecore和QVT-R映射生成对应的Midcore描述,Midcore支持同时映射生成Hadoop和Spark代码。本方法还可以支持扩展,基于Midcore可生成其他大数据平台代码。基于本文提出的方法,我们实现了相应的支撑工具QE2HS,该工具能够将Ecore和QVT-R描述的模型和变换自动生成Hadoop和Spark代码,最后我们还进行了相关的实例研究。结果表明,该方法能够有效生成大数据处理程序的源代码代码,实现了平台细节和数据异构性的屏蔽,简化了大数据程序代码的编写复杂程度,生成的代码执行效率也是可以接受的。