DataX 3.0执行流程分析

本文详细分析了DataX 3.0的执行流程,从Engine入口类开始,涵盖重要参数介绍、Engine启动流程,包括参数解析、Engine start过程,深入解析JobContainer的初始化、预处理、Job拆分及调度等关键步骤。
摘要由CSDN通过智能技术生成

DataX 3.0执行流程分析

入口类:com.alibaba.datax.core.Engine

Engine是DataX入口类,该类负责初始化Job或者Task的运行容器,并运行插件的Job或者Task逻辑。

1. 重要参数介绍

DataX 的执行涉及到三类重要的配置文件,它们分别是:xxxJob.json,core.json和plugin.json
  • xxxJob.json:作业相关配置信息,指定相应的reader、writer等
  • core.json:DataX 内置的配置信息,如jvm配置等基础配置信息
  • plugin.json:插件配置信息,根据DataX的插件开发要求,每个插件都必须有对应的配置信息

在DataX启动时,指定jobid,job配置文件路径,DataX工作路径等,启动脚本如下所示:

java -server -Xms1g -Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/admin/IdeaProjects/DataX/target/datax/datax/log -Dloglevel=info -Dfile.encoding=UTF-8 -Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener -Djava.security.egd=file:///dev/urandom -Ddatax.home=/Users/admin/IdeaProjects/DataX/target/datax/datax -Dlogback.configurationFile=/Users/admin/IdeaProjects/DataX/target/datax/datax/conf/logback.xml -classpath /Users/admin/IdeaProjects/DataX/target/datax/datax/lib/*:.  -Dlog.file.name=n_stream2stream_json com.alibaba.datax.core.Engine -mode standalone -jobid -1 -job /Users/admin/IdeaProjects/DataX/target/datax/datax/bin/stream2stream.json

2. Engine启动流程

2.1 Engine启动流程图
Engine ConfigParser JobContainer LoadUtil entry(args) ConfigParser.parse(jobPath) ConfigParser.parseJobConfig(jobPath) ConfigParser.parseCoreConfig(CoreConstant.DATAX_CONF_PATH),false) Configuration.merge(jobConfig,coreConfig) parsePluginConfig(List<String> wantPluginNames) Configuration.merge(jobConfig,coreConfig) return Configuration engine.start(configuration) ColumnCast.bind(allConf) LoadUtil.bind(allConf) start(allConf) this.init()【reader和writer初始化:设置插件配置信息】 this.prepare()【完成插件加载】 LoadUtil.getJarLoader(PluginType,PluginName) JarLoader【提供Jar隔离的加载机制】 this.split()【执行reader和writer最细粒度的切分】 this.schedule()【对上一步split的任务进行分组并调度执行】 this.post() Engine ConfigParser
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值