dolphinscheduler集群部署

Posted 东哥加油!!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dolphinscheduler集群部署相关的知识,希望对你有一定的参考价值。

1、环境准备

jdk安装
/usr/local/jdk1.8.0_361/bin/java
mysql安装
create database dolphinscheduler default charset utf8;

zookeeper安装

启动zookeeper:

./bin/zkServer.sh  start

 

mysql-connector-java-5.1.49.jar 需要放到每个组件的Lib目录下

2、准备 DolphinScheduler 启动环境

2.1、配置用户免密及权限

useradd dolphinscheduler

#/etc/sudoers 文件修改
%dolphinscheduler ALL=(ALL) NOPASSWD: ALL

chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-3.1.2-bin.tar.gz

#配置3台机器免密登录针对用户dolphinscheduler

#3台机器都要执行以下命令

ssh-keygen -t rsa
cd .ssh
ssh-copy-id -i id_rsa.pub dolphinscheduler@tidb1
ssh-copy-id -i id_rsa.pub dolphinscheduler@tidb2
ssh-copy-id -i id_rsa.pub dolphinscheduler@tidb3

 

部署Apache DolphinScheduler 伪集群部署

【部署】Apache DolphinScheduler(海豚) 伪集群部署(Pseudo-Cluster)

Standalone极速体验版

Standalone 仅适用于 DolphinScheduler 的快速体验.

如果你是新手,想要体验 DolphinScheduler 的功能,推荐使用Standalone方式体检。如果你想体验更完整的功能,或者更大的任务量,推荐使用伪集群部署。如果你是在生产中使用,推荐使用集群部署或者kubernetes

注意: Standalone仅建议20个以下工作流使用,因为其采用 H2 Database, Zookeeper Testing Server,任务过多可能导致不稳定

DolphinScheduler 伪集群部署

伪集群部署目的是在单台机器部署 DolphinScheduler 服务,该模式下master、worker、api server、logger server都在同一台机器上

前置准备工作

伪分布式部署 DolphinScheduler 需要有外部软件的支持

  1. JDK:下载JDK (1.8+),并将 JAVA_HOME 配置到以及 PATH 变量中。如果你的环境中已存在,可以跳过这步。
  2. 二进制包:在下载页面下载 DolphinScheduler 二进制包
  3. 数据库:PostgreSQL (8.2.15+) 或者 MySQL (5.7+),两者任选其一即可,如 MySQL 则需要 JDBC Driver 8.0.16
  4. 注册中心:ZooKeeper (3.4.6+)

注意: DolphinScheduler 本身不依赖 Hadoop、Hive、Spark,但如果你运行的任务需要依赖他们,就需要有对应的环境支持

本地部署环境

  1. 虚拟软件:Vmware15 安装指南
  2. 操作系统:Ubuntu 11.3.0-1ubuntu1~22.04 安装指南
  3. JDK:jdk-8u231-linux-x64 安装指南
  4. Zookeeper:apache-zookeeper-3.5.7-bin 安装指南
  5. DolphinScheduler:apache-dolphinscheduler-2.0.5-bin 下载地址
  6. 数据库:mysql Ver 8.0.31-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu)) 安装指南

准备 DolphinScheduler 启动环境

配置用户免密及权限

  • 官网原话: 因为任务执行服务是以 sudo -u linux-user 切换不同 linux 用户的方式来实现多租户运行作业,所以部署用户需要有 sudo 权限,而且是免密的。 原话出处
  • 我的选择: 我使用的root用户,不需要这一步。 Ubuntu登录root

配置机器SSH免密登陆

由于安装的时候需要向机器发送资源,所以要求机器能实现SSH免密登陆。配置免密登陆的步骤如下

## su dolphinscheduler 我用root不需要这步

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

注意: 配置完成后,可以通过运行命令 ssh localhost 判断是否成功,如果不需要输入密码就能ssh登陆则证明成功

启动zookeeper

进入 zookeeper 的安装目录,将 zoo_sample.cfg 配置文件复制到 conf/zoo.cfg,并将 conf/zoo.cfg 中 dataDir 中的值改成 dataDir=./tmp/zookeeper

# 启动 zookeeper
zkServer.sh start

检查一下时候成功启动

jps	
-------------------------------------------
root@ubuntu204:~# jps
11622 QuorumPeerMain   #出现这个进程代表启动成功
35131 Jps
root@ubuntu204:~# 

下载并解压

# 1 创建安装目录
mkdir /opt/DolphinScheduler

# 2 将DolphinScheduler赋予给escheduler用户
# chown -R escheduler:escheduler /opt/DolphinScheduler   ##我用root用户不用这个

# 3 下载二进制包,或者通过SFTP上传二进制包
cd /opt/DolphinScheduler

wget https://www.apache.org/dyn/closer.lua/dolphinscheduler/2.0.5/apache-dolphinscheduler-2.0.5-bin.tar.gz

#4解压
tar -zxvf apache-dolphinscheduler-2.0.5-bin.tar.gz

mv apache-dolphinscheduler-2.0.5-bin dolphinscheduler2.0.5

cd dolphinscheduler2.0.5/

修改相关配置

完成了基础环境的准备后,在运行部署命令前,还需要根据环境修改配置文件。配置文件在路径在conf/config/install_config.conf下,一般部署只需要修改INSTALL MACHINE、DolphinScheduler ENV、Database、Registry Server部分即可完成部署,下面对必须修改参数进行说明

# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 因为是在单节点上部署master、worker、API server,所以服务器的IP均为机器IP或者localhost
ips="localhost"
masters="localhost"
workers="localhost:default"
alertServer="localhost"
apiServers="localhost"
pythonGatewayServers="localhost"

# DolphinScheduler安装路径,如果不存在会创建
installPath="/opt/Dolphinscheduler/data/dolphinscheduler"

# 部署用户,填写在 **配置用户免密及权限** 中创建的用户
deployUser="root"

# ---------------------------------------------------------
# DolphinScheduler ENV
# ---------------------------------------------------------
# JAVA_HOME 的路径,是在 **前置准备工作** 安装的JDK中 JAVA_HOME 所在的位置
javaHome="opt/jdk/jdk1.8"

# ---------------------------------------------------------
# Database
# ---------------------------------------------------------
# 数据库的类型,用户名,密码,IP,端口,元数据库db。其中 DATABASE_TYPE 目前支持 mysql, postgresql, H2
# 请确保配置的值使用双引号引用,否则配置可能不生效
DATABASE_TYPE="mysql"
SPRING_DATASOURCE_URL="jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8"
# 如果你不是以 dolphinscheduler/dolphinscheduler 作为用户名和密码的,需要进行修改
SPRING_DATASOURCE_USERNAME="dolphinscheduler"
SPRING_DATASOURCE_PASSWORD="dolphinscheduler"

# ---------------------------------------------------------
# Registry Server
# ---------------------------------------------------------
# 注册中心地址,zookeeper服务的地址
registryServers="localhost:2181"

初始化数据库

DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL,如果使用 MySQL 则需要手动下载 mysql-connector-java 驱动 (8.0.16) 并移动到 DolphinScheduler 的 lib目录下。下面以 MySQL 为例,说明如何初始化数据库

#登录
mysql -uroot -p

#创建数据库
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

#创建用户
mysql> create user 'dolphinscheduler'@'%' identified by 'dolphinscheduler';

#用户授权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'dolphinscheduler'@'%';

#刷新
mysql> flush privileges;

完成上述步骤后,您已经为 DolphinScheduler 创建一个新数据库,现在你可以通过快速的 Shell 脚本来初始化数据库

sh script/create-dolphinscheduler.sh

安装并启动 DolphinScheduler

使用上面创建的部署用户运行以下命令完成部署,部署后的运行日志将存放在 logs 文件夹内

sh install.sh

注意: 第一次部署的话,可能出现 5 次sh: bin/dolphinscheduler-daemon.sh: No such file or directory相关信息,次为非重要信息直接忽略即可

登录 DolphinScheduler

浏览器访问地址 http://localhost:12345/dolphinscheduler 即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123

启停服务

# 一键停止集群所有服务
sh ./bin/stop-all.sh

# 一键开启集群所有服务
sh ./bin/start-all.sh

# 启停 Master
sh ./bin/dolphinscheduler-daemon.sh stop master-server
sh ./bin/dolphinscheduler-daemon.sh start master-server

# 启停 Worker
sh ./bin/dolphinscheduler-daemon.sh start worker-server
sh ./bin/dolphinscheduler-daemon.sh stop worker-server

# 启停 Api
sh ./bin/dolphinscheduler-daemon.sh start api-server
sh ./bin/dolphinscheduler-daemon.sh stop api-server

# 启停 Logger
sh ./bin/dolphinscheduler-daemon.sh start logger-server
sh ./bin/dolphinscheduler-daemon.sh stop logger-server

# 启停 Alert
sh ./bin/dolphinscheduler-daemon.sh start alert-server
sh ./bin/dolphinscheduler-daemon.sh stop alert-server

# 启停 Python Gateway
sh ./bin/dolphinscheduler-daemon.sh start python-gateway-server
sh ./bin/dolphinscheduler-daemon.sh stop python-gateway-server

快速上手

  • 喜欢看视频的伙伴可以参见手把手教你如何《快速上手 Apache DolphinScheduler 教程》

  • 管理员用户登录
    地址:http://localhost:12345/dolphinscheduler 用户名密码:admin/dolphinscheduler123

  • 创建队列

  • 创建租户

  • 创建普通用户

  • 使用普通用户登录
    点击右上角用户名“退出”,重新使用普通用户登录。

  • 项目管理->创建项目->点击项目名称

  • 点击工作流定义->创建工作流定义->上线工作流定义

  • 运行工作流定义->点击工作流实例->点击工作流实例名称->双击任务节点->查看任务执行日志

部署遇到的问题

Source : commond not found
Text-to-HTML conversion tool
Zookeeper connect time out
John
Luke
localhost:2181
John
Luke

参考文章 : https://dolphinscheduler.apache.org/zh-cn/docs/2.0.5/guide/quick-start

以上是关于dolphinscheduler集群部署的主要内容,如果未能解决你的问题,请参考以下文章

dolphinscheduler集群部署

Dolphinscheduler1.3.8集群部署

DolphinScheduler 3.1.0 海豚集群部署配置

数仓工具——DolphinScheduler任务调度工具

最新版海豚调度dolphinscheduler-3.1.3安装部署详细教程

使用DolphinScheduler调度Python任务