栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

DolphinScheduler 之Docker 部署

DolphinScheduler 之Docker 部署

文章目录

快速试用 Docker 部署

先决条件如何使用 Docker 镜像

一、以 docker-compose 的方式启动 DolphinScheduler (推荐)

0、请配置内存不少于 4GB1、下载源码包2、拉取镜像并启动服务3、登录系统 二、通过指定已存在的 PostgreSQL 和 ZooKeeper 服务

1、基础软件安装 (请自行安装)2、请登录 PostgreSQL 数据库,创建名为 `dolphinscheduler` 数据库3、初始化数据库,导入 `sql/dolphinscheduler_postgre.sql` 进行创建表及基础数据导入4、下载 DolphinScheduler 镜像5、运行一个 DolphinScheduler 实例6、登录系统 三、运行 DolphinScheduler 中的独立服务 环境变量支持矩阵FAQ

如何通过 docker-compose 管理 DolphinScheduler?如何查看一个容器的日志?如何通过 docker-compose 扩缩容 master 和 worker?如何在 Docker Swarm 上部署 DolphinScheduler?如何在 Docker Swarm 上扩缩容 master 和 worker?如何构建一个 Docker 镜像?

从源码构建 (需要 Maven 3.3+ & JDK 1.8+)从二进制包构建 (不需要 Maven 3.3+ & JDK 1.8+)构建多平台架构镜像 如何为 Docker 添加一个环境变量?如何用 MySQL 替代 PostgreSQL 作为 DolphinScheduler 的数据库?如何在数据源中心支持 MySQL 数据源?如何在数据源中心支持 Oracle 数据源?如何支持 Python 2 pip 以及自定义 requirements.txt?如何支持 Python 3?如何支持 Hadoop, Spark, Flink, Hive 或 DataX?如何支持 Spark 3?如何在 Master、Worker 和 Api 服务之间支持共享存储?如何支持本地文件存储而非 HDFS 和 S3?如何支持 S3 资源存储,例如 MinIO?如何配置 SkyWalking? 附录-环境变量

数据库ZooKeeper通用Master ServerWorker Serveralert ServerApi ServerLogger Server

快速试用 Docker 部署 先决条件

Docker 1.13.1+Docker Compose 1.11.0+ 如何使用 Docker 镜像

有 3 种方式可以快速试用 DolphinScheduler

一、以 docker-compose 的方式启动 DolphinScheduler (推荐)

这种方式需要先安装 docker-compose, docker-compose 的安装网上已经有非常多的资料,请自行安装即可

对于 Windows 7-10,你可以安装 Docker Toolbox。对于 Windows 10 64-bit,你可以安装 Docker Desktop,并且注意系统要求

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 -> MemoryWSL 2 模式:参考 WSL 2 utility VM 1、下载源码包

请下载源码包 apache-dolphinscheduler-1.3.9-src.tar.gz,下载地址: 下载

2、拉取镜像并启动服务

对于 Mac 和 Linux 用户,打开 Terminal 对于 Windows Docker Toolbox 用户,打开 Docker Quickstart Terminal 对于 Windows Docker Desktop 用户,打开 Windows PowerShell

$ tar -zxvf apache-dolphinscheduler-1.3.9-src.tar.gz
$ 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-srcdockerdocker-swarm

PostgreSQL (用户 root, 密码 root, 数据库 dolphinscheduler) 和 ZooKeeper 服务将会默认启动

3、登录系统

访问前端页面:http://localhost:12345/dolphinscheduler,如果有需要请修改成对应的 IP 地址

