论文部分内容阅读
近年来,大数据处理技术对于各行业和政府部门的决策分析和运营起到日渐重要的作用。本文以某省交通物流云平台项目为背景,该项目要求以MapReduce作业执行框架和Hadoop为技术基础,为数以千计的交通物流企业和政府部门的交通物流SaaS应用提供大数据处理服务。由于面向交通物流的大数据处理应用开发涉及交通物流业务专家、数据分析专家和应用程序开发人员等多个角色,因此,如何实现多角色协同的大数据处理应用敏捷开发是需要解决的关键问题。另外,虽然MapReduce工作流引擎Oozie可支持大数据处理应用的流程化组装,但是,如何防止Oozie在执行时由于结点之间的数据依赖而导致执行效率低,也是需要解决的实际问题。针对上述问题,本文在对MapReduce、Hadoop、Oozie等相关技术进行分析的基础上,提出并实现了一种上下游结点部分并行的MapReduce工作流执行优化方案,设计并实现了一个支持协同开发和工作流组装的交通物流大数据处理系统。测试和应用情况表明,该系统是可行及有效的。与同类系统相比,本文工作具有以下特点:1)针对MapReduce工作流执行效率低的问题,提出上下游结点部分并行的MapReduce工作流执行优化方案。该方案利用MapReduce作业的Reduce Task完成时间不同的特点,下游结点不必等待上游结点完全结束即可触发执行,从而使上下游结点部分并行执行,提高工作流执行效率。2)在Hadoop的基础上,提出并实现支持追加输入的MapReduce作业执行框架。该框架支持正在执行的MapReduce作业可追加输入数据,从而为上下游结点部分并行的MapReduce工作流引擎提供基础。3)在Oozie的基础上,实现支持上下游结点部分并行的MapReduce工作流引擎,该引擎具有双执行器,能够自动识别具有MapReduce作业的工作流并选择上下游结点部分并行模式执行。对比实验结果表明,在Reduce Task数量大于集群中Reduce Slot数量时,采用部分并行执行模式的工作流执行效率提高19%左右。4)针对多角色协同的大数据处理应用开发问题,重点为开发者提供了大数据处理组件集成开发环境。该集成开发环境以Hadoop Eclipse插件为基础,增加了测试沙箱功能,开发者可以在该环境中完成组件的开发、测试和部署。