暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

海豚调度 2025-07-30
54

点击蓝字,关注我们

本文将带你一步步通过外部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 postgresql
    sudo 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 = '*'
    # 重启PostgreSQL
    sudo systemctl restart postgresql
    2. 安装和配置Zookeeper
      # 下载Zookeeper
      wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
      tar -xzf apache-zookeeper-3.7.1-bin.tar.gz
      mv apache-zookeeper-3.7.1-bin opt/zookeeper
      # 配置Zookeeper
      cd /opt/zookeeper/conf
      cp zoo_sample.cfg zoo.cfg
      vi 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.gz
        tar -xzf apache-dolphinscheduler-3.1.9-bin.tar.gz
        mv apache-dolphinscheduler-3.1.9-bin opt/dolphinscheduler
        2. 修改配置文件
        修改common.properties
          vi /opt/dolphinscheduler/conf/common.properties

          修改以下配置:

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

            修改环境变量(可选)

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

              添加或修改Java环境变量:

                export JAVA_HOME=/usr/java/jdk1.8.0_291
                export 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 -p
                                        date

                                        备选时间同步方案

                                        如果无法连接外网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测试连接:
                                                  • 日志检查

                                                    查看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


                                                                  你的好友秀秀子拍了拍你

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

                                                                  文章转载自海豚调度,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                                  评论