Dolphinscheduler Docker 部署全攻略

Docker部署的目的是在容器中快速启动部署Apache Dolphinscheduler服务。

作者| 陈逸飞

Docker部署的目的是在容器中快速启动部署Apache DolphinScheduler服务。



01


先决条件


  • docker-compose(https://docs.docker.com/compose/install/)
  • docker




02


使用容器单机部署



  1. 请下载源码包apache-dolphinscheduler--src.tar.gz,下载地址:https://dolphinscheduler.apache.org/zh-cn/download/3.1.9
  • 首先确定服务启动所需的端口未被占用
    port_list=(12345 25333 5432)
    for port in ${port_list[@]};do
     netstat -an | grep $port
    done
    # 无任何输出即为端口未被占用
  • 如果端口被占用的情况下
    vim docker-compose.yml
    找到dolphinscheduler-api,修改ports。
    # 默认内容
    ports:
      - "12345:12345"
      - "25333:25333"

    # 根据需求修改,如:
    ports:
      - "22345:12345"
      - "35333:25333"
  1. 安装Postgresql 与 Dolphinscheduler服务
tar -zxvf apache-dolphinscheduler-<version>-src.tar.gz
cd apache-dolphinscheduler-<version>-src/deploy/docker
# 初始化数据库等
docker-compose --profile schema up -d
# 启动所有服务
docker-compose --profile all up -d




03


使用容器分布式部署


  1. 在deploy文件夹下修改完成.env文件之后,复制到其他服务器
  2. 在其他需要启动Dolphinscheduler服务的服务器下,执行启动命令(如:Dolphinscheduler-api)
docker-compose up -d  dolphinscheduler-api



04


使用非容器化的PostgreSQL与Zookeeper



  1. 修改环境变量
# 进入Deploy目录
cd apache-dolphinscheduler-<version>-src/deploy/docker
vim .env
## 修改以下内容
# 数据库名称
DATABASE=dolp
# 数据库连接地址
SPRING_DATASOURCE_URL=jdbc:postgresql://10.0.8.14:15432/dolp
# Zookeeper连接地址
REGISTRY_ZOOKEEPER_CONNECT_STRING=10.0.8.14:12181
# 连接数据库的用户名
SPRING_DATASOURCE_USERNAME=dolp
# 连接数据库的密码
SPRING_DATASOURCE_PASSWORD=111111
  1. 初始化
docker-compose --profile schema up -d
  1. 启动Dolphinscheduler服务
# 启动worker服务
docker-compose up -d dolphinscheduler-worker
# 启动master服务
docker-compose up -d dolphinscheduler-master
# 启动alert服务
docker-compose up -d olphinscheduler-alert
# 启动api服务
docker-compose up -d dolphinscheduler-api



05


让DolphinScheduler元数据库支持MySQL



  1. 下载Mysql-jdbc驱动包mysql-connector-java-8.0.16.jar(https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar)
  2. 在MySQL驱动包目录下,执行以下命令
# 如果用的是默认容器启动的zookeeper和PostgreSQL,会有两条Error,忽略即可
for container_name in `docker ps |grep dolphinscheduler | awk '{print $1}'`;do docker cp ./mysql-connector-java-8.0.16.jar $container_name:/opt/dolphinscheduler/libs;done
  1. 重启所有服务
docker-compose --profile all restart