datax使用docker容器执行任务
一、datax镜像
- 从Registry中拉取镜像(如果你不想创建镜像,可以使用现成的)
如果你认为现成镜像不合适可以参考下面文档自行创建
datax容器镜像制作
从公网拉取镜像(使用阿里云镜像仓库,镜像大小800MB)
docker pull registry.cn-qingdao.aliyuncs.com/liimage/datax
如果在经典内网 使用经典内网的链接拉取
- 设置镜像名称(从阿里云获取的镜像,名称会特别长,可以修改为短点的)
docker images
docker tag [ImageId] datax:latest
- datax容器测试
docker run -it --rm datax python /opt/local/datax/bin/datax.py /opt/local/datax/job/job.json
二、执行语句
docker run -it --rm -v "$PWD":${jsonPath} -w /opt/local/datax/bin datax python \
datax.py -p \
"-Drdbuser=${rdbuser} -Drdbpwd=${rdbpwd} -Drdburl=${rdburl} -Dwdbuser=${wdbuser} -Dwdbpwd=${wdbpwd} -Dwdburl=${wdburl} -DstartDate=${startDate} -DendDate=${endDate} -Dts='${ts}' -DcheckDate=${checkDate} -DdateLength=${dateLength} -Dtable=${table}" \
${jsonPath}/test.json
三、参数说明
docker命令
参数 | 说明 |
---|
-i | 以交互模式运行容器 |
-t | 为容器重新分配一个伪输入终端 |
–rm | 运行完成后自动删除容器 |
-v | 目录挂载 宿主机目录:容器目录 |
-w | 指定工作目录,可直接运行该目录下程序 |
datax | 使用datax镜像 |
其他命令
参数 | 说明 |
---|
$PWD | 指当前执行目录 |
${…} | shell脚本内部参数 |
-p | datax参数用于指定输入参数列表 |
-Drdbuser=${rdbuser) | 具体参数,json使用名称:${rdbuser} |
…/*.json | datax执行的json文件 |
四、使用说明
- 将shell脚本和json放在宿主机同一目录中,通过crontab定时执行shell脚本,在脚本中负责进行参数的处理并执行容器命令。
- 使用定时任务部署时,需要去除docker 中的"-t"参数,否则会报错