datax使用docker容器执行任务

datax使用docker容器执行任务

一、datax镜像

  1. 从Registry中拉取镜像(如果你不想创建镜像,可以使用现成的)
    如果你认为现成镜像不合适可以参考下面文档自行创建
    datax容器镜像制作
从公网拉取镜像(使用阿里云镜像仓库,镜像大小800MB)
docker pull registry.cn-qingdao.aliyuncs.com/liimage/datax

如果在经典内网 使用经典内网的链接拉取

  1. 设置镜像名称(从阿里云获取的镜像,名称会特别长,可以修改为短点的)
docker images
docker tag [ImageId] datax:latest
  1. 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文件

四、使用说明

  1. 将shell脚本和json放在宿主机同一目录中,通过crontab定时执行shell脚本,在脚本中负责进行参数的处理并执行容器命令。
  2. 使用定时任务部署时,需要去除docker 中的"-t"参数,否则会报错

你可能感兴趣的:(Datax)