简介
特性
简单易用
丰富的使用场景
High Reliability
High Scalability
软硬件环境建议配置
1. Linux 操作系统版本要求
2. 服务器建议配置
3. 网络要求
4. 客户端 Web 浏览器要求
官网地址
前置准备工作
启动 DolphinScheduler Standalone Server
解压并启动 DolphinScheduler
登录 DolphinScheduler
启停服务
配置数据库
前置准备工作
准备 DolphinScheduler 启动环境
下载安装包
配置用户免密及权限
配置机器SSH免密登陆
启动zookeeper
修改相关配置
修改 `install_env.sh` 文件
修改 `dolphinscheduler_env.sh` 文件
初始化数据库
伪分布式/分布式安装初始化数据库
启动 DolphinScheduler
登录 DolphinScheduler
启停服务
搭建集群遇到的问题
1.Unimplemented for dolphinscheduler/nodes/master
修改UI页面端口
配置资源中心
配置HDFS存储文件
关于Apache DolphinScheduler
简介
Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。
Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。
特性
简单易用
可视化 DAG: 用户友好的,通过拖拽定义工作流的,运行时控制工具 模块化操作: 模块化有助于轻松定制和维护。
丰富的使用场景
支持多种任务类型: 支持Shell、MR、Spark、SQL等10余种任务类型,支持跨语言,易于扩展 丰富的工作流操作: 工作流程可以定时、暂停、恢复和停止,便于维护和控制全局和本地参数。
High Reliability
高可靠性: 去中心化设计,确保稳定性。原生 HA 任务队列支持,提供过载容错能力。DolphinScheduler 能提供高度稳健的环境。
High Scalability
高扩展性: 支持多租户和在线资源管理。支持每天10万个数据任务的稳定运行。
软硬件环境建议配置
DolphinScheduler 作为一款开源分布式工作流任务调度系统,可以很好地部署和运行在 Intel 架构服务器及主流虚拟化环境下,并支持主流的Linux操作系统环境
1. Linux 操作系统版本要求
| 操作系统 | 版本 |
|---|---|
| Red Hat Enterprise Linux | 7.0 及以上 |
| CentOS | 7.0 及以上 |
| Oracle Enterprise Linux | 7.0 及以上 |
| Ubuntu LTS | 16.04 及以上 |
注意: 以上 Linux 操作系统可运行在物理服务器以及 VMware、KVM、XEN 主流虚拟化环境上
2. 服务器建议配置
DolphinScheduler 支持运行在 Intel x86-64 架构的 64 位通用硬件服务器平台。对生产环境的服务器硬件配置有以下建议:
生产环境
| CPU | 内存 | 硬盘类型 | 网络 | 实例数量 |
|---|---|---|---|---|
| 4核+ | 8 GB+ | SAS | 千兆网卡 | 1+ |
注意:
以上建议配置为部署 DolphinScheduler 的最低配置,生产环境强烈推荐使用更高的配置 硬盘大小配置建议 50GB+ ,系统盘和数据盘分开
3. 网络要求
DolphinScheduler正常运行提供如下的网络端口配置:
| 组件 | 默认端口 | 说明 |
|---|---|---|
| MasterServer | 5678 | 非通信端口,只需本机端口不冲突即可 |
| WorkerServer | 1234 | 非通信端口,只需本机端口不冲突即可 |
| ApiApplicationServer | 12345 | 提供后端通信端口 |
注意:
MasterServer 和 WorkerServer 不需要开启网络间通信,只需本机端口不冲突即可 管理员可根据实际环境中 DolphinScheduler 组件部署方案,在网络侧和主机侧开放相关端口
4. 客户端 Web 浏览器要求
DolphinScheduler 推荐 Chrome 以及使用 Chromium 内核的较新版本浏览器访问前端可视化操作界面
官网地址
https://dolphinscheduler.apache.org/zh-cn/
单机部署(没啥用)
Standalone 仅适用于 DolphinScheduler 的快速体验.
如果你是新手,想要体验 DolphinScheduler 的功能,推荐使用Standalone方式体检。如果你想体验更完整的功能,或者更大的任务量,推荐使用伪集群部署。如果你是在生产中使用,推荐使用集群部署或者kubernetes
*注意:* Standalone仅建议20个以下工作流使用,因为其采用内存式的H2 Database, Zookeeper Testing Server,任务过多可能导致不稳定,并且如果重启或者停止standalone-server会导致内存中数据库里的数据清空。如果您要连接外部数据库,比如mysql或者postgresql,请看配置数据库
前置准备工作
JDK:下载JDK (1.8+),安装并配置 JAVA_HOME
环境变量,并将其下的bin
目录追加到PATH
环境变量中。如果你的环境中已存在,可以跳过这步。二进制包:在下载页面下载 DolphinScheduler 二进制包
目前最新版本3.1.4,下载方法
wget https://dlcdn.apache.org/dolphinscheduler/3.1.4/apache-dolphinscheduler-3.1.4-bin.tar.gz
启动 DolphinScheduler Standalone Server
解压并启动 DolphinScheduler
二进制压缩包中有 standalone 启动的脚本,解压后即可快速启动。切换到有sudo权限的用户,运行脚本
# 解压并运行 Standalone Server
tar -xvzf apache-dolphinscheduler-*-bin.tar.gz
cd apache-dolphinscheduler-*-bin
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
登录 DolphinScheduler
浏览器访问地址 http://localhost:12345/dolphinscheduler/ui 即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123
登录后新页面如下
启停服务
脚本 ./bin/dolphinscheduler-daemon.sh
除了可以快捷启动 standalone 外,还能停止服务运行,全部命令如下
# 启动 Standalone Server 服务
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
# 停止 Standalone Server 服务
bash ./bin/dolphinscheduler-daemon.sh stop standalone-server
配置数据库
Standalone server 使用 H2 数据库作为其元数据存储数据,这是为了上手简单,用户在启动服务器之前不需要启动数据库。但是如果用户想将元数据库存储在 MySQL 或 PostgreSQL 等其他数据库中,他们必须更改一些配置。请参考 数据源配置 Standalone 切换元数据库
创建并初始化数据库
集群部署
前置准备工作
伪分布式部署 DolphinScheduler 需要有外部软件的支持
JDK:下载JDK (1.8+),安装并配置 JAVA_HOME
环境变量,并将其下的bin
目录追加到PATH
环境变量中。如果你的环境中已存在,可以跳过这步。二进制包:在下载页面下载 DolphinScheduler 二进制包 数据库:PostgreSQL (8.2.15+) 或者 MySQL (5.7+),两者任选其一即可,如 MySQL 则需要 JDBC Driver 8.0.16 注册中心:ZooKeeper (3.4.6+),下载地址 进程树分析 macOS安装 pstreeFedora/Red/Hat/CentOS/Ubuntu/Debian安装 psmisc
注意: DolphinScheduler 本身不依赖 Hadoop、Hive、Spark,但如果你运行的任务需要依赖他们,就需要有对应的环境支持
准备 DolphinScheduler 启动环境
下载安装包
二进制包:在下载页面下载 DolphinScheduler 二进制包
目前最新版本3.1.4,下载方法
wget https://dlcdn.apache.org/dolphinscheduler/3.1.4/apache-dolphinscheduler-3.1.4-bin.tar.gz
解压
# 解压并运行 Standalone Server
tar -xvzf apache-dolphinscheduler-*-bin.tar.gz
配置用户免密及权限
所有机器上进行以下操作:创建部署用户,并且一定要配置 sudo
免密。以创建 dolphinscheduler 用户为例
# 创建用户需使用 root 登录
useradd dolphinscheduler
# 添加密码
echo "dolphinscheduler" | passwd --stdin dolphinscheduler
# 配置 sudo 免密
sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' etc/sudoers
# 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-*-bin
配置机器SSH免密登陆
如已配置跳过此步
由于安装的时候需要向不同机器发送资源,所以要求各台机器间能实现SSH免密登陆。配置免密登陆的步骤如下
su dolphinscheduler
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
注意: 配置完成后,可以通过运行命令
ssh localhost
判断是否成功,如果不需要输入密码就能ssh登陆则证明成功
启动zookeeper
如已配置跳过此步
进入 zookeeper 的安装目录,将 zoo_sample.cfg
配置文件复制到 conf/zoo.cfg
,并将 conf/zoo.cfg
中 dataDir 中的值改成 dataDir=./tmp/zookeeper
# 启动 zookeeper
./bin/zkServer.sh start
修改相关配置
完成基础环境的准备后,需要根据你的机器环境修改配置文件。配置文件可以在目录 bin/env
中找到,他们分别是 并命名为 install_env.sh
和 dolphinscheduler_env.sh
。
修改 install_env.sh
文件
文件 install_env.sh
描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在路径 bin/env/install_env.sh
中找到此文件,可通过以下方式更改env变量,export <ENV_NAME> =,配置详情如下。
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# A comma separated list of machine hostname or IP would be installed DolphinScheduler,
# including master, worker, api, alert. If you want to deploy in pseudo-distributed
# mode, just write a pseudo-distributed hostname
# Example for hostnames: ips="ds1,ds2,ds3,ds4,ds5", Example for IPs: ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
ips="172.16.24.194,172.16.24.195,172.16.24.196,172.16.24.197"
# Port of SSH protocol, default value is 22. For now we only support same port in all `ips` machine
# modify it if you use different ssh port
sshPort="22"
# A comma separated list of machine hostname or IP would be installed Master server, it
# must be a subset of configuration `ips`.
# Example for hostnames: masters="ds1,ds2", Example for IPs: masters="192.168.8.1,192.168.8.2"
masters="172.16.24.194,172.16.24.195"
# A comma separated list of machine <hostname>:<workerGroup> or <IP>:<workerGroup>.All hostname or IP must be a
# subset of configuration `ips`, And workerGroup have default value as `default`, but we recommend you declare behind the hosts
# Example for hostnames: workers="ds1:default,ds2:default,ds3:default", Example for IPs: workers="192.168.8.1:default,192.168.8.2:default,192.168.8.3:default"
workers="172.16.24.196:default,172.16.24.197:default"
# A comma separated list of machine hostname or IP would be installed Alert server, it
# must be a subset of configuration `ips`.
# Example for hostname: alertServer="ds3", Example for IP: alertServer="192.168.8.3"
alertServer="172.16.24.196"
# A comma separated list of machine hostname or IP would be installed API server, it
# must be a subset of configuration `ips`.
# Example for hostname: apiServers="ds1", Example for IP: apiServers="192.168.8.1"
apiServers="172.16.24.197"
# 服务安装目录
installPath="/home/dolphinscheduler/dolphinscheduler"
# 用户可以为我们上面配置的所有机器部署DolphinSchedur。目前,用户必须在运行“install.sh”脚本之前自行创建。用户需要具有sudo权限和权限才能操作hdfs。如果启用了hdfs,则需要使用此方法创建根目录
deployUser="dolphinscheduler"
配置说明
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 需要配置master、worker、API server,所在服务器的IP均为机器IP或者localhost
# 如果是配置hostname的话,需要保证机器间可以通过hostname相互链接
# 如下图所示,部署 DolphinScheduler 机器的 hostname 为 ds1,ds2,ds3,ds4,ds5,其中 ds1,ds2 安装 master 服务,ds3,ds4,ds5安装 worker 服务,alert server安装在ds4中,api server 安装在ds5中
ips="ds1,ds2,ds3,ds4,ds5"
masters="ds1,ds2"
workers="ds3:default,ds4:default,ds5:default"
alertServer="ds4"
apiServers="ds5"
修改 dolphinscheduler_env.sh
文件
文件 ./bin/env/dolphinscheduler_env.sh
描述了下列配置:
DolphinScheduler 的数据库配置,详细配置方法见初始化数据库 一些任务类型外部依赖路径或库文件,如 JAVA_HOME
和SPARK_HOME
都是在这里定义的注册中心 zookeeper服务端相关配置,比如缓存,时区设置等
如果您不使用某些任务类型,您可以忽略任务外部依赖项,但您必须根据您的环境更改 JAVA_HOME
、注册中心和数据库相关配置。
# JDK
export JAVA_HOME=${JAVA_HOME:-/opt/jdk1.8.0_151}
# 数据库配置
# Database related configuration, set database type, username and password
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://172.16.24.194:3306/dolphinscheduler?characterEncoding=UTF-8"
export SPRING_DATASOURCE_USERNAME="root"
export SPRING_DATASOURCE_PASSWORD="Avris2222"
# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
# Registry center configuration, determines the type and link of the registry center
# 配置Zookeeper地址
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-172.16.24.194:2181}
# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/usr/hdp/3.1.5.0-152/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/usr/hdp/3.1.5.0-152/hadoop/conf}
export SPARK_HOME2=${SPARK_HOME2:-/usr/hdp/3.1.5.0-152/spark2}
export HIVE_HOME=${HIVE_HOME:-/usr/hdp/3.1.5.0-152/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/flink}
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
export SEATUNNEL_HOME=${SEATUNNEL_HOME:-/opt/soft/seatunnel}
export CHUNJUN_HOME=${CHUNJUN_HOME:-/opt/soft/chunjun}
export PATH=$HADOOP_HOME/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$SEATUNNEL_HOME/bin:$CHUNJUN_HOME/bin:$PATH
初始化数据库
请参考 数据源配置 伪分布式/分布式安装初始化数据库
创建并初始化数据库
伪分布式/分布式安装初始化数据库
DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL。下面分别介绍如何使用 MySQL 和 PostgresQL 初始化数据库。
如果使用 MySQL 需要手动下载 mysql-connector-java 驱动 (8.0.16) 并移动到 DolphinScheduler 的每个模块的 libs 目录下,其中包括
api-server/libs
和alert-server/libs
和master-serowdver/libs
和worker-server/libs
和tools/libs
对于mysql 5.6 5.7:
mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 修改 {user} 和 {password} 为你希望的用户名和密码
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
mysql> flush privileges;
对于mysql 8:
mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 修改 {user} 和 {password} 为你希望的用户名和密码
mysql> CREATE USER '{user}'@'%' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%';
mysql> CREATE USER '{user}'@'localhost' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost';
mysql> FLUSH PRIVILEGES;
对于 PostgreSQL:
# 采用命令行工具登陆 PostgreSQL
psql
# 创建数据库
postgres=# CREATE DATABASE dolphinscheduler;
# 修改 {user} 和 {password} 为你希望的用户名和密码
postgres=# CREATE USER {user} PASSWORD {password};
postgres=# ALTER DATABASE dolphinscheduler OWNER TO {user};
# 退出 PostgreSQL
postgres=#\q
# 在终端执行如下命令,向配置文件新增登陆权限,并重载 PostgreSQL 配置,替换 {ip} 为对应的 DS 集群服务器 IP 地址段
echo "host dolphinscheduler {user} {ip} md5" >> $PGDATA/pg_hba.conf
pg_ctl reload
然后修改./bin/env/dolphinscheduler_env.sh
,将username和password改成你在上一步中设置的用户名{user}和密码{password}
对于 MySQL:
# for mysql
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME="dolphinscheduler"
export SPRING_DATASOURCE_PASSWORD="dolphinscheduler"
对于 PostgreSQL:
# for postgresql
export DATABASE=${DATABASE:-postgresql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_PASSWORD={password}
完成上述步骤后,您已经为 DolphinScheduler 创建一个新数据库,现在你可以通过快速的 Shell 脚本来初始化数据库
bash tools/bin/upgrade-schema.sh
启动 DolphinScheduler
使用上面创建的部署用户运行以下命令完成部署,部署后的运行日志将存放在 logs 文件夹内
su dolphinscheduler
bash ./bin/install.sh
*注意:* 第一次部署的话,可能出现 5 次
sh: bin/dolphinscheduler-daemon.sh: No such file or directory
相关信息,此为非重要信息直接忽略即可
登录 DolphinScheduler
浏览器访问地址 http://localhost:12345/dolphinscheduler/ui 即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123
登录的IP为配置的apiServers地址

启停服务
# 一键停止集群所有服务
bash ./bin/stop-all.sh
# 一键开启集群所有服务
bash ./bin/start-all.sh
# 启停 Master
bash ./bin/dolphinscheduler-daemon.sh stop master-server
bash ./bin/dolphinscheduler-daemon.sh start master-server
# 启停 Worker
bash ./bin/dolphinscheduler-daemon.sh start worker-server
bash ./bin/dolphinscheduler-daemon.sh stop worker-server
# 启停 Api
bash ./bin/dolphinscheduler-daemon.sh start api-server
bash ./bin/dolphinscheduler-daemon.sh stop api-server
# 启停 Alert
bash ./bin/dolphinscheduler-daemon.sh start alert-server
bash ./bin/dolphinscheduler-daemon.sh stop alert-server
*注意1:*: 每个服务在路径
<service>/conf/dolphinscheduler_env.sh
中都有dolphinscheduler_env.sh
文件,这是可以为微 服务需求提供便利。意味着您可以基于不同的环境变量来启动各个服务,只需要在对应服务中配置<service>/conf/dolphinscheduler_env.sh
然后通过<service>/bin/start.sh
命令启动即可。但是如果您使用命令/bin/dolphinscheduler-daemon.sh start <service>
启动服务器,它将会用文件bin/env/dolphinscheduler_env.sh
覆盖<service>/conf/dolphinscheduler_env.sh
然后启动服务,目的是为了减少用户修改配置的成本.***注意2:***:服务用途请具体参见《系统架构设计》小节。Python gateway service 默认与 api-server 一起启动,如果您不想启动 Python gateway service 请通过更改 api-server 配置文件
api-server/conf/application.yaml
中的python-gateway.enabled : false
来禁用它。
搭建集群遇到的问题
1.Unimplemented for dolphinscheduler/nodes/master
Caused by: org.apache.dolphinscheduler.registry.api.RegistryException: Failed to put registry key: nodes/master
at org.apache.dolphinscheduler.plugin.registry.zookeeper.ZookeeperRegistry.put(ZookeeperRegistry.java:186)
at org.apache.dolphinscheduler.service.registry.RegistryClient.initNodes(RegistryClient.java:247)
at org.apache.dolphinscheduler.service.registry.RegistryClient.afterConstruct(RegistryClient.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
... 74 more
Caused by: org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for dolphinscheduler/nodes/master
at org.apache.zookeeper.KeeperException.create(KeeperException.java:106)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:54)
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1450)
at org.apache.curator.framework.imps.CreateBuilderImpl$18.call(CreateBuilderImpl.java:1216)
at org.apache.curator.framework.imps.CreateBuilderImpl$18.call(CreateBuilderImpl.java:1193)
at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:93)
at org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:1190)
at org.apache.curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:605)
at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:595)
at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:48)
at org.apache.dolphinscheduler.plugin.registry.zookeeper.ZookeeperRegistry.put(ZookeeperRegistry.java:184)
原因:
Zookeeper版本不兼容,DolphinScheduler 3.1.4 版本使用的是 Zookeeper 3.8.0 版本
在 DolphinScheduler 安装目录下 libs 目录可以看到 Zookeeper 的 jar 包为3.8.0
解决方法:
安装Zookeeper3.8.0,将./bin/env/dolphinscheduler_env.sh
配置的Zookeeper地址替换为新的Zookeeper
修改UI页面端口
进入部署apiServers的服务器的目录dolphinscheduler/api-server/conf
修改application.yaml
端口为修改的端口
server:
port: 15432
重启,再次访问:http://ip:15432/dolphinscheduler/ui/
配置资源中心
配置HDFS存储文件
在 3.0.0-alpha 版本之后,如果需要使用到资源中心的 HDFS 或 S3 上传资源,我们需要对以下路径的进行配置:api-server/conf/common.properties
和 worker-server/conf/common.properties
。可参考如下:
# 用户数据本地目录路径,请确保该目录存在并且具有读写权限
data.basedir.path=/tmp/dolphinscheduler
# 资源存储类型:HDFS、S3、OSS、NONE
resource.storage.type=HDFS
# 资源存储在HDFS/S3路径上,资源文件将存储到此基本路径,自行配置,请确保该目录存在于HDFS上并具有读写权限。建议使用“/dolphinscheduler”
resource.storage.upload.base.path=/dolphinscheduler
# 如果resource.storage.type=HDFS,则用户必须具有在HDFS根路径下创建目录的权限
resource.hdfs.root.user=hdfs
# 如果启用了resource.storage.type=HDFS和namenode HA,则需要将core-site.xml和HDFS-site.xml复制到conf-dir
resource.hdfs.fs.defaultFS=hdfs://bigdata-24-194:8020
# resourcemanager port, the default value is 8088 if not specified
resource.manager.httpaddress.port=8088
# 如果启用了resourcemanager HA,请设置HA IP;如果resourcemanager为single,则将该值保留为空
yarn.resourcemanager.ha.rm.ids=192.168.xx.xx,192.168.xx.xx
# 如果resourcemanager HA开启或不使用resourcemanager,请保持默认值;如果resourcemanager是单一的,只需要将ds1替换为实际的resourcemanager hostname
yarn.application.status.address=http://ds1:%s/ws/v1/cluster/apps/%s
# 达到应用程序编号阈值时的作业历史状态url(默认值为10000,可能设置为1000)
# ds1 取 yarn-site.xml 中 yarn.log.server.url配置的ip
yarn.job.history.status.address=http://ds1:19888/ws/v1/history/mapreduce/jobs/%s
重启HDFS
在资源中心
创建目录提示未指定当前登录用户的租户

原因:
admin默认没有配置租户(即在Linux执行的用户名称)
解决方法:
默认admin是没有配置租户的,我们需要再安全中心
->用户管理
->修改
中为admin配置一个租户

再次创建目录和上传文件,成功创建

这些文件和目录我们可以直接在HDFS中查看,目录为我们之前配置的/dolphinscheduler
hdfs dfs -ls /dolphinscheduler/




