DolphinScheduler之Docker部署
⽂章⽬录
快速试⽤ Docker 部署
先决条件
1.13.1+
1.11.0+
如何使⽤ Docker 镜像
有 3 种⽅式可以快速试⽤ DolphinScheduler
⼀、以 docker-compose 的⽅式启动 DolphinScheduler (推荐)
这种⽅式需要先安装 , docker-compose 的安装⽹上已经有⾮常多的资料,请⾃⾏安装即可
对于 Windows 7-10,你可以安装 。对于 Windows 10 64-bit,你可以安装 ,并且注意
0、请配置内存不少于 4GB
对于 Mac ⽤户,点击 Docker Desktop -> Preferences -> Resources -> Memory
对于 Windows Docker Toolbox ⽤户,有两项需要配置:
内存:打开 Oracle VirtualBox Manager,如果你双击 Docker Quickstart Terminal 并成功运⾏ Docker Toolbox,你将会看到⼀个名为 default 的虚拟机. 点击 设置 -> 系统 -> 主板 -> 内存⼤⼩
端⼝转发:点击 设置 -> ⽹络 -> ⾼级 -> 端⼝转发 -> 添加. 名称,主机端⼝ 和 ⼦系统端⼝ 都填写 12345,不填 主机IP 和 ⼦系统IP
对于 Windows Docker Desktop ⽤户
Hyper-V 模式:点击 Docker Desktop -> Settings -> Resources -> Memory
WSL 2 模式:参考
1、下载源码包
请下载源码包 apache-dolphinscheduler-1.3.,下载地址:
2、拉取镜像并启动服务
对于 Mac 和 Linux ⽤户,打开 Terminal 对于 Windows Docker Toolbox ⽤户,打开 Docker Quickstart Terminal 对于Windows Docker Desktop ⽤户,打开 Windows PowerShell
$ tar -zxvf apache-dolphinscheduler-1.3.
$ cd apache-dolphinscheduler-1.3.9-src/docker/docker-swarm
$ docker pull dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler:1.3.9
$ docker tag apache/dolphinscheduler:1.3.9 apache/dolphinscheduler:latest
$ docker-compose up -d
PowerShell 应该使⽤ cd apache-dolphinscheduler-1.3.9-src\docker\docker-swarm
PostgreSQL (⽤户 root, 密码 root, 数据库 dolphinscheduler) 和 ZooKeeper 服务将会默认启动
3、登录系统
默认的⽤户是admin,默认的密码是dolphinscheduler123
请参考⽤户⼿册章节的 查看如何使⽤DolphinScheduler
⼆、通过指定已存在的 PostgreSQL 和 ZooKeeper 服务
这种⽅式需要先安装 , docker 的安装⽹上已经有⾮常多的资料,请⾃⾏安装即可
1、基础软件安装 (请⾃⾏安装)
(8.2.15+)
(3.4.6+)
(1.13.1+)
2、请登录 PostgreSQL 数据库,创建名为dolphinscheduler数据库
3、初始化数据库,导⼊sql/dolphinscheduler_postgre.sql进⾏创建表及基础数据导⼊
4、下载 DolphinScheduler 镜像
我们已将⾯向⽤户的 DolphinScheduler 镜像上传⾄ docker 仓库,⽤户⽆需在本地构建镜像,直接执⾏以下命令从 docker 仓库 pull 镜像:
docker pull dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler:1.3.9
5、运⾏⼀个 DolphinScheduler 实例
$ docker run -d --name dolphinscheduler \
-e DATABASE_HOST="" -e DATABASE_PORT="5432" -e DATABASE_DATABASE="dolphinscheduler" \
-e DATABASE_USERNAME="test" -e DATABASE_PASSWORD="test" \
-e ZOOKEEPER_QUORUM=":2181" \
-p 12345:12345 \
apache/dolphinscheduler:1.3.9 all
注:数据库⽤户 test 和密码 test 需要替换为实际的 PostgreSQL ⽤户和密码, 需要替换为 PostgreSQL 和 ZooKeeper 的主机 IP
6、登录系统
同上
三、运⾏ DolphinScheduler 中的独⽴服务
在容器启动时,会⾃动启动以下服务:
MasterServer        ----- master服务
WorkerServer        ----- worker服务
LoggerServer        ----- logger服务
ApiApplicationServer ----- api服务
AlertServer          ----- alert服务
如果你只是想运⾏ dolphinscheduler 中的部分服务
你可以够通执⾏以下命令来运⾏dolphinscheduler中的部分服务
启动⼀个 master server, 如下:
$ docker run -d --name dolphinscheduler-master \
-e DATABASE_HOST="" -e DATABASE_PORT="5432" -e DATABASE_DATABASE="dolphinscheduler" \
-e DATABASE_USERNAME="test" -e DATABASE_PASSWORD="test" \
-e ZOOKEEPER_QUORUM=":2181" \
apache/dolphinscheduler:1.3.9 master-server
启动⼀个 worker server (包括 logger server), 如下:
$ docker run -d --name dolphinscheduler-worker \
-e DATABASE_HOST="" -e DATABASE_PORT="5432" -e DATABASE_DATABASE="dolphinscheduler" \
-e DATABASE_USERNAME="test" -e DATABASE_PASSWORD="test" \
-e ZOOKEEPER_QUORUM=":2181" \
apache/dolphinscheduler:1.3.9 worker-server
启动⼀个 api server, 如下:
$ docker run -d --name dolphinscheduler-api \
-e DATABASE_HOST="" -e DATABASE_PORT="5432" -e DATABASE_DATABASE="dolphinscheduler" \
-e DATABASE_USERNAME="test" -e DATABASE_PASSWORD="test" \
-e ZOOKEEPER_QUORUM=":2181" \
-p 12345:12345 \
apache/dolphinscheduler:1.3.9 api-server
启动⼀个 alert server, 如下:
$ docker run -d --name dolphinscheduler-alert \
-
e DATABASE_HOST="" -e DATABASE_PORT="5432" -e DATABASE_DATABASE="dolphinscheduler" \
-e DATABASE_USERNAME="test" -e DATABASE_PASSWORD="test" \
apache/dolphinscheduler:1.3.9 alert-server
注意: 当你运⾏dolphinscheduler中的部分服务时,你必须指定这些环境变量 DATABASE_HOST, DATABASE_PORT, DATABASE_DATABASE, DATABASE_USERNAME, DATABASE_PASSWORD, ZOOKEEPER_QUORUM。
环境变量
Docker 容器通过环境变量进⾏配置, 列出了 DolphinScheduler 的可配置环境变量及其默认值
特别地,在 Docker Compose 和 Docker Swarm 中,可以通过环境变量配置⽂件 v.sh 进⾏配置
⽀持矩阵
Type⽀持备注
Shell是
Python2是
Python3间接⽀持详见 FAQ
Hadoop2间接⽀持详见 FAQ
Hadoop3尚未确定尚未测试
Spark-Local(client)间接⽀持详见 FAQ
Spark-YARN(cluster)间接⽀持详见 FAQ
Spark-Standalone(cluster)尚不
Spark-Kubernetes(cluster)尚不
Flink-Local(local>=1.11)尚不Generic CLI 模式尚未⽀持
Flink-YARN(yarn-cluster)间接⽀持详见 FAQ
Flink-YARN(yarn-session/yarn-per-job/yarn-application>=1.11)尚不Generic CLI 模式尚未⽀持
Type⽀持备注
Flink-Standalone(default)尚不
Flink-Standalone(remote>=1.11)尚不Generic CLI 模式尚未⽀持Flink-Kubernetes(default)尚不
Flink-Kubernetes(remote>=1.11)尚不Generic CLI 模式尚未⽀持Flink-NativeKubernetes(kubernetes-session/application>=1.11)尚不Generic CLI 模式尚未⽀持
MapReduce间接⽀持详见 FAQ
Kerberos间接⽀持详见 FAQ
HTTP是
DataX间接⽀持详见 FAQ
Sqoop间接⽀持详见 FAQ
SQL-MySQL间接⽀持详见 FAQ
SQL-PostgreSQL是
SQL-Hive间接⽀持详见 FAQ
SQL-Spark间接⽀持详见 FAQ
SQL-ClickHouse间接⽀持详见 FAQ
SQL-Oracle间接⽀持详见 FAQ
SQL-SQLServer间接⽀持详见 FAQ
SQL-DB2间接⽀持详见 FAQ FAQ
如何通过 docker-compose 管理 DolphinScheduler?
启动、重启、停⽌或列出所有容器:
docker-compose start
docker-compose restart
docker-compose stop
docker-compose ps
停⽌所有容器并移除所有容器、⽹络:
docker-compose down
停⽌所有容器并移除所有容器、⽹络和存储卷:
docker-compose down -v
如何查看⼀个容器的⽇志?
列出所有运⾏的容器:
docker ps
docker ps --format "{{.Names}}" # 只打印名字
查看名为 docker-swarm_dolphinscheduler-api_1 的容器的⽇志:
docker logs docker-swarm_dolphinscheduler-api_1
docker logs -f docker-swarm_dolphinscheduler-api_1 # 跟随⽇志输出
docker logs --tail 10 docker-swarm_dolphinscheduler-api_1 # 显⽰倒数10⾏⽇志
如何通过 docker-compose 扩缩容 master 和 worker?
扩缩容 master ⾄ 2 个实例:
docker-compose up -d --scale dolphinscheduler-master=2 dolphinscheduler-master
扩缩容 worker ⾄ 3 个实例:
docker-compose up -d --scale dolphinscheduler-worker=3 dolphinscheduler-worker
下载apache如何在 Docker Swarm 上部署 DolphinScheduler?
假设 Docker Swarm 集已经部署(如果还没有创建 Docker Swarm 集,请参考 )
启动名为 dolphinscheduler 的 stack:
docker stack deploy -l dolphinscheduler
列出名为 dolphinscheduler 的 stack 的所有服务:
docker stack services dolphinscheduler
停⽌并移除名为 dolphinscheduler 的 stack:
docker stack rm dolphinscheduler
移除名为 dolphinscheduler 的 stack 的所有存储卷:
docker volume rm -f $(docker volume ls --format "{{.Name}}" | grep -e "^dolphinscheduler")
如何在 Docker Swarm 上扩缩容 master 和 worker?
扩缩容名为 dolphinscheduler 的 stack 的 master ⾄ 2 个实例:
docker service scale dolphinscheduler_dolphinscheduler-master=2
扩缩容名为 dolphinscheduler 的 stack 的 worker ⾄ 3 个实例:
docker service scale dolphinscheduler_dolphinscheduler-worker=3
如何构建⼀个 Docker 镜像?
从源码构建 (需要 Maven 3.3+ & JDK 1.8+)
类 Unix 系统,在 Terminal 中执⾏:
$ bash ./docker/build/hooks/build
Windows 系统,在 cmd 或 PowerShell 中执⾏:
C:\dolphinscheduler-src>.\docker\build\hooks\build.bat
如果你不理解 ./docker/build/hooks/build./docker/build/hooks/build.bat 这些脚本,请阅读⾥⾯的内容
从⼆进制包构建 (不需要 Maven 3.3+ & JDK 1.8+)
请下载⼆进制包 apache-dolphinscheduler-1.3.,下载地址: . 然后将 apache-dolphinscheduler-1.3. 放到apache-dolphinscheduler-1.3.9-src/docker/build ⽬录⾥,在 Terminal 或 PowerShell 中执⾏:
$ cd apache-dolphinscheduler-1.3.9-src/docker/build
$ docker build --build-arg VERSION=1.3.9 -t apache/dolphinscheduler:1.3.9 .

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。