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

本文将带你一步步通过外部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
bash 复制代码
# 安装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
  1. 安装和配置Zookeeper
bash 复制代码
# 下载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

安装和配置DolphinScheduler 3.1.9

  1. 下载和解压
bash 复制代码
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
  1. 修改配置文件 修改common.properties
bash 复制代码
vi /opt/dolphinscheduler/conf/common.properties

修改以下配置:

ini 复制代码
# 数据库配置
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

修改环境变量(可选)

bash 复制代码
vi /opt/dolphinscheduler/conf/env/dolphinscheduler_env.sh

添加或修改Java环境变量:

bash 复制代码
export JAVA_HOME=/usr/java/jdk1.8.0_291
export PATH=$JAVA_HOME/bin:$PATH
  1. 初始化数据库
bash 复制代码
/opt/dolphinscheduler/script/create-dolphinscheduler.sh
  1. 启动服务 启动Master Server
bash 复制代码
/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server

启动Worker Server

bash 复制代码
/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server

启动API Server

bash 复制代码
/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start api-server

启动Alert Server

bash 复制代码
/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start alert-server

验证安装

  1. 检查进程状态:
perl 复制代码
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. 格式示例:
ini 复制代码
registry.servers=zk1:2181,zk2:2181,zk3:2181

配置验证

  1. 使用zkCli.sh连接Zookeeper验证配置是否正确
bash 复制代码
./zkCli.sh -server zk1:2181
  1. 检查节点注册情况:
bash 复制代码
ls /your_app/nodes
  1. 时间同步配置

详细时间同步方案

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

NTP服务配置步骤

  1. 安装NTP服务:

    yum install -y ntp

  2. 配置NTP服务器(以阿里云NTP为例):

    ntpdate ntp.aliyun.com

  3. 设置自动同步:

bash 复制代码
# 设置开机启动
systemctl enable ntpd
# 启动服务
systemctl start ntpd
  1. 验证时间同步:
bash 复制代码
ntpq -p
date

备选时间同步方案

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

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

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

  3. 配置示例:

    ntpdate 192.168.1.100

时间同步注意事项

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

常见问题解决方案

数据库连接失败排查

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

Zookeeper连接问题排查

  1. 基础连接测试

    • 使用telnet测试连接:
    markdown 复制代码
    * telnet your-zookeeper-server 2181
    • 成功应显示"Connected to your-zookeeper-server"
  2. 日志检查

    • 查看Zookeeper日志:
    bash 复制代码
    tail -f /var/log/zookeeper/zookeeper.log
    • 常见问题:
      • 磁盘空间不足
      • 内存配置过低
      • 集群节点未正确配置

服务启动失败排查

  1. 日志分析

    • 检查主日志文件:
    bash 复制代码
    tail -n 100 /opt/dolphinscheduler/logs/dolphinscheduler-api.log
    • 检查各组件日志:
    c 复制代码
    /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配置:
    bash 复制代码
    echo $JAVA_HOME

    检查内存配置:

    xml 复制代码
    jmap -heap <pid>
  3. 端口冲突检查

    • 查看端口使用情况:
    css 复制代码
    netstat -tunlp | grep [port]
    • 默认端口:
      • Master Server: 5678
      • Worker Server: 1234
      • API Server: 12345

原文链接:blog.csdn.net/NIIT0532/ar...

相关推荐
神经星星4 分钟前
在线教程丨全球首个 MoE 视频生成模型!阿里 Wan2.2 开源,消费级显卡也能跑出电影级 AI 视频
人工智能·机器学习·开源
白鲸开源1 小时前
从日志到告警,带你用好 SeaTunnel 的事件监听能力
大数据·数据分析·开源
算家计算2 小时前
全新升级!Nexus-Gen V2本地部署教程:图像理解能力媲美GPT-4o
人工智能·开源·aigc
ajassi20002 小时前
开源 Arkts 鸿蒙应用 开发(十二)传感器的使用
linux·华为·开源·harmonyos
DevSecOps选型指南4 小时前
技术分享 | 悬镜亮相于“2025开放原子开源生态大会软件物料清单(SBOM)”分论坛
开源·开放原子·软件供应链安全工具·投毒情报中心·投毒情报
度假的小鱼4 小时前
【源力觉醒 创作者计划】对比与实践:基于文心大模型 4.5 的 Ollama+CherryStudio 知识库搭建教程
人工智能·开源·文心大模型·知识库搭建
我就是全世界5 小时前
ClickHouse vs PostgreSQL:数据分析领域的王者之争,谁更胜一筹?
clickhouse·postgresql·数据分析
请叫我小蜜蜂同学5 小时前
「源力觉醒 创作者计划」开源大模型重构数智文明新范式
重构·开源
巴里巴气13 小时前
zookeeper基本概念介绍
linux·分布式·zookeeper
小奏技术19 小时前
警惕开源项目PakePlus:一个正在偷取你GitHub token自动star fork的开源项目
开源