dolphinscheduler更改数据库为MySQL

846 阅读2分钟

dolphinscheduler服务启动

dolphinscheduler(简称DS)此文档对应版本是2.0.5官方文档,采用得是docker-compose部署,类似于一键启动这里不再过多介绍,重点介绍如何使用MySQL作为DS数据库,DS默认使用PostgreSQL

启动

  docker tag apache/dolphinscheduler:2.0.5 apache/dolphinscheduler:latest
  docker-compose up -d

使用MySQL作为DS数据库

  • 下载对应MySQL连接jar包,放到对应docker-compose.yml同级目录下,注意版本要一致

    ds-docker.png

  • 创建DockerFile,写入下面两行代码,MySQL版本与你实际得一致

    FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler:2.0.5
    COPY mysql-connector-java-8.0.16.jar /opt/dolphinscheduler/lib
    
  • 构建MySQL镜像

    docker build -t apache/dolphinscheduler:mysql-driver .
    
  • 修改 docker-compose.yml 文件中的所有 image 字段为 apache/dolphinscheduler:mysql-driver,zookeeper除外,并删除所有dolphinscheduler-postgresq设置,如下所示(这里采用注释代替删除)

    version: "3.1"
    
    services:
    
    #  dolphinscheduler-postgresql:
    #    image: bitnami/postgresql:11.11.0
    #    environment:
    #      TZ: Asia/Shanghai
    #      POSTGRESQL_USERNAME: root
    #      POSTGRESQL_PASSWORD: root
    #      POSTGRESQL_DATABASE: dolphinscheduler
    #    volumes:
    #    - dolphinscheduler-postgresql:/bitnami/postgresql
    #    restart: unless-stopped
    #    networks:
    #    - dolphinscheduler
    
      dolphinscheduler-zookeeper:
        image: bitnami/zookeeper:3.6.2
        environment:
          TZ: Asia/Shanghai
          ALLOW_ANONYMOUS_LOGIN: "yes"
          ZOO_4LW_COMMANDS_WHITELIST: srvr,ruok,wchs,cons
        volumes:
        - dolphinscheduler-zookeeper:/bitnami/zookeeper
        restart: unless-stopped
        networks:
        - dolphinscheduler
    
      dolphinscheduler-api:
        image: apache/dolphinscheduler:mysql-driver
        command: api-server
        ports:
        - 12345:12345
        environment:
          TZ: Asia/Shanghai
        env_file: config.env.sh
        healthcheck:
          test: ["CMD", "/root/checkpoint.sh", "ApiApplicationServer"]
          interval: 30s
          timeout: 5s
          retries: 3
        depends_on:
    #    - dolphinscheduler-postgresql
        - dolphinscheduler-zookeeper
        volumes:
        - dolphinscheduler-logs:/opt/dolphinscheduler/logs
        - dolphinscheduler-shared-local:/opt/soft
        - dolphinscheduler-resource-local:/dolphinscheduler
        restart: unless-stopped
        networks:
        - dolphinscheduler
    
      dolphinscheduler-alert:
        image: apache/dolphinscheduler:mysql-driver
        command: alert-server
        environment:
          TZ: Asia/Shanghai
        env_file: config.env.sh
        healthcheck:
          test: ["CMD", "/root/checkpoint.sh", "AlertServer"]
          interval: 30s
          timeout: 5s
          retries: 3
    #    depends_on:
    #    - dolphinscheduler-postgresql
        volumes:
        - dolphinscheduler-logs:/opt/dolphinscheduler/logs
        restart: unless-stopped
        networks:
        - dolphinscheduler
    
      dolphinscheduler-master:
        image: apache/dolphinscheduler:mysql-driver
        command: master-server
        environment:
          TZ: Asia/Shanghai
        env_file: config.env.sh
        healthcheck:
          test: ["CMD", "/root/checkpoint.sh", "MasterServer"]
          interval: 30s
          timeout: 5s
          retries: 3
        depends_on:
    #    - dolphinscheduler-postgresql
        - dolphinscheduler-zookeeper
        volumes:
        - dolphinscheduler-logs:/opt/dolphinscheduler/logs
        - dolphinscheduler-shared-local:/opt/soft
        restart: unless-stopped
        networks:
        - dolphinscheduler
    
      dolphinscheduler-worker:
        image: apache/dolphinscheduler:mysql-driver
        command: worker-server
        environment:
          TZ: Asia/Shanghai
        env_file: config.env.sh
        healthcheck:
          test: ["CMD", "/root/checkpoint.sh", "WorkerServer"]
          interval: 30s
          timeout: 5s
          retries: 3
        depends_on:
    #    - dolphinscheduler-postgresql
        - dolphinscheduler-zookeeper
        volumes:
        - dolphinscheduler-worker-data:/tmp/dolphinscheduler
        - dolphinscheduler-logs:/opt/dolphinscheduler/logs
        - dolphinscheduler-shared-local:/opt/soft
        - dolphinscheduler-resource-local:/dolphinscheduler
        - /tmp/srbmp/taskFile:/tmp/srbmp/taskFile
        restart: unless-stopped
        networks:
        - dolphinscheduler
    
    networks:
      dolphinscheduler:
        driver: bridge
    
    volumes:
    #  dolphinscheduler-postgresql:
      dolphinscheduler-zookeeper:
      dolphinscheduler-worker-data:
      dolphinscheduler-logs:
      dolphinscheduler-shared-local:
      dolphinscheduler-resource-local:
    
  • 修改 config.env.sh 文件中的 DATABASE 环境变量,初始化MySQL数据库,脚本地址,下载完成解压,/sql/sql/dolphinscheduler_mysql.sql

    DATABASE_TYPE=mysql
    DATABASE_DRIVER=com.mysql.jdbc.Driver
    DATABASE_HOST=localhost
    DATABASE_PORT=57409
    DATABASE_USERNAME=root
    DATABASE_PASSWORD=root
    DATABASE_DATABASE=dolphinscheduler
    DATABASE_PARAMS=useUnicode=true&characterEncoding=UTF-8