
任务调度大数据后端前端【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址https://gitcode.com/gh_mirrors/do/dolphinscheduler点击查看免费下载伪集群部署Pseudo-Cluster是 Apache DolphinScheduler 面向单机环境的经典部署形态在一台物理机上同时运行 master-server、worker-server、api-server、alert-server 四个核心服务即可体验接近生产集群的完整调度能力。本文基于 Apache DolphinScheduler 官方中文文档结合本仓库源码与配置文件完整讲解从环境准备、数据库初始化、配置修改到服务启停的每一步帮助你在一台机器上快速搭建一套可用于学习与中小规模任务验证的 DolphinScheduler 环境。读完本文你将掌握伪集群部署的全部操作细节并理解各配置文件背后的实现原理。一、伪集群部署是什么单机承载完整调度体系伪集群部署的目的是在单台机器上部署 DolphinScheduler 服务。该模式下master、worker、api server 全部运行在同一台机器上它们分别承担不同职责api-server提供 Web UI 与 REST API供用户创建项目、管理工作流、查看任务实例master-server负责任务的调度、分发与容错是调度中枢worker-server实际执行任务通过sudo -u {linux-user} -i切换不同 Linux 用户实现多租户运行alert-server负责告警通知的发送。与 Standalone 极速体验版 相比伪集群使用独立进程与外部注册中心、外部数据库功能更完整、可承载更大的任务量与 集群部署 和 kubernetes 相比伪集群只需一台机器适合体验完整功能和中小规模任务验证。官方文档给出的选型建议是新手体验推荐 Standalone想体验更完整的功能或更大的任务量推荐伪集群部署生产环境推荐集群部署或 Kubernetes。注意DolphinScheduler 本身不依赖 Hadoop、Hive、Spark但如果你的任务需要依赖它们就需要有对应的环境支持。二、前置准备工作外部依赖清单伪分布式部署 DolphinScheduler 需要以下外部软件支持依赖项版本要求说明JDK1.8 或 11安装并配置JAVA_HOME环境变量并将其下的bin目录追加到PATH环境变量环境中已存在可跳过二进制包最新发行版在官方下载页面下载 DolphinScheduler 二进制包数据库PostgreSQL8.2.15或 MySQL5.7二选一如使用 MySQL 则需要 JDBC Driver 8.0.33注册中心ZooKeeper3.8.0、MySQL8.0.33、ETCD 三选一当前版本默认注册中心为 zookeeper进程树分析工具—macOS 安装pstreeFedora/Red/Hat/CentOS/Ubuntu/Debian 安装psmisc注意DolphinScheduler 本身不依赖 Hadoop、Hive、Spark但如果你运行的任务需要依赖它们就需要有对应的环境支持。三、准备 DolphinScheduler 启动环境3.1 配置用户免密及权限由于任务执行服务是以sudo -u {linux-user} -i切换不同 Linux 用户的方式来实现多租户运行作业因此部署用户必须有 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 chmod -R 755 apache-dolphinscheduler-*-bin注意因为任务执行服务是以sudo -u {linux-user} -i切换不同 linux 用户的方式来实现多租户运行作业所以部署用户需要有 sudo 权限而且是免密的。初学习者不理解的话完全可以暂时忽略这一点。如果发现/etc/sudoers文件中有Defaults requirett这行也请注释掉。3.2 启动 ZooKeeper注册中心是伪集群中 master 与 worker 相互发现、协调的关键组件。进入 zookeeper 的安装目录将zoo_sample.cfg配置文件复制到conf/zoo.cfg并将conf/zoo.cfg中dataDir的值改成dataDir./tmp/zookeeper然后启动# 启动 zookeeper ./bin/zkServer.sh start从源码看ZooKeeper 注册中心的使用是可选插件化设计本仓库dolphinscheduler-registry/dolphinscheduler-registry-plugins/dolphinscheduler-registry-zookeeper提供了 ZK 注册实现dolphinscheduler-registry-jdbc则提供了 MySQL/PostgreSQL 作为注册中心的实现dolphinscheduler-registry-etcd提供 ETCD 支持三者通过dolphinscheduler-registry-all汇总接入用户可在dolphinscheduler_env.sh中通过REGISTRY_TYPE自由切换。四、修改相关配置完成基础环境准备后需要根据你的机器环境修改配置文件。配置文件位于以下位置bin/env/dolphinscheduler_env.shapi-server/conf/application.yamlmaster-server/conf/application.yamlworker-server/conf/application.yamlalert-server/conf/application.yaml4.1 修改dolphinscheduler_env.sh文件文件./bin/env/dolphinscheduler_env.sh描述了下列配置DolphinScheduler 的数据库配置详细配置方法见 数据源配置 的「伪分布式/分布式安装初始化数据库」一节一些任务类型外部依赖路径或库文件如JAVA_HOME和SPARK_HOME都是在这里定义的默认的注册中心是 zookeeper服务器相关配置如缓存类型、时区等。如果您不使用某些任务类型可以忽略任务外部依赖项但您必须根据您的环境更改JAVA_HOME、注册中心和数据库相关配置。示例配置如下# JAVA_HOME, will use it to start DolphinScheduler server export JAVA_HOME${JAVA_HOME:-/opt/soft/java} # Database related configuration, set database type, username and password export DATABASE${DATABASE:-postgresql} export SPRING_PROFILES_ACTIVE${DATABASE} export SPRING_DATASOURCE_URLjdbc:postgresql://127.0.0.1:5432/dolphinscheduler export SPRING_DATASOURCE_USERNAME{user} export SPRING_DATASOURCE_PASSWORD{password} # DolphinScheduler server related configuration export SPRING_CACHE_TYPE${SPRING_CACHE_TYPE:-none} export SPRING_JACKSON_TIME_ZONE${SPRING_JACKSON_TIME_ZONE:-UTC} # Registry center configuration, determines the type and link of the registry center export REGISTRY_TYPE${REGISTRY_TYPE:-zookeeper} export REGISTRY_ZOOKEEPER_CONNECT_STRING${REGISTRY_ZOOKEEPER_CONNECT_STRING:-localhost:2181} # Tasks related configurations, need to change the configuration if you use the related tasks. export HADOOP_HOME${HADOOP_HOME:-/opt/soft/hadoop} export HADOOP_CONF_DIR${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop} export SPARK_HOME${SPARK_HOME:-/opt/soft/spark} export PYTHON_LAUNCHER${PYTHON_LAUNCHER:-/opt/soft/python} export HIVE_HOME${HIVE_HOME:-/opt/soft/hive} export FLINK_HOME${FLINK_HOME:-/opt/soft/flink} export DATAX_LAUNCHER${DATAX_LAUNCHER:-/opt/soft/datax/bin/python3} export PATH$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH关键配置项说明DATABASE元数据库类型可选postgresql或mysql同时通过SPRING_PROFILES_ACTIVE${DATABASE}激活对应 Spring profile驱动与 Quartz 委托类随之切换。从 api-server 配置文件 可以看出默认 profile 为postgresql其下配置了 PostgreSQL 驱动与PostgreSQLDelegate而mysqlprofile 则切换为com.mysql.cj.jdbc.Driver与StdJDBCDelegate。SPRING_DATASOURCE_URL / SPRING_DATASOURCE_USERNAME / SPRING_DATASOURCE_PASSWORD数据库连接信息对应 application.yaml 中的spring.datasource.url/username/password。SPRING_CACHE_TYPE缓存类型默认none。SPRING_JACKSON_TIME_ZONEJackson 序列化时区默认UTC与 api-server 配置 中spring.jackson.time-zone: UTC一致。REGISTRY_TYPE注册中心类型默认zookeeperREGISTRY_ZOOKEEPER_CONNECT_STRING为 ZK 连接串默认localhost:2181。任务外部依赖HADOOP_HOME、SPARK_HOME、PYTHON_LAUNCHER、HIVE_HOME、FLINK_HOME、DATAX_LAUNCHER等仅在使用对应任务类型时才需要配置所有值均写入PATH供任务执行时查找命令。注意 1如果您使用的是 MySQL 数据库需要将DATABASE设置为mysql并修改SPRING_DATASOURCE_URL、SPRING_DATASOURCE_USERNAME和SPRING_DATASOURCE_PASSWORD为您的数据库配置。注意 2dolphinscheduler_env.sh文件中的配置会覆盖各个服务的配置文件application.yaml中的配置所以如果您在 application.yaml 中配置了某个参数而且在dolphinscheduler_env.sh中也配置了那么以dolphinscheduler_env.sh中的配置为准。dolphinscheduler_env.sh里的配置项格式样例SPRING_DATASOURCE_URL对应 application.yaml 中的spring.datasource.url以此类推。4.2 关于 application.yaml 的补充说明在伪集群模式下各服务的application.yaml使用spring.profiles.active指定数据库 profile例如 master-server 配置 与 api-server 配置 默认均为postgresql。当你通过dolphinscheduler_env.sh设置DATABASEmysql时环境变量会覆盖该 profile 与连接参数。api-server 中server.port: 12345与context-path: /dolphinscheduler/共同决定了 Web UI 的访问地址形态http://localhost:12345/dolphinscheduler/ui而python-gateway.enabled控制 Python Gateway 是否随 api-server 启动默认false。五、初始化数据库请参考 数据源配置 的「伪分布式/分布式安装初始化数据库」一节创建并初始化数据库。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如果使用 MySQL 需要手动下载 mysql-connector-java 驱动8.0.16 及以上版本并移动到 DolphinScheduler 的每个模块的 libs 目录下其中包括api-server/libs、alert-server/libs、master-server/libs、worker-server/libs和tools/libs。如果你只是想要在数据源中心使用 MySQL对驱动版本没有要求但若将 MySQL 作为 DolphinScheduler 的元数据库则仅支持 8.0.16 及以上版本。完成上述步骤后通过以下 Shell 脚本初始化数据库该脚本位于tools/bin/upgrade-schema.sh由 dolphinscheduler-tools 模块提供会依据当前元数据库 schema 版本自动建表或升级bash tools/bin/upgrade-schema.sh六、启动 DolphinScheduler6.1 依次启动四个服务部署后的运行日志将存放在xxx-server/logs文件夹内。按顺序启动各服务# 启动 api-server bash ./bin/dolphinscheduler-daemon.sh start api-server # 启动 master-server bash ./bin/dolphinscheduler-daemon.sh start master-server # 启动 worker-server bash ./bin/dolphinscheduler-daemon.sh start worker-server # 启动 alert-server bash ./bin/dolphinscheduler-daemon.sh start alert-server注意第一次部署的话可以通过bash ./bin/dolphinscheduler-daemon.sh status xxx-server来进行服务状态查询。6.2 启动脚本的实现原理dolphinscheduler-daemon.sh仓库中的 script/dolphinscheduler-daemon.sh是伪集群与集群部署共用的服务管理脚本支持start|stop|status三种动作与api-server|master-server|worker-server|alert-server|standalone-server五种服务。其核心逻辑包括环境覆盖机制overwrite_server_env()函数会检查bin/env/dolphinscheduler_env.sh是否存在若存在则将其复制覆盖server/conf/dolphinscheduler_env.sh。这就是文档中以bin/env/dolphinscheduler_env.sh覆盖各服务配置减少用户修改成本的实现出处见 script/dolphinscheduler-daemon.sh。日志与 PID 管理日志统一输出到DOLPHINSCHEDULER_HOME/service/logs/service-hostname.outPID 文件存放在service/pidstatus命令通过读取 PID 文件并检查进程是否存在来判断运行状态RUNNING/STOP未运行状态以红色显示、运行中以绿色显示。优雅停止stop使用pkill -P停止进程树等待STOP_TIMEOUT默认 5 秒后仍未退出则用kill -9强制结束。启动命令最终以nohup /bin/bash $DOLPHINSCHEDULER_HOME/$command/bin/start.sh方式在后台拉起各服务并将进程号写入 PID 文件。七、登录 DolphinScheduler启动完成后浏览器访问地址 http://localhost:12345/dolphinscheduler/ui 即可登录系统 UI。默认的用户名和密码是admin/dolphinscheduler123。该地址由 api-server 的配置决定server.port: 12345与server.servlet.context-path: /dolphinscheduler/见 api-server 配置文件。登录后即可创建项目、上传资源、编排工作流并运行任务。八、启停服务伪集群模式下你可以独立启停每一个服务# 查询服务状态 bash ./bin/dolphinscheduler-daemon.sh status xxx-server # 启停 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然后启动服务目的是为了减少用户修改配置的成本这一覆盖逻辑的实现可见 script/dolphinscheduler-daemon.sh。注意 2服务用途请具体参见《系统架构设计》相关章节。Python gateway service 默认与 api-server 一起启动如果您不想启动 Python gateway service请通过更改 api-server 配置文件api-server/conf/application.yaml中的python-gateway.enabled : false来禁用它。注意 3DS 默认使用本地模式的目录/tmp/dolphinscheduler作为资源中心。如果需要修改资源中心目录请修改配置文件conf/common.properties中 resource 的相关配置项。仓库中 dolphinscheduler-common/src/main/resources/common.properties 给出了完整的配置样例data.basedir.path/tmp/dolphinscheduler定义了资源基础目录resource.storage.typeLOCAL表示本地存储同时还支持 OSS、GCS、ABS、OBS、HDFS、S3 等远端存储类型如resource.storage.typeS3时需配置s3a://形式的路径HDFS 开启 NameNode HA 时需将core-site.xml与hdfs-site.xml复制到 conf 目录。九、常见问题与排障思路服务状态查询第一次部署建议先用bash ./bin/dolphinscheduler-daemon.sh status xxx-server确认各服务是否成功启动status显示 STOP 时可检查service/logs/service-hostname.out日志文件定位启动失败原因。数据库连接失败确认dolphinscheduler_env.sh中DATABASE、SPRING_DATASOURCE_URL、用户名、密码与已初始化的数据库一致MySQL 场景务必确认各模块libs目录已放置 8.0.16 的 JDBC 驱动且元数据库字符集为 utf8。注册中心未连接确认 ZooKeeper 已启动./bin/zkServer.sh status且REGISTRY_ZOOKEEPER_CONNECT_STRING与 ZK 实际地址一致若切换为 MySQL/PostgreSQL 注册中心需正确设置REGISTRY_TYPE与对应连接参数。任务执行权限问题如果任务因权限失败检查部署用户是否已配置 sudo 免密、/etc/sudoers中Defaults requirett是否已注释以及apache-dolphinscheduler-*-bin目录属主与权限是否正确。十、下一步走向集群与生产伪集群模式验证通过后你可以参考以下文档继续深入Standalone 极速体验版单进程快速体验适合新手入门集群部署多机分布部署 master/worker支撑生产规模kubernetes 部署基于容器编排的生产级部署方式数据源配置元数据库与业务数据源的完整配置方法。伪集群模式的价值在于它以最接近生产架构的组件划分独立 master、worker、api、alert 进程在单机上复现了 DolphinScheduler 的核心调度链路是学习架构原理、调试插件、验证工作流的最佳实验场。赞分享任务调度大数据后端前端【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址https://gitcode.com/gh_mirrors/do/dolphinscheduler点击查看免费下载相关推荐Apache DolphinScheduler 伪集群部署完整指南单机部署 Master/Worker/API/Alert 四服务实战Apache DolphinScheduler 伪集群部署完整指南单机部署 Master/Worker/API/Alert 四服务实战 导读 伪集群Pseu任务调度大数据后端前端Apache DolphinScheduler 伪集群部署实战单机运行 Master、Worker 与 Api Server 的完整指南Apache DolphinScheduler 伪集群部署实战单机运行 Master、Worker 与 Api Server 的完整指南 伪集群部署Pseu任务调度数据编排工作流自动化后端大数据Apache DolphinScheduler 伪集群部署完整指南单机运行 Master、Worker 与 API ServerApache DolphinScheduler 伪集群部署完整指南单机运行 Master、Worker 与 API Server Apache Dolphin任务调度数据编排工作流自动化后端大数据创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考