DataX取消Python依赖

Posted by Lance Lee on Tuesday, July 7, 2020

TOC

DataX取消Python依赖

DataX是依赖Python环境的,而且是Python 2.X。关键是依赖Python的原因仅仅是用来启动DataX Java进程,那为什么不直接使用Java进行启动呢?启动命令如下所示:

python datax.py ../job/YH_Gathering.json

Linux环境还好,自带Python,Windows环境必须安装Python。而且生产中使用DataX一般都是开发对应模块,在代码中使用JDK中的ProcessAPI进行启动,所以这个时候可以考虑取消Python依赖,减少“中间商”。

分析datax.py脚本代码我们可以发现,主要作用是生成JobConfig、参数解析构建命令、以及进程启动关闭管理。在脚本220行,构建启动命令。如下:

startCommand = buildStartCommand(options, args)
# print startCommand

我们打印启动命令可以发现:

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

里面包括了JVM内存、内存溢出时导出dump文件、日志的设置、随机数生成规则以及Enginemain函数的参数。

因此可以直接通过上面的Java命令启动DataX进程。

「如果这篇文章对你有用,请支持一下哦」

Attack On Programmer

如果这篇文章对你有用,请支持一下哦

使用微信扫描二维码完成支付