大数跨境

新手教程:用外部 PostgreSQL 和 Zookeeper 启动 Dolphinscheduler

新手教程:用外部 PostgreSQL 和 Zookeeper 启动 Dolphinscheduler 海豚调度
2025-07-29
1
导读:无论你是新手还是有经验的开发者,都能轻松跟着这些步骤在Linux/Unix环境中完成安装和配置。

点击蓝字,关注我们

本文将带你一步步通过外部PostgreSQL和Zookeeper来启动Apache DolphinScheduler。无论你是新手还是有经验的开发者,都能轻松跟着这些步骤在Linux/Unix环境中完成安装和配置。除了常见的安装步骤,我们还会分享一些集群部署的技巧,让你轻松扩展系统规模。

当然,如果遇到数据库连接、Zookeeper连接或者启动服务的问题,不用担心,文中也有详细的排查方案,帮你轻松搞定!

1

系统要求

  • 操作系统:Linux/Unix (推荐CentOS 7+或Ubuntu 16.04+)
  • Java环境:JDK 1.8+
  • 数据库:PostgreSQL 9.6+
  • 分布式协调服务:Zookeeper 3.4.6+
  • 内存:建议至少4GB
  • 磁盘空间:建议至少10GB

2

准备工作


  1. 安装和配置PostgreSQL
# 安装PostgreSQL (以CentOS为例)sudo yum install -y postgresql-server postgresql-contrib# 初始化数据库sudo postgresql-setup initdb# 启动服务sudo systemctl start postgresqlsudo systemctl enable postgresql# 创建DolphinScheduler数据库和用户sudo -u postgres psql -c "CREATE USER dolphinscheduler WITH PASSWORD 'yourpassword';"sudo -u postgres psql -c "CREATE DATABASE dolphinscheduler OWNER dolphinscheduler;"sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE dolphinscheduler TO dolphinscheduler;"# 修改pg_hba.conf配置sudo vi /var/lib/pgsql/data/pg_hba.conf# 添加或修改以下行:host    all             all             0.0.0.0/0               md5# 修改postgresql.conf配置sudo vi /var/lib/pgsql/data/postgresql.conf# 修改listen_addresses为:listen_addresses = '*'# 重启PostgreSQLsudo systemctl restart postgresql
2. 安装和配置Zookeeper
# 下载Zookeeperwget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gztar -xzf apache-zookeeper-3.7.1-bin.tar.gzmv apache-zookeeper-3.7.1-bin /opt/zookeeper# 配置Zookeepercd /opt/zookeeper/confcp zoo_sample.cfg zoo.cfgvi zoo.cfg# 修改数据目录和添加服务器配置(如果是集群)dataDir=/opt/zookeeper/data# 单机模式不需要修改server配置# 创建数据目录mkdir /opt/zookeeper/data# 启动Zookeeper/opt/zookeeper/bin/zkServer.sh start


3

安装和配置

DolphinScheduler 3.1.9

  1. 下载和解压
wget https://downloads.apache.org/dolphinscheduler/3.1.9/apache-dolphinscheduler-3.1.9-bin.tar.gztar -xzf apache-dolphinscheduler-3.1.9-bin.tar.gzmv apache-dolphinscheduler-3.1.9-bin /opt/dolphinscheduler
2. 修改配置文件
修改common.properties
vi /opt/dolphinscheduler/conf/common.properties

修改以下配置:

# 数据库配置spring.datasource.driver-class-name=org.postgresql.Driverspring.datasource.url=jdbc:postgresql://your-postgresql-server:5432/dolphinschedulerspring.datasource.username=dolphinschedulerspring.datasource.password=yourpassword# Zookeeper配置registry.plugin.name=zookeeperregistry.plugin.type=zookeeperregistry.servers=your-zookeeper-server:2181

修改环境变量(可选)

vi /opt/dolphinscheduler/conf/env/dolphinscheduler_env.sh

添加或修改Java环境变量:

export JAVA_HOME=/usr/java/jdk1.8.0_291export PATH=$JAVA_HOME/bin:$PATH
3. 初始化数据库
/opt/dolphinscheduler/script/create-dolphinscheduler.sh
4. 启动服务
启动Master Server
/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server

启动Worker Server

/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server

启动API Server

/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start api-server

启动Alert Server

/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start alert-server


4

验证安装


  1. 检查进程状态:
ps -ef | grep dolphinscheduler
2. 访问Web UI: 默认端口:12345 
访问URL:http://your-server-ip:12345/dolphinscheduler 
默认用户名/密码:admin/dolphinscheduler123

5

集群部署指南

集群模式部署步骤

如果需要部署为集群模式,需要按照以下步骤进行操作:

1. 多节点部署Worker Server

节点要求

  • 在至少3个节点(建议奇数个)上重复Worker Server的安装过程
  • 每个节点需要相同的安装包版本,确保组件版本一致性
  • 服务器硬件配置建议:
    • CPU: 4核以上
    • 内存: 8GB以上
    • 磁盘: 100GB以上(根据业务数据量调整)

示例部署方案

  • 节点1(主节点):Master Server + Worker Server
    • IP: 192.168.1.101
    • 角色: 主控节点+工作节点
  • 节点2(工作节点):Worker Server
    • IP: 192.168.1.102
    • 角色: 工作节点
  • 节点3(工作节点):Worker Server
    • IP: 192.168.1.103
    • 角色: 工作节点

