datax执行流程
2025-03-24 15:11:19 17 举报
DataX是一种由阿里巴巴开源的大数据同步工具,旨在高效、稳定地迁移数据于各种异构数据源之间。其执行流程主要包含了Job的加载、任务运行、资源的分配和节点的调度等核心内容。在整个流程中,DataX首先读取用户配置的json格式的作业配置文件,将其解析为Job对象,然后对Job进行预检查,确保配置的正确性和完整性。其后,DataX框架会将Job拆分成一个或多个子任务,并发送到相应的工作节点。每个子任务运行在独立的进程中,以保证任务执行的并发性和高效性。 资源分配是指DataX需要动态地申请执行过程中需要的JVM资源,保证整个同步过程的资源需求得到满足。最后,DataX通过心跳机制监控任务的执行状态,对不同节点上的执行单元进行调度管理,确保数据同步作业顺利进行。整个执行过程体现了DataX的灵活性、可扩展性和高效率特点,适用于多种场景的大数据处理需求。
作者其他创作
大纲/内容
postJobWriter加载写插件执行其post方法
Engine.start
参数解析Job参数Merge核心参数Merge插件参数确定运行模式和jobid对配置文件做整体检查
TaskGroupContainerRunner
TaskExecutor.doStart
JobContainer.start
startAllTaskGroup
writerThread.start(WriterRunner)|中间桥梁为(ArrayBlockingQueue)|readerThread.start(ReaderRunner)
postJobReader加载读插件执行其post方法
postHandle
initJobReader加载读插件传入Config执行其init方法
mergeReaderAndWriterTaskConfigs
isDryRun
prepare
initJobWriter加载写插件传入Config执行其init方法
adjustChannelNumPerTaskGroup
JobAssignUtil.assignFairly
init
adjustChannelNumber
preHandle
doReaderSplit(jobReader.split)
这里先执行writer再执行reader
split(任务切分)
1.建议执行是的channel数2.输入是reader和writer的parameter list,输出是content下面元素的list
预演流程
scheduler.schedule
initStandaloneScheduler
prepareJobReader加载读插件执行其prepare方法
TaskGroupContainer.start
绑定column转换信息创建JobContainer
Engine.entry
开始
post
doAssign
invokeHooks
schedule(任务调度)
获取transformer
doWriterSplit(jobWriter.split)
parseAndGetResourceMarkAndTaskIdMap
prepareJobWriter加载写插件执行其prepare方法
0 条评论
下一页
为你推荐
查看更多