论文部分内容阅读
大数据时代的信息爆炸,使得对大数据的处理变得异常重要。各个行业尤其是互联网行业,每天都会产生TB级的服务数据,需要更多的硬件资源来处理,如何对海量数据进行处理有很大的意义。面对这些海量数据,企业希望通过运用数据挖掘算法发现这些数据中蕴含着巨大商业价值的潜在信息,而ETL:数据的清洗-转换-集成是数据挖掘的前提,它为数据挖掘提供更为精炼的数据,方便企业运用各种数据挖掘算法对数据进行分析,因此对海量数据的ETL处理有着很大的现实意义。MapReduce编程模型的提出,为大数据处理提供了新的思路,由于良好的易用性和可扩展性,得到工业界和学术界的广泛支持和应用。但是对于一个复杂的ETL处理流程,需要多个MapReduce作业来完成任务。作业间对Hdfs的读写所产生的工/0消耗以及网络传输的消耗严重影响着ETL流程的处理性能。尽管Hadoop提供了链式MapReduce接口,可以减少MapReduce作业的数目,但是链式MapReduce自身也存在着不足之处。本文通过研究已有ETL系统和大数据处理方法,提出一种改进的链式MapReduce框架,并将其应用于一个并行数据挖掘系统的ETL模块中,该系统是B/S模式,通过拖拽算法组件的形式形成工作流。本文的具体研究内容如下1.在研究初期通过调研MapRedcue作业执行流程以及开源ETL项目,了解目前大数据ETL的处理方法,为之后构建优化规则,提出改进的链式MapReduce框架做准备。2.在借鉴开源ETL项目并结合MapRedcue特点的基础上,提出一种改进的链式MapReduce框架,并将此框架应用于一个并行ETL工具上,使该工具拖拽出的ETL流程产生的MapReduce作业更适合于作业的拆分和组合,并针对此框架设计了一个相应的工作流引擎。3.本文根据MapReduce作业的特点以及ETL算法的特性,设计了几种流程级别的优化规则,通过优化规则使得拖拽出的ETL流程被重新组合成新的流程,新的作业流程产生更少的MapReduce作业,更少的IO,磁盘消耗。并在此基础上对部分ETL算法在MapReduce层面上进行优化。4.最后利用某省份手机上网数据,将本ETL工具与Hive进行性能对比试验。