赞
踩
参考官网:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/docker-deployment.htm
环境基础:
Docker 1.13.1+
Docker Compose 1.11.0+
因为之前开发有这个需求,所以这两个我都已经安装好了,挺简单的,yum安装docker,直接下载二进制Docker Compose包,下了就能用。
下载源包https://dolphinscheduler.apache.org/zh-cn/download/download.html
我这边下载的是最新的src版本的
然后解压包进入docker-swarm文件夹下拉取镜像
tar -zxvf apache-dolphinscheduler-1.3.6-src.tar.gz
cd apache-dolphinscheduler-1.3.6-src/docker/docker-swarm
docker pull apache/dolphinscheduler:latest
修改配置文件:docker-compose.yml 把所有节点的网络设置好,不使用自动分配的。
修改前:
修改后:
上面蓝框是我穿进去的秘钥,这样容器就可以免密远程登陆目标机执行任务了
但是镜像默认是没有ssh的,所以我自己用dockerfile又封装了一层镜像
我这边创建了两个worker镜像,因为worker是用来执行任务的所以尽量多部署一个
因为这个服务在任务流失败时可以触发报警,所以需要配置报警媒介,我使用的是邮件,也可以使用企业微信
修改启动传参文件:config.env.sh
PASSWD是授权码,不是密码
USER和SENDER是发送者邮箱账号
接收者要在网页配置
修改完启动文件后就可以拉取镜像然后启动服务了
docker-compose up -d
正常启动了
在网页输入 http://192.168.xx.xx:12345/dolphinscheduler访问页面控制
默认的用户是admin,默认的密码是dolphinscheduler123
登录之后依次创建:
队列
租户
普通用户
告警组
worker分组
token令牌
创建好之后,退出admin账户,使用新建的普通账户登录
项目管理--》创建项目---》点击进入项目--》工作流定义
到这里就可以根据就要进行任务编排了,箭头来分布先后顺序,两个箭头代表同时执行,两个箭头汇入同一个节点代表需要上两个节点任务都完成之后再开始此节点任务
这里可以执行sql语句,shell语句,Python脚本,都挺方便的,可以根据任务需求进行编写
唯一不好的就是shell语句都是在本地容器上执行,如果要到远程主机执行,就必须用ssh远程执行
而且语句要用sudo,因为执行语句的用户不是容器的root用户,可以查看worker容器日志查看是哪个用户执行的
然后登陆worker容器里面 添加免密执行sudo的权限
docker logs -f 容器id
docker exec -it 容器id /bin/sh
echo “执行用户名 ALL=(ALL) NOPASSWD: ALL”
source /etc/sudoers
加了权限之后就可以执行了
先点上线,然后点运行就可以开始工作流了,再到工作流实例了么查看每次任务运行的情况和日志
这个任务调度器功能还是很丰富的,更多功能还需要大家继续探索和交流
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。