安装注意事项
1. 在每个节点上执行相同的安装脚本
2. 确保所有节点的安装路径一致
3. 检查各节点间的网络连通性(建议使用ping/telnet测试)

2. 配置registry.servers

详细配置步骤

  1. 修改所有节点上的common.properties配置文件
    • 文件路径:/opt/your_app/conf/common.properties
  2. registry.servers设置为Zookeeper集群地址
  3. 格式示例:
registry.servers=zk1:2181,zk2:2181,zk3:2181
配置验证
1. 使用zkCli.sh连接Zookeeper验证配置是否正确
./zkCli.sh -server zk1:2181
2. 检查节点注册情况:
ls /your_app/nodes
3. 时间同步配置

详细时间同步方案

所有节点必须保持时间同步(误差不超过1秒),建议配置如下:

NTP服务配置步骤

  1. 安装NTP服务:
yum install -y ntp
2. 配置NTP服务器(以阿里云NTP为例):
ntpdate ntp.aliyun.com
3. 设置自动同步:
# 设置开机启动systemctl enable ntpd# 启动服务systemctl start ntpd
4. 验证时间同步:
ntpq -pdate

备选时间同步方案

如果无法连接外网NTP服务器,可配置内网时间服务器:

  1. 指定一台服务器作为时间服务器
  2. 其他节点同步该服务器时间
  3. 配置示例:
ntpdate 192.168.1.100

时间同步注意事项

  • 建议配置crontab定期同步时间
*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1
  • 对于金融等对时间敏感的系统,建议误差控制在100毫秒以内


6

常见问题解决方案


数据库连接失败排查

  1. PostgreSQL远程连接配置
  • 检查pg_hba.conf文件,确保包含类似配置:
host    all             all             0.0.0.0/0               md5
  • 修改后需重启PostgreSQL服务
2. 验证凭据
  • 使用psql命令行测试连接:
psql -h [host] -U [username] -d [database
  • 确认密码输入正确
3. 防火墙检查
  • 检查节点间5432端口是否开放:
firewall-cmd --list-all
  • 如需开放:
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

Zookeeper连接问题排查

  1. 基础连接测试

    * telnet your-zookeeper-server 2181

    • 成功应显示"Connected to your-zookeeper-server"
    • 使用telnet测试连接:
  2. 日志检查

    查看Zookeeper日志:

    tail -f /var/log/zookeeper/zookeeper.log
    常见问题
    • 磁盘空间不足
    • 内存配置过低
    • 集群节点未正确配置

服务启动失败排查

  1. 日志分析

    检查各组件日志:

    tail -n 100 /opt/dolphinscheduler/logs/dolphinscheduler-api.log

     检查各组件日志文件:
/opt/dolphinscheduler/logs/├── dolphinscheduler-alert-server.log├── dolphinscheduler-api-server.log├── dolphinscheduler-master-server.log└── dolphinscheduler-worker-server.log

2. Java环境验证

检查Java版本:

java -version
    • JDK 1.8+
    • 检查JAVA_HOME配置:
      echo $JAVA_HOME

检查内存配置:

jmap -heap <pid>
    3. 端口冲突检查
    查看端口使用情况:
    netstat -tunlp | grep [port]
    默认端口:
    • Master Server: 5678
    • Worker Server: 1234
    • API Server: 12345

    原文链接:https://blog.csdn.net/NIIT0532/article/details/149217318





    用户案例



    Zoom网易邮箱 每日互动 惠生工程  作业帮 
    博世智驾 蔚来汽车 长城汽车集度长安汽车
    思科网讯食行生鲜联通医疗联想
    新网银行唯品富邦消费金融 
    自如有赞伊利当贝大数据
    珍岛集团传智教育Bigo
    YY直播  拈花云科太美医疗
    Cisco Webex兴业证券




    迁移实战



    Azkaban   Ooize(当贝迁移案例)
    Airflow (有赞迁移案例)
    Air2phin(迁移工具)
    Airflow迁移实践



    发版消息




    Apache DolphinScheduler 3.2.2版本正式发布!
    Apache DolphinScheduler 3.2.1 版本发布:增强功能与安全性的全面升级
    Apache DolphinScheduler 3.3.0 Alpha发布,功能增强与性能优化大升级!




    加入社区



    关注社区的方式有很多:

    • GitHub: https://github.com/apache/dolphinscheduler
    • 官网:https://dolphinscheduler.apache.org/en-us
    • 订阅开发者邮件:dev@dolphinscheduler@apache.org
    • X.com:@DolphinSchedule
    • YouTube:https://www.youtube.com/@apachedolphinscheduler
    • Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

    同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。

    📂非代码方式包括:

    完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。

    👩‍💻代码方式包括:

    查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

    贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

    社区汇总了以下适合新手的问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3A%22first+time+contributor%22

    优先级问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3Apriority%3Ahigh

    如何参与贡献链接https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97_menu/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E_menu

    如果你❤️小海豚,就来为我点亮Star吧!

    https://github.com/apache/dolphinscheduler


    你的好友秀秀子拍了拍你

    并请你帮她点一下“分享”

    【声明】内容源于网络
    0
    0
    海豚调度
    Apache DolphinScheduler是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
    内容 667
    粉丝 0
    海豚调度 Apache DolphinScheduler是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
    总阅读167
    粉丝0
    内容667