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

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 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
# 下载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. 下载和解压
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
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
  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 -p
date

备选时间同步方案

如果无法连接外网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 --permanent
firewall-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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/91560.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/91560.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安宝特案例丨AR+AI赋能轨道交通制造:破解人工装配难题的创新实践

在轨道交通装备制造领域&#xff0c;小批量、多品种的生产特性与高度依赖人工经验的作业模式长期并存&#xff0c;导致效率瓶颈与质量隐患并存。安宝特通过AR&#xff08;增强现实&#xff09;AI&#xff08;人工智能&#xff09;技术融合&#xff0c;在螺栓紧固、内饰装配、制…

基于LSTM-GRU混合网络的动态解析:美联储维稳政策与黄金单日跌1.5%的非线性关联

摘要&#xff1a;本文通过构建多因子量化模型&#xff0c;结合自然语言处理&#xff08;NLP&#xff09;技术对美联储政策文本进行情绪分析&#xff0c;解析经济数据、市场情绪及宏观环境对黄金价格的复合影响机制。研究基于LSTM时间序列预测框架&#xff0c;验证关键事件对金价…

RabbitMQ消息确认机制有几个confirm?

RabbitMQ 的消息确认机制中&#xff0c;“confirm” 这个词主要出现在两个关键环节&#xff0c;对应两种确认&#xff1a;✅ 两种 confirm&#xff08;确认&#xff09;机制确认类型触发方说明Publisher Confirm&#xff08;生产者确认&#xff09;生产者 → Broker消息是否成功…

vue项目启动时因内存不足启动失败

