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

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

tutorials-5238355_1280

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

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

系统要求

  • 操作系统:Linux/Unix (推荐CentOS 7+或Ubuntu 16.04+)

  • Java环境:JDK 1.8+

  • 数据库:PostgreSQL 9.6+

  • 分布式协调服务:Zookeeper 3.4.6+

  • 内存:建议至少4GB

  • 磁盘空间:建议至少10GB

准备工作

  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
  1. 安装和配置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

安装和配置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
  1. 修改配置文件
    修改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
  1. 初始化数据库

/opt/dolphinscheduler/script/create-dolphinscheduler.sh
  1. 启动服务
    启动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

验证安装

  1. 检查进程状态:

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

集群部署指南

集群模式部署步骤

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

  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测试)

  1. 配置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
  1. 检查节点注册情况:

ls /your_app/nodes
  1. 时间同步配置

详细时间同步方案

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

NTP服务配置步骤

  1. 安装NTP服务:

yum install -y ntp
  1. 配置NTP服务器(以阿里云NTP为例):

ntpdate ntp.aliyun.com
  1. 设置自动同步:

# 设置开机启动systemctl enable ntpd# 启动服务systemctl start ntpd
  1. 验证时间同步:

ntpq -pdate

备选时间同步方案

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

  1. 指定一台服务器作为时间服务器

  2. 其他节点同步该服务器时间

  3. 配置示例:

ntpdate 192.168.1.100

时间同步注意事项

  • 建议配置crontab定期同步时间

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

常见问题解决方案

数据库连接失败排查

  1. PostgreSQL远程连接配置

  • 检查pg_hba.conf文件,确保包含类似配置:

host    all             all             0.0.0.0/0               md5
  • 修改后需重启PostgreSQL服务

  1. 验证凭据

  • 使用psql命令行测试连接:

psql -h [host] -U [username] -d [database]
  • 确认密码输入正确

  1. 防火墙检查

  • 检查节点间5432端口是否开放:

firewall-cmd --list-all
  • 如需开放:

firewall-cmd --zone=public --add-port=5432/tcp --permanentfirewall-cmd --reload

Zookeeper连接问题排查

  1. 基础连接测试

    • 使用telnet测试连接:

    * telnet your-zookeeper-server 2181
    • 成功应显示"Connected to your-zookeeper-server"

  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