Closed isEdwardTang closed 3 years ago
每个语言(java / python)维护一个和平台无关的core(由我们自己实现),其中包含以下逻辑:
为了引入平台方便,对外仅暴露一个DagExecutor的接口,平台传入以下参数:
在java core的基础上,任何人基于以下规范都可以实现引入一个新的平台(source code,不包含对应的xml文件):
1.实现所有的operator,实现逻辑是:继承OperatorBase<InputType, OutputType>,然后实现其中的execute方法,其中
2.指定operator的name和实现的映射关系,实现逻辑是:继承OperatorFactory,在构造器中覆盖operatorMap,其中
3.实现一个main函数,使用DagExecutor并传入参数即可:
DagExecutor executor = new DagExecutor(args, new XxxOperatorFactory()); executor.execute();
4.可选:在平台执行前后,可能会有一些特殊的处理逻辑,可实现DagHook方法,并覆盖其中的preHandler和postHandler方法即可, 然后传入到DagExecutor中
新平台引入思想
每个语言(java / python)维护一个和平台无关的core(由我们自己实现),其中包含以下逻辑:
为了引入平台方便,对外仅暴露一个DagExecutor的接口,平台传入以下参数:
引入新的java语言平台的规范
在java core的基础上,任何人基于以下规范都可以实现引入一个新的平台(source code,不包含对应的xml文件):
1.实现所有的operator,实现逻辑是:继承OperatorBase<InputType, OutputType>,然后实现其中的execute方法,其中
2.指定operator的name和实现的映射关系,实现逻辑是:继承OperatorFactory,在构造器中覆盖operatorMap,其中
3.实现一个main函数,使用DagExecutor并传入参数即可:
4.可选:在平台执行前后,可能会有一些特殊的处理逻辑,可实现DagHook方法,并覆盖其中的preHandler和postHandler方法即可, 然后传入到DagExecutor中