
技术摘要:
本发明公开了一种将DAG图数据转换为工作流引擎调度文件的方法,包括根据DAG图数据的文件类型解析获取DAG图数据中的节点及其属性信息生成节点类实例,获取节点之间连接关系;根据工作流引擎定义的格式将所获取的节点类实例转换为执行引擎节点类实例,并根据节点连接关系 全部
背景技术:
随着信息技术的发展,数据挖掘、机器学习、人工智能、统计分析等技术在数据分 析领域获得广泛应用。与此同时为应对海量数据处理任务,出现了多种分布式计算框架,如 hadoop yarn、mesos、kubernetes等。 大数据分析处理任务大都包含多个数据处理步骤,每个步骤的数据处理算法需提 交计算框架运行,其中有些步骤可以并发执行,有些步骤需要有依赖关系。为将这种复杂的 任务调度到分布式技术框架运行,出现了很多的工作流调度引擎。但这些工作流调度引擎 都通过自定义调度文件的形式编排任务运行流程。调度文件一般复杂难写,而且调度文件 千差万别,要切换调度引擎需要修改大量内容。 与此同时,很多机器学习平台出现了通过拖拽即可构建机器学习模型的方法,大 大简化了建模过程。这些模型大都基于DAG图。要将DAG图模型提交分布式技术框架运行,需 要将DAG图转换成满足工作流引擎调度文件规定格式,而目前工作流引擎形式各异,所对应 的调度文件也是格式各异,这给DAG图的转换带来的极大的难度。
技术实现要素:
本申请的目的在于提供一种将DAG图数据转换为工作流引擎调度文件的方法,实 现将各种格式的DAG图数据转换为多类型的工作流引擎调度文件,降低DAG图数据的转换难 度,提高工作流引擎切换效率。 为实现上述目的,本申请所采取的技术方案为: 一种将DAG图数据转换为工作流引擎调度文件的方法,所述将DAG图数据转换为工 作流引擎调度文件的方法,包括: 步骤S1、获取待转换的DAG图数据,识别DAG图数据的文件类型; 步骤S2、根据所述文件类型解析DAG图数据,获取DAG图数据中的节点及其属性信 息生成节点类实例,同时获取节点之间的连线以及连线方向的类实例; 步骤S3、根据工作流引擎定义执行引擎节点类信息的格式,根据定义的格式将所 获取的节点类实例转换为执行引擎节点类实例,并根据节点之间的连线以及连线方向的类 实例生成执行引擎节点的输入输出信息和前后依赖节点信息; 步骤S4、根据执行引擎节点的前后依赖节点信息,对执行引擎节点类实例进行有 序编排; 步骤S5、根据工作流引擎所需调度文件的格式以及文件类型,将有序编排的执行 引擎节点类实例以及前后依赖节点信息按照调度文件的格式持久化至文件中,输出与工作 流引擎所需的文件类型对应的工作流引擎调度文件。 4 CN 111597143 A 说 明 书 2/8 页 作为优选,所述工作流引擎包括oozie工作流引擎、azkaban工作流引擎,所述 oozie工作流引擎对应的调度文件为oozie workflow.xml,所述azkaban工作流引擎的调度 文件为azkaban flow。 作为优选,所述DAG图数据转换为ooz i e工作流引擎的调度文件ooz i e workflow.xml的过程包括: a、获取待转换的DAG图数据; b、继承预定义的节点以及连接线的抽象类,根据oozie的workflow.xml中action 节点及其属性信息,获取DAG图数据中的节点及其属性信息生成节点类实例,同时获取节点 之间的连线以及连线方向的类实例; c、继承实现预定义的节点转换接口中的方法,将解析DAG图数据获取的节点类实 例,转换成oozie工作流引擎中action节点对应的节点属性,同时按照DAG图数据中任务节 点端口三级规则组成输出地址,加入节点属性,同时根据DAG图数据中节点的连接关系,生 成节点输入地址以及各节点的前后节点属性信息; d、继承实现预定义的任务编排接口中的方法,在出度大于1的地方插入oozie工作 流引擎的fork-join控制节点达到并发执行,之后插入start、end、fail控制节点,得到任务 信息; e、继承实现接口及抽象类的预定义的文件输出方法,实现写workflow.xml文件功 能,按照文件中的布局信息,将任务信息输出到文件的