论文部分内容阅读
Hadoop平台已经成为大数据处理的主流平台,然而随着数据处理任务的业务和技术复杂性越来越高,企业单纯使用Hadoop平台解决此类问题遇到越来越多的问题:MapReduce任务模型难以描述流程复杂的数据分析任务;任务开发、任务发布及管理等成本高。本文设计了一套面向Hadoop平台的工作流模型,通过工作流模型来定义Hadoop任务流程、属性、执行条件等,将Hadoop任务抽象为有向无环图,实现对复杂任务的建模、管理和调度执行,有效降低任务从开发到发布和管理的额外成本。本文主要研究工作分为两部分,任务建模和任务调度。 (1)任务建模。本文设计了一套适用Hadoop任务的工作流模型描述语言,模型描述语言是一种元模型,拥有描述工作流任务流程、工作流属性以及工作流执行条件的能力,对工作流中的数据处理任务以及他们之间的依赖关系进行建模。Hadoop工作流模型支持HDFS、MapReduce、Pig、 Hive、Java、Shell、Python等任务类型,以及顺序、并行、条件分支等逻辑关系。此外,任务模型通过定义执行条件,实现按时间合法性、数据有效性条件进行定时和触发调度。 (2)任务调度。首先,本文实现了根据时间合法性条件进行定时调度和根据数据有效性条件进行触发调度的调度方法。其次,对于单个任务的执行,分为工作流模型解析和工作流模型执行两个关键环节。本文设计了工作流模型拓扑扫描的解析算法,将工作流模型解析为以顺序路径为单位的拓扑结构,作为工作流执行引擎的输入单位。为了处理不同类型的任务节点以及节点之间的并行和条件分支关系,工作流执行引擎采用基于反馈的调度执行算法,通过工作流调度控制中心、并行调度进程、条件分支调度进程、顺序路径调度进程等各进程之间的信号反馈进行协调合作,完成Hadoop工作流模型的任务调度。