可以使用increase-memory-limit跟npm install cross-env插件npm install increase-memory-limit npm install cross-env安装后需要在package.json文件中加入如下代码"scripts": {"fix-memory-limit": "cross-env LIMIT3072 increase-memory-limit&quo…

WEditor:高效的移动端UI自动化脚本可视化编辑器

WEditor&#xff1a;高效的移动端UI自动化脚本可视化编辑器前言一、核心特性与优势1. 可视化操作&#xff0c;降低门槛2. 跨平台支持3. 丰富的控件层级展示4. 快捷键高效操作5. 开源可扩展二、安装与环境配置1. 环境准备Android 设备用户需额外准备ADB 安装与配置步骤2. 安装依…

面试高频题 力扣 283.移动零 双指针技巧 原地修改 顺序保持 C++解题思路 每日一题

目录零、题目描述一、为什么这道题值得你花几分钟看懂&#xff1f;二、题目拆解&#xff1a;提取其中的关键点三、明确思路&#xff1a;双指针的巧妙配合四、算法实现&#xff1a;双指针的代码演绎五、C代码实现&#xff1a;一步步拆解代码拆解时间复杂度和空间复杂度六、实现过…

arrch64架构下调用pyvista报错

arrch64架构下调用pyvista报错 问题 python编程使用到了pyvista&#xff0c;使用conda新建了环境&#xff0c;但是使用的时候报错 Traceback (most recent call last):File "/home/ztl/MGGBSAR/src/trans_las_3D.py", line 16, in <module>import pyvista as p…

功能强大编辑器

时间限制&#xff1a;1秒 内存限制&#xff1a;128M题目描述你要帮助小可创造一个超级数字编辑器&#xff01;编辑器依旧运行在Linux下&#xff0c;因此你只能通过指令去操控他。指令有五种&#xff1a; In X 表示在光标左侧插入一个数字 Del 表示删除光标左侧一个数字 …

【力扣】面试经典150题总结01-数组/字符串

1.合并两个有序数组&#xff08;简单&#xff09;要求直接在num1上操作&#xff0c;已经预留了空间&#xff0c;所以直接倒着从大到小插入。当其中一个数组遍历完&#xff0c;就把另一个数组剩余的部分插入。2.移除元素&#xff08;简单&#xff09;要求原地移除数组中所有val元…

基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(一)

目录 一、OLAP 与 Impala 简介 1. OLAP 简介 2. Impala 简介 &#xff08;1&#xff09;Impala 是什么 &#xff08;2&#xff09;为什么要使用 Impala &#xff08;3&#xff09;适合 Impala 的使用场景 &#xff08;4&#xff09;Impala 架构 &#xff08;5&#xff…

PyTorch L2范数详解与应用

torch.norm 是什么 torch.norm(dot_product, p=2, dim=-1) 是 PyTorch 中用于计算张量 L2 范数的函数, 1. 各参数解析 dot_product:输入张量,在代码中形状为 [batch_size, seq_len](每个元素是 token 隐藏状态与关注向量的点积)。 p=2:指定计算L2 范数(欧几里得范数)…

循环神经网络RNN原理精讲,详细举例!

第一部分&#xff1a;为什么需要RNN&#xff1f;在了解RNN是什么之前&#xff0c;我们先要明白它解决了什么问题。传统的神经网络&#xff0c;比如我们常见的前馈神经网络&#xff08;Feedforward Neural Network&#xff09;或者卷积神经网络&#xff08;CNN&#xff09;&…

如何用USRP捕获手机信号波形(中)手机/基站通信

目录&#xff1a; 如何用USRP捕获手机信号波形&#xff08;上&#xff09;系统及知识准备 如何用USRP捕获手机信号波形&#xff08;中&#xff09;手机/基站通信 如何用USRP捕获手机信号波形&#xff08;下&#xff09;协议分析 四、信号捕获结果 4.1 时域波形 我怀疑下面…

(LeetCode 面试经典 150 题 ) 155. 最小栈 (栈)

题目&#xff1a;155. 最小栈 思路&#xff1a;栈&#xff0c;时间复杂度0(n)。 在插入栈元素val时&#xff0c;同时加入一个字段&#xff0c;维护插入当前元素val时的最小值即可。 C版本&#xff1a; class MinStack { public:stack<pair<int,int>> st;MinStac…

算法:动态规划 洛谷 线性状态动态规划 P1439【模板】最长公共子序列

思路&#xff1a;因为n<1e5,所以不能O&#xff08;n方&#xff09;的复杂度&#xff0c;所以常规的计算最长公共子序列的方法就不行&#xff0c;不过这题有个特点&#xff0c;就是a&#xff0c;b都是排列&#xff0c;那么a有的数b也有&#xff0c;并且数量还一样&#xff0c…

Linux跑后台服务

vi /usr/lib/systemd/system/my_service.service文件配置内容&#xff1a;[Unit] Descriptionmyprogram Afternetwork.target[Service] Userroot Typesimple ExecStart/home/userabc/programs/myprogram/myprogram.out Restarton-failure WorkingDirectory/home/userabc/progra…

Linux基础练习题1

1、配置网络地址 请为此虚拟机配置以下网络参数&#xff1a; 1&#xff09;主机名&#xff1a;chenyu.example.com &#xff08;将chenyu改成自己名字的全拼&#xff09; 2&#xff09;IP 地址&#xff1a;192.168.100.100/24 3&#xff09;默认网关&#xff1a;192.168.100.25…

# 前端开发规范基础汇总

前端开发规范基础汇总 命名规范 常用的命名规范 camelCase&#xff08;小驼峰式命名法 —— 首字小写&#xff09;PascalCase&#xff08;大驼峰式命名法 —— 首字大写&#xff09;snake_case&#xff08;下划线命名法&#xff09;kebab-case&#xff08;短横线命名法&…

jQuery UI Tabs切换功能实例

jQuery UI Tabs切换功能使用jQuery UI实现Tabs切换功能的方法。代码示例创建了一个包含四个标签页&#xff08;按钮A-D&#xff09;的界面&#xff0c;每个标签对应不同的内容区域。通过引入jQuery UI库并调用tabs()方法实现基本切换功能。文章还提到可以通过配置选项修改默认行…

关于为什么stm32的开漏输出可以读取引脚的数值

在使用软件模拟iic通信时&#xff0c;要将SDA线配置为开漏输出&#xff0c;既然配置为开漏输出&#xff0c;为什么程序还可以通过SDA线读取数据&#xff1f;查阅手册&#xff1a;只说了结论&#xff1a;在开楼模式下&#xff0c;对输入数据寄存器的读访问可以得到IO状态来看输出…