默认的用户是admin,默认的密码是dolphinscheduler123

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kTqmLfVE-1646312172369)(https://dolphinscheduler.apache.org/img/login.png)]

请参考用户手册章节的快速上手 查看如何使用DolphinScheduler

二、通过指定已存在的 PostgreSQL 和 ZooKeeper 服务

这种方式需要先安装 docker, docker 的安装网上已经有非常多的资料,请自行安装即可

1、基础软件安装 (请自行安装)

PostgreSQL (8.2.15+)ZooKeeper (3.4.6+)Docker (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="192.168.x.x" -e DATAbase_PORT="5432" -e DATAbase_DATAbase="dolphinscheduler" 
-e DATAbase_USERNAME="test" -e DATAbase_PASSWORD="test" 
-e ZOOKEEPER_QUORUM="192.168.x.x:2181" 
-p 12345:12345 
apache/dolphinscheduler:1.3.9 all

注:数据库用户 test 和密码 test 需要替换为实际的 PostgreSQL 用户和密码,192.168.x.x 需要替换为 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="192.168.x.x" -e DATAbase_PORT="5432" -e DATAbase_DATAbase="dolphinscheduler" 
-e DATAbase_USERNAME="test" -e DATAbase_PASSWORD="test" 
-e ZOOKEEPER_QUORUM="192.168.x.x:2181" 
apache/dolphinscheduler:1.3.9 master-server

启动一个 worker server (包括 logger server), 如下:

$ docker run -d --name dolphinscheduler-worker 
-e DATAbase_HOST="192.168.x.x" -e DATAbase_PORT="5432" -e DATAbase_DATAbase="dolphinscheduler" 
-e DATAbase_USERNAME="test" -e DATAbase_PASSWORD="test" 
-e ZOOKEEPER_QUORUM="192.168.x.x:2181" 
apache/dolphinscheduler:1.3.9 worker-server

启动一个 api server, 如下:

$ docker run -d --name dolphinscheduler-api 
-e DATAbase_HOST="192.168.x.x" -e DATAbase_PORT="5432" -e DATAbase_DATAbase="dolphinscheduler" 
-e DATAbase_USERNAME="test" -e DATAbase_PASSWORD="test" 
-e ZOOKEEPER_QUORUM="192.168.x.x:2181" 
-p 12345:12345 
apache/dolphinscheduler:1.3.9 api-server

启动一个 alert server, 如下:

$ docker run -d --name dolphinscheduler-alert 
-e DATAbase_HOST="192.168.x.x" -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 中,可以通过环境变量配置文件 config.env.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 模式尚未支持
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
如何在 Docker Swarm 上部署 DolphinScheduler?

假设 Docker Swarm 集群已经部署(如果还没有创建 Docker Swarm 集群,请参考 create-swarm)

启动名为 dolphinscheduler 的 stack:

docker stack deploy -c docker-stack.yml 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>.dockerbuildhooksbuild.bat

如果你不理解 ./docker/build/hooks/build ./docker/build/hooks/build.bat 这些脚本,请阅读里面的内容

从二进制包构建 (不需要 Maven 3.3+ & JDK 1.8+)

请下载二进制包 apache-dolphinscheduler-1.3.9-bin.tar.gz,下载地址: 下载. 然后将 apache-dolphinscheduler-1.3.9-bin.tar.gz 放到 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 .

PowerShell 应该使用 cd apache-dolphinscheduler-1.3.9-src/docker/build

构建多平台架构镜像

目前支持构建 linux/amd64 和 linux/arm64 平台架构的镜像,要求:

    支持 docker buildx具有 https://hub.docker.com/r/apache/dolphinscheduler 的 push 权限(务必谨慎: 构建命令默认会自动将多平台架构镜像推送到 apache/dolphinscheduler 的 docker hub)

执行:

$ docker login # 登录, 用于推送 apache/dolphinscheduler
$ bash ./docker/build/hooks/build x
如何为 Docker 添加一个环境变量?

如果你想在编译的时候或者运行的时候附加一些其它的操作及新增一些环境变量,你可以在/root/start-init-conf.sh文件中进行修改,同时如果涉及到配置文件的修改,请在/opt/dolphinscheduler/conf/*.tpl中修改相应的配置文件

例如,在/root/start-init-conf.sh添加一个环境变量SECURITY_AUTHENTICATION_TYPE:

export SECURITY_AUTHENTICATION_TYPE=PASSWORD

当添加以上环境变量后,你应该在相应的模板文件application-api.properties.tpl中添加这个环境变量配置:

security.authentication.type=${SECURITY_AUTHENTICATION_TYPE}

/root/start-init-conf.sh将根据模板文件动态的生成配置文件:

echo "generate dolphinscheduler config"
ls ${DOLPHINSCHEDULER_HOME}/conf/ | grep ".tpl" | while read line; do
eval "cat << EOF
$(cat ${DOLPHINSCHEDULER_HOME}/conf/${line})
EOF
" > ${DOLPHINSCHEDULER_HOME}/conf/${line%.*}
done
如何用 MySQL 替代 PostgreSQL 作为 DolphinScheduler 的数据库?

由于商业许可证的原因,我们不能直接使用 MySQL 的驱动包.

如果你要使用 MySQL, 你可以基于官方镜像 apache/dolphinscheduler 进行构建.

    下载 MySQL 驱动包 mysql-connector-java-5.1.49.jar (要求 >=5.1.47)创建一个新的 Dockerfile,用于添加 MySQL 的驱动包:
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler:1.3.9
COPY mysql-connector-java-5.1.49.jar /opt/dolphinscheduler/lib
    构建一个包含 MySQL 驱动包的新镜像:
docker build -t apache/dolphinscheduler:mysql-driver .
    修改 docker-compose.yml 文件中的所有 image 字段为 apache/dolphinscheduler:mysql-driver

如果你想在 Docker Swarm 上部署 dolphinscheduler,你需要修改 docker-stack.yml

    注释 docker-compose.yml 文件中的 dolphinscheduler-postgresql 块在 docker-compose.yml 文件中添加 dolphinscheduler-mysql 服务(可选,你可以直接使用一个外部的 MySQL 数据库)修改 config.env.sh 文件中的 DATAbase 环境变量
DATAbase_TYPE=mysql
DATAbase_DRIVER=com.mysql.jdbc.Driver
DATAbase_HOST=dolphinscheduler-mysql
DATAbase_PORT=3306
DATAbase_USERNAME=root
DATAbase_PASSWORD=root
DATAbase_DATAbase=dolphinscheduler
DATAbase_PARAMS=useUnicode=true&characterEncoding=UTF-8

如果你已经添加了 dolphinscheduler-mysql 服务,设置 DATAbase_HOST 为 dolphinscheduler-mysql 即可

    运行 dolphinscheduler (详见如何使用docker镜像)
如何在数据源中心支持 MySQL 数据源?

由于商业许可证的原因,我们不能直接使用 MySQL 的驱动包.

如果你要添加 MySQL 数据源, 你可以基于官方镜像 apache/dolphinscheduler 进行构建.

    下载 MySQL 驱动包 mysql-connector-java-5.1.49.jar (要求 >=5.1.47)创建一个新的 Dockerfile,用于添加 MySQL 驱动包:
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler:1.3.9
COPY mysql-connector-java-5.1.49.jar /opt/dolphinscheduler/lib
    构建一个包含 MySQL 驱动包的新镜像:
docker build -t apache/dolphinscheduler:mysql-driver .
    将 docker-compose.yml 文件中的所有 image 字段修改为 apache/dolphinscheduler:mysql-driver

如果你想在 Docker Swarm 上部署 dolphinscheduler,你需要修改 docker-stack.yml

    运行 dolphinscheduler (详见如何使用docker镜像)在数据源中心添加一个 MySQL 数据源
如何在数据源中心支持 Oracle 数据源?

由于商业许可证的原因,我们不能直接使用 Oracle 的驱动包.

如果你要添加 Oracle 数据源, 你可以基于官方镜像 apache/dolphinscheduler 进行构建.

    下载 Oracle 驱动包 ojdbc8.jar (such as ojdbc8-19.9.0.0.jar)创建一个新的 Dockerfile,用于添加 Oracle 驱动包:
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler:1.3.9
COPY ojdbc8-19.9.0.0.jar /opt/dolphinscheduler/lib
    构建一个包含 Oracle 驱动包的新镜像:
docker build -t apache/dolphinscheduler:oracle-driver .
    将 docker-compose.yml 文件中的所有 image 字段修改为 apache/dolphinscheduler:oracle-driver

如果你想在 Docker Swarm 上部署 dolphinscheduler,你需要修改 docker-stack.yml

    运行 dolphinscheduler (详见如何使用docker镜像)在数据源中心添加一个 Oracle 数据源
如何支持 Python 2 pip 以及自定义 requirements.txt?
    创建一个新的 Dockerfile,用于安装 pip:
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler:1.3.9
COPY requirements.txt /tmp
RUN apt-get update && 
    apt-get install -y --no-install-recommends python-pip && 
    pip install --no-cache-dir -r /tmp/requirements.txt && 
    rm -rf /var/lib/apt/lists/*

这个命令会安装默认的 pip 18.1. 如果你想升级 pip, 只需添加一行

    pip install --no-cache-dir -U pip && 
    构建一个包含 pip 的新镜像:
docker build -t apache/dolphinscheduler:pip .
    将 docker-compose.yml 文件中的所有 image 字段修改为 apache/dolphinscheduler:pip

如果你想在 Docker Swarm 上部署 dolphinscheduler,你需要修改 docker-stack.yml

    运行 dolphinscheduler (详见如何使用docker镜像)在一个新 Python 任务下验证 pip
如何支持 Python 3?
    创建一个新的 Dockerfile,用于安装 Python 3:
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler:1.3.9
RUN apt-get update && 
    apt-get install -y --no-install-recommends python3 && 
    rm -rf /var/lib/apt/lists/*

这个命令会安装默认的 Python 3.7.3. 如果你也想安装 pip3, 将 python3 替换为 python3-pip 即可

    apt-get install -y --no-install-recommends python3-pip && 
    构建一个包含 Python 3 的新镜像:
docker build -t apache/dolphinscheduler:python3 .
    将 docker-compose.yml 文件中的所有 image 字段修改为 apache/dolphinscheduler:python3

如果你想在 Docker Swarm 上部署 dolphinscheduler,你需要修改 docker-stack.yml

    修改 config.env.sh 文件中的 PYTHON_HOME 为 /usr/bin/python3运行 dolphinscheduler (详见如何使用docker镜像)在一个新 Python 任务下验证 Python 3
如何支持 Hadoop, Spark, Flink, Hive 或 DataX?

以 Spark 2.4.7 为例:

    下载 Spark 2.4.7 发布的二进制包 spark-2.4.7-bin-hadoop2.7.tgz运行 dolphinscheduler (详见如何使用docker镜像)复制 Spark 2.4.7 二进制包到 Docker 容器中
docker cp spark-2.4.7-bin-hadoop2.7.tgz docker-swarm_dolphinscheduler-worker_1:/opt/soft

因为存储卷 dolphinscheduler-shared-local 被挂载到 /opt/soft, 因此 /opt/soft 中的所有文件都不会丢失

    登录到容器并确保 SPARK_HOME2 存在
docker exec -it docker-swarm_dolphinscheduler-worker_1 bash
cd /opt/soft
tar zxf spark-2.4.7-bin-hadoop2.7.tgz
rm -f spark-2.4.7-bin-hadoop2.7.tgz
ln -s spark-2.4.7-bin-hadoop2.7 spark2 # 或者 mv
$SPARK_HOME2/bin/spark-submit --version

如果一切执行正常,最后一条命令将会打印 Spark 版本信息

    在一个 Shell 任务下验证 Spark
$SPARK_HOME2/bin/spark-submit --class org.apache.spark.examples.SparkPi $SPARK_HOME2/examples/jars/spark-examples_2.11-2.4.7.jar

检查任务日志是否包含输出 Pi is roughly 3.146015

    在一个 Spark 任务下验证 Spark

文件 spark-examples_2.11-2.4.7.jar 需要先被上传到资源中心,然后创建一个 Spark 任务并设置:

Spark版本: SPARK2主函数的Class: org.apache.spark.examples.SparkPi主程序包: spark-examples_2.11-2.4.7.jar部署方式: local

同样地, 检查任务日志是否包含输出 Pi is roughly 3.146015

    验证 Spark on YARN

Spark on YARN (部署方式为 cluster 或 client) 需要 Hadoop 支持. 类似于 Spark 支持, 支持 Hadoop 的操作几乎和前面的步骤相同

确保 $HADOOP_HOME 和 $HADOOP_CONF_DIR 存在

如何支持 Spark 3?

事实上,使用 spark-submit 提交应用的方式是相同的, 无论是 Spark 1, 2 或 3. 换句话说,SPARK_HOME2 的语义是第二个 SPARK_HOME, 而非 SPARK2 的 HOME, 因此只需设置 SPARK_HOME2=/path/to/spark3 即可

以 Spark 3.1.1 为例:

    下载 Spark 3.1.1 发布的二进制包 spark-3.1.1-bin-hadoop2.7.tgz运行 dolphinscheduler (详见如何使用docker镜像)复制 Spark 3.1.1 二进制包到 Docker 容器中
docker cp spark-3.1.1-bin-hadoop2.7.tgz docker-swarm_dolphinscheduler-worker_1:/opt/soft
    登录到容器并确保 SPARK_HOME2 存在
docker exec -it docker-swarm_dolphinscheduler-worker_1 bash
cd /opt/soft
tar zxf spark-3.1.1-bin-hadoop2.7.tgz
rm -f spark-3.1.1-bin-hadoop2.7.tgz
ln -s spark-3.1.1-bin-hadoop2.7 spark2 # 或者 mv
$SPARK_HOME2/bin/spark-submit --version

如果一切执行正常,最后一条命令将会打印 Spark 版本信息

    在一个 Shell 任务下验证 Spark
$SPARK_HOME2/bin/spark-submit --class org.apache.spark.examples.SparkPi $SPARK_HOME2/examples/jars/spark-examples_2.12-3.1.1.jar

检查任务日志是否包含输出 Pi is roughly 3.146015

如何在 Master、Worker 和 Api 服务之间支持共享存储?

注意: 如果是在单机上通过 docker-compose 部署,则步骤 1 和 2 可以直接跳过,并且执行命令如 docker cp hadoop-3.2.2.tar.gz docker-swarm_dolphinscheduler-worker_1:/opt/soft 将 Hadoop 放到容器中的共享目录 /opt/soft 下

例如, Master、Worker 和 Api 服务可能同时使用 Hadoop

    修改 docker-compose.yml 文件中的 dolphinscheduler-shared-local 存储卷,以支持 nfs

如果你想在 Docker Swarm 上部署 dolphinscheduler,你需要修改 docker-stack.yml

volumes:
  dolphinscheduler-shared-local:
    driver_opts:
      type: "nfs"
      o: "addr=10.40.0.199,nolock,soft,rw"
      device: ":/path/to/shared/dir"
    将 Hadoop 放到 nfs确保 $HADOOP_HOME 和 $HADOOP_CONF_DIR 正确
如何支持本地文件存储而非 HDFS 和 S3?

注意: 如果是在单机上通过 docker-compose 部署,则步骤 2 可以直接跳过

    修改 config.env.sh 文件中下面的环境变量:
RESOURCE_STORAGE_TYPE=HDFS
FS_DEFAULT_FS=file:///
    修改 docker-compose.yml 文件中的 dolphinscheduler-resource-local 存储卷,以支持 nfs

如果你想在 Docker Swarm 上部署 dolphinscheduler,你需要修改 docker-stack.yml

volumes:
  dolphinscheduler-resource-local:
    driver_opts:
      type: "nfs"
      o: "addr=10.40.0.199,nolock,soft,rw"
      device: ":/path/to/resource/dir"
如何支持 S3 资源存储,例如 MinIO?

以 MinIO 为例: 修改 config.env.sh 文件中下面的环境变量

RESOURCE_STORAGE_TYPE=S3
RESOURCE_UPLOAD_PATH=/dolphinscheduler
FS_DEFAULT_FS=s3a://BUCKET_NAME
FS_S3A_ENDPOINT=http://MINIO_IP:9000
FS_S3A_ACCESS_KEY=MINIO_ACCESS_KEY
FS_S3A_SECRET_KEY=MINIO_SECRET_KEY

BUCKET_NAME, MINIO_IP, MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY 需要被修改为实际值

注意: MINIO_IP 只能使用 IP 而非域名, 因为 DolphinScheduler 尚不支持 S3 路径风格访问 (S3 path style access)

如何配置 SkyWalking?

修改 config.env.sh 文件中的 SKYWALKING 环境变量

SKYWALKING_ENABLE=true
SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
SW_GRPC_LOG_SERVER_HOST=127.0.0.1
SW_GRPC_LOG_SERVER_PORT=11800
附录-环境变量 数据库

DATAbase_TYPE

配置database的TYPE, 默认值 postgresql。

注意: 当运行dolphinscheduler中master-server、worker-server、api-server、alert-server这些服务时,必须指定这个环境变量,以便于你更好的搭建分布式服务。

DATAbase_DRIVER

配置database的DRIVER, 默认值 org.postgresql.Driver。

注意: 当运行dolphinscheduler中master-server、worker-server、api-server、alert-server这些服务时,必须指定这个环境变量,以便于你更好的搭建分布式服务。

DATAbase_HOST

配置database的HOST, 默认值 127.0.0.1。

注意: 当运行dolphinscheduler中master-server、worker-server、api-server、alert-server这些服务时,必须指定这个环境变量,以便于你更好的搭建分布式服务。

DATAbase_PORT

配置database的PORT, 默认值 5432。

注意: 当运行dolphinscheduler中master-server、worker-server、api-server、alert-server这些服务时,必须指定这个环境变量,以便于你更好的搭建分布式服务。

DATAbase_USERNAME

配置database的USERNAME, 默认值 root。

注意: 当运行dolphinscheduler中master-server、worker-server、api-server、alert-server这些服务时,必须指定这个环境变量,以便于你更好的搭建分布式服务。

DATAbase_PASSWORD

配置database的PASSWORD, 默认值 root。

注意: 当运行dolphinscheduler中master-server、worker-server、api-server、alert-server这些服务时,必须指定这个环境变量,以便于你更好的搭建分布式服务。

DATAbase_DATAbase

配置database的DATAbase, 默认值 dolphinscheduler。

注意: 当运行dolphinscheduler中master-server、worker-server、api-server、alert-server这些服务时,必须指定这个环境变量,以便于你更好的搭建分布式服务。

DATAbase_PARAMS

配置database的PARAMS, 默认值 characterEncoding=utf8。

注意: 当运行dolphinscheduler中master-server、worker-server、api-server、alert-server这些服务时,必须指定这个环境变量,以便于你更好的搭建分布式服务。

ZooKeeper

ZOOKEEPER_QUORUM

配置dolphinscheduler的Zookeeper地址, 默认值 127.0.0.1:2181。

注意: 当运行dolphinscheduler中master-server、worker-server、api-server这些服务时,必须指定这个环境变量,以便于你更好的搭建分布式服务。

ZOOKEEPER_ROOT

配置dolphinscheduler在zookeeper中数据存储的根目录,默认值 /dolphinscheduler。

通用

DOLPHINSCHEDULER_OPTS

配置dolphinscheduler的jvm options,适用于master-server、worker-server、api-server、alert-server、logger-server,默认值 ""、

DATA_baseDIR_PATH

用户数据目录, 用户自己配置, 请确保这个目录存在并且用户读写权限, 默认值 /tmp/dolphinscheduler。

RESOURCE_STORAGE_TYPE

配置dolphinscheduler的资源存储类型,可选项为 HDFS、S3、NONE,默认值 HDFS。

RESOURCE_UPLOAD_PATH

配置HDFS/S3上的资源存储路径,默认值 /dolphinscheduler。

FS_DEFAULT_FS

配置资源存储的文件系统协议,如 file:///, hdfs://mycluster:8020 or s3a://dolphinscheduler,默认值 file:///。

FS_S3A_ENDPOINT

当RESOURCE_STORAGE_TYPE=S3时,需要配置S3的访问路径,默认值 s3.xxx.amazonaws.com。

FS_S3A_ACCESS_KEY

当RESOURCE_STORAGE_TYPE=S3时,需要配置S3的s3 access key,默认值 xxxxxxx。

FS_S3A_SECRET_KEY

当RESOURCE_STORAGE_TYPE=S3时,需要配置S3的s3 secret key,默认值 xxxxxxx。

HADOOP_SECURITY_AUTHENTICATION_STARTUP_STATE

配置dolphinscheduler是否启用kerberos,默认值 false。

JAVA_SECURITY_KRB5_CONF_PATH

配置dolphinscheduler的java.security.krb5.conf路径,默认值 /opt/krb5.conf。

LOGIN_USER_KEYTAB_USERNAME

配置dolphinscheduler登录用户的keytab用户名,默认值 hdfs@HADOOP.COM。

LOGIN_USER_KEYTAB_PATH

配置dolphinscheduler登录用户的keytab路径,默认值 /opt/hdfs.keytab。

KERBEROS_EXPIRE_TIME

配置dolphinscheduler的kerberos过期时间,单位为小时,默认值 2。

HDFS_ROOT_USER

当RESOURCE_STORAGE_TYPE=HDFS时,配置dolphinscheduler的hdfs的root用户名,默认值 hdfs。

RESOURCE_MANAGER_HTTPADDRESS_PORT

配置dolphinscheduler的resource manager httpaddress 端口,默认值 8088。

YARN_RESOURCEMANAGER_HA_RM_IDS

配置dolphinscheduler的yarn resourcemanager ha rm ids,默认值 空。

YARN_APPLICATION_STATUS_ADDRESS

配置dolphinscheduler的yarn application status地址,默认值 http://ds1:%s/ws/v1/cluster/apps/%s。

SKYWALKING_ENABLE

配置skywalking是否启用. 默认值 false。

SW_AGENT_COLLECTOR_BACKEND_SERVICES

配置skywalking的collector后端地址. 默认值 127.0.0.1:11800。

SW_GRPC_LOG_SERVER_HOST

配置skywalking的grpc服务主机或IP. 默认值 127.0.0.1。

SW_GRPC_LOG_SERVER_PORT

配置skywalking的grpc服务端口. 默认值 11800。

HADOOP_HOME

配置dolphinscheduler的HADOOP_HOME,默认值 /opt/soft/hadoop。

HADOOP_CONF_DIR

配置dolphinscheduler的HADOOP_CONF_DIR,默认值 /opt/soft/hadoop/etc/hadoop。

SPARK_HOME1

配置dolphinscheduler的SPARK_HOME1,默认值 /opt/soft/spark1。

SPARK_HOME2

配置dolphinscheduler的SPARK_HOME2,默认值 /opt/soft/spark2。

PYTHON_HOME

配置dolphinscheduler的PYTHON_HOME,默认值 /usr/bin/python。

JAVA_HOME

配置dolphinscheduler的JAVA_HOME,默认值 /usr/local/openjdk-8。

HIVE_HOME

配置dolphinscheduler的HIVE_HOME,默认值 /opt/soft/hive。

Flink_HOME

配置dolphinscheduler的Flink_HOME,默认值 /opt/soft/flink。

DATAX_HOME

配置dolphinscheduler的DATAX_HOME,默认值 /opt/soft/datax。

Master Server

MASTER_SERVER_OPTS

配置master-server的jvm options,默认值 -Xms1g -Xmx1g -Xmn512m。

MASTER_EXEC_THREADS

配置master-server中的执行线程数量,默认值 100。

MASTER_EXEC_TASK_NUM

配置master-server中的执行任务数量,默认值 20。

MASTER_DISPATCH_TASK_NUM

配置master-server中的派发任务数量,默认值 3。

MASTER_HOST_SELECTOR

配置master-server中派发任务时worker host的选择器,可选值为Random, RoundRobin和LowerWeight,默认值 LowerWeight。

MASTER_HEARTBEAT_INTERVAL

配置master-server中的心跳交互时间,默认值 10。

MASTER_TASK_COMMIT_RETRYTIMES

配置master-server中的任务提交重试次数,默认值 5。

MASTER_TASK_COMMIT_INTERVAL

配置master-server中的任务提交交互时间,默认值 1。

MASTER_MAX_CPULOAD_AVG

配置master-server中的CPU中的load average值,默认值 -1。

MASTER_RESERVED_MEMORY

配置master-server的保留内存,单位为G,默认值 0.3。

Worker Server

WORKER_SERVER_OPTS

配置worker-server的jvm options,默认值 -Xms1g -Xmx1g -Xmn512m。

WORKER_EXEC_THREADS

配置worker-server中的执行线程数量,默认值 100。

WORKER_HEARTBEAT_INTERVAL

配置worker-server中的心跳交互时间,默认值 10。

WORKER_MAX_CPULOAD_AVG

配置worker-server中的CPU中的最大load average值,默认值 -1。

WORKER_RESERVED_MEMORY

配置worker-server的保留内存,单位为G,默认值 0.3。

WORKER_GROUPS

配置worker-server的分组,默认值 default。

alert Server

alert_SERVER_OPTS

配置alert-server的jvm options,默认值 -Xms512m -Xmx512m -Xmn256m。

XLS_FILE_PATH

配置alert-server的XLS文件的存储路径,默认值 /tmp/xls。

MAIL_SERVER_HOST

配置alert-server的邮件服务地址,默认值 空。

MAIL_SERVER_PORT

配置alert-server的邮件服务端口,默认值 空。

MAIL_SENDER

配置alert-server的邮件发送人,默认值 空。

MAIL_USER=

配置alert-server的邮件服务用户名,默认值 空。

MAIL_PASSWD

配置alert-server的邮件服务用户密码,默认值 空。

MAIL_SMTP_STARTTLS_ENABLE

配置alert-server的邮件服务是否启用TLS,默认值 true。

MAIL_SMTP_SSL_ENABLE

配置alert-server的邮件服务是否启用SSL,默认值 false。

MAIL_SMTP_SSL_TRUST

配置alert-server的邮件服务SSL的信任地址,默认值 空。

ENTERPRISE_WECHAT_ENABLE

配置alert-server的邮件服务是否启用企业微信,默认值 false。

ENTERPRISE_WECHAT_CORP_ID

配置alert-server的邮件服务企业微信ID,默认值 空。

ENTERPRISE_WECHAT_SECRET

配置alert-server的邮件服务企业微信SECRET,默认值 空。

ENTERPRISE_WECHAT_AGENT_ID

配置alert-server的邮件服务企业微信AGENT_ID,默认值 空。

ENTERPRISE_WECHAT_USERS

配置alert-server的邮件服务企业微信USERS,默认值 空。

Api Server

API_SERVER_OPTS

配置api-server的jvm options,默认值 -Xms512m -Xmx512m -Xmn256m。

Logger Server

LOGGER_SERVER_OPTS

配置logger-server的jvm options,默认值 -Xms512m -Xmx512m -Xmn256m。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/751829.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号