DolphinScheduler 3.1.0 海豚集群部署配置

news2024/12/23 11:07:40

文章目录

  • DolphinScheduler 3.1.0 部署过程
    • 1. JDK1.8环境准备
    • 2. 下载安装包
    • 3. 上传安装包并解压
    • 4. Dolphinscheduler用户要sudo权限,免密配置
      • 创建海豚用户并且给予sudo权限
      • 免密配置:服务器各台节点之间要互相免密
    • 5. 修改配置文件
    • 6. 修改元数据配置文件
    • 7. 安装MySQL数据库
    • 8. 登录并创建用户
    • 9. mysql建库
    • 10. 海豚初始化数据库
    • 11. 格式转换 dos2unix
    • 12. 安装dolphinscheduler集群
    • 13. HDFS上添加目录,给到指定用户(dolphinscheduler)
    • 14. 将hdfs-site,core-site传到api,alert,worker,master下(所有节点都要操作)
    • 15. 修改common.properties,同步至到api,alert,worker 的conf 目录下(所有节点都要操作)
    • 16. crontab认证配置格式如下(所有节点都配置)
    • 17. 替换hive相关包master/worker/api模块下的(所有节点都要替换)
    • 18. 注解掉 worker-server/bin目录下的 start.sh 中的信息(所有节点都要修改)
    • 19. 导入工作流需要修改mysql中的源id信息
    • 20. 海豚登录默认用户密码
    • 21. 资源中心模块
    • 22. 数据源配置
    • 23. 添加Sqoop脚本执行本地所需依赖包(所有节点都配置)
    • 24. 工作流迁移问题(依赖节点问题)
    • 25. 定时任务设置问题,需要替换包
    • 26. 告警配置


海豚框架官方文档

DolphinScheduler 3.1.0 部署过程

1. JDK1.8环境准备

三台服务器都要安装

2. 下载安装包

在这里插入图片描述


3. 上传安装包并解压

解压安装包
sudo tar -zxvf apache-dolphinscheduler-3.1.1-SNAPSHOT-bin.tar.gz -C /opt/module/
将安装目录的所属用户给配好的免密用户
sudo chown dolphinscheduler:dolphinscheduler -R apache-dolphinscheduler-3.1.1-SNAPSHOT-bin
切换用户
su - dolphinscheduler

4. Dolphinscheduler用户要sudo权限,免密配置

创建海豚用户并且给予sudo权限

 groupadd dolphinscheduler
 useradd -g dolphinscheduler dolphinscheduler

vim /etc/sudoers
配置如下内容,保存退出
dolphinscheduler    ALL=(ALL)       ALL
dolphinscheduler    ALL=(ALL)       NOPASSWD:NOPASSWD:ALL

免密配置:服务器各台节点之间要互相免密

生成当前用户的秘钥文件:ssh-keygen -t rsa

然后将生成的公钥文件内容写到目标机.ssh/authorized_keys文件中,OK
在这里插入图片描述

海豚所在每台节点之间都要互相免密
普通用户建立免密要注意权限 700,否则也不会成功
在这里插入图片描述


5. 修改配置文件

/opt/module/dolphinscheduler-3.1.0_standalone/bin/env
[dolphinscheduler@gateway02 bin]$ vim install.sh
ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
ips=${ips:-"cdh212,cdh213,cdh214"}
sshPort=${sshPort:-"22"}
masters=${masters:-"cdh214,cdh213"}
workers=${workers:-"cdh212:default,cdh213:default,cdh214:default"}
alertServer=${alertServer:-"cdh213"}
apiServers=${apiServers:-"cdh214"}
installPath=${installPath:-"/opt/module/dolphinscheduler-3.1.0_cluster"}
deployUser=${deployUser:-"dolphinscheduler"}
zkRoot=${zkRoot:-"/dolphinscheduler_3_1_0"}

6. 修改元数据配置文件

[dolphinscheduler@gateway02 env]$ vim dolphinscheduler_env.sh
# JAVA_HOME, will use it to start DolphinScheduler server
export JAVA_HOME= /dsg/public/jdk1.8.0_281/

# Database related configuration, set database type, username and password
export DATABASE=mysql
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://10.84.34.214:3306/dolphinscheduler_3_1_1?useUnicode=true&characterEncoding=UTF-8"
export SPRING_DATASOURCE_USERNAME=dolphinscheduler
export SPRING_DATASOURCE_PASSWORD=Dsg_1234


# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-Asia/Shanghai}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}

# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-cdh207:2181,cdh208:2181,cdh209:2181}

# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/cloudera/parcels/CDH/lib/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/etc/hadoop}
export SPARK_HOME1=${SPARK_HOME1:-/opt/cloudera/parcels/CDH/lib/spark}
# export SPARK_HOME2=${SPARK_HOME2:-/opt/soft/spark2}
# export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
export HIVE_HOME=${HIVE_HOME:-/opt/cloudera/parcels/CDH/lib/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/cloudera/parcels/FLINK/lib/flink}
# export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
# export SEATUNNEL_HOME=${SEATUNNEL_HOME:-/opt/soft/seatunnel}
# export CHUNJUN_HOME=${CHUNJUN_HOME:-/opt/soft/chunjun}

export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$SEATUNNEL_HOME/bin:$CHUNJUN_HOME/bin:$PATH

7. 安装MySQL数据库

  • 数据库版本支持mysql5.7,mysql8.0(建议安装8.0版本)。
  • 如有漏洞检测要求,需要将数据库小版本更新到最新。
  • 本文提供root用户安装和普通用户安装两种方式。
    • 现场尽量选择二进制安装,,因为可以选择data数据文件目录 。
    • mysql 8.0版本默认打开binlog日志,如安装dataxone单机版本可以关掉binlog,或设置日志定期删除,避免出现日志过大占用磁盘问题。

8. 登录并创建用户

1、 初始化数据库完成时,打印的日志最后一行会生成临时密码,使用临时密码登录。

mysql> alter user root@'localhost' identified with mysql_native_password by '新密码';
mysql> flush privileges;

2、 创建数据库dolphinscheduler用户。

$ /dolphinscheduler/liutt/mysql_db/bin/mysql -u root -p '新密码'
mysql> set global validate_password.policy='LOW';      #低强度密码,可选设置
mysql> set global validate_password.length=4;        #密码长度最低4位,可选设置
mysql> create user dolphinscheduler@'%' identified with mysql_native_password by 'xxxx';
mysql> create user dolphinscheduler@'localhost' identified with mysql_native_password by 'xxxx';

3、 为dolphinscheduler用户赋予访问数据库权限。

mysql> grant all privileges on *.* to dolphinscheduler@'localhost';
mysql> grant all privileges on *.* to dolphinscheduler@'%';
mysql> flush privileges;

4、 测试用dsg用户登录数据库。
$ mysql -h192.xxx.x.xx -P3307 -udolphinscheduler -p


9. mysql建库

create user dolphinscheduler@'%' identified with mysql_native_password by 'dolphinscheduler';
create user dolphinscheduler@'%' identified with mysql_native_password by 'dolphinscheduler';
create user dolphinscheduler@'172.xx.x.xxx' identified with mysql_native_password by 'dolphinscheduler';
grant all privileges on *.* to dolphinscheduler@'localhost';
grant all privileges on *.* to dolphinscheduler@'%';
grant all privileges on *.* to dolphinscheduler@'172.xx.x.xxx';
flush privileges;

10. 海豚初始化数据库

如果使用 MySQL 需要手动下载 mysql-connector-java 驱动 (8.0.16) 并移动到 DolphinScheduler 的每个模块的 libs 目录下,其中包括 :

  • api-server/libs
  • alert-server/libs
  • master-server/libs
  • worker-server/libs

不然会报错 Caused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver


11. 格式转换 dos2unix

命令:修改过的安装包(apache-dolphinscheduler-3.1.1-SNAPSHOT-bin.tar.gz)由于windows和linux格式不一致问题,需要修改格式。
sudo yum install -y dos2unix
将当前目录所有文件格式都转为unix:find . -type f -exec dos2unix {} ;
修改一个文件的格式命令:
直接在各节点海豚主目录下执行修改所有文件即可
最后执行 tools/bin/upgrade-schema.sh 如下图所示
在这里插入图片描述


12. 安装dolphinscheduler集群

bash ./bin/install.sh

13. HDFS上添加目录,给到指定用户(dolphinscheduler)

在HDFS上添加对应目录,并将权限给到海豚用户,并在对应配置文件中添加资源路径
在master/worker/api/alert conf/common. properties 文件中路径信息对应
在这里插入图片描述

14. 将hdfs-site,core-site传到api,alert,worker,master下(所有节点都要操作)

在这里插入图片描述


15. 修改common.properties,同步至到api,alert,worker 的conf 目录下(所有节点都要操作)

#本地工作目录,用于存放临时文件
data.basedir.path=/tmp/dolphinscheduler_3.1.1
resource.storage.type=HDFS
#资源文件存储路径
resource.storage.upload.base.path=/user/rtassets/dolphinscheduler_3.1.1
resource.aws.access.key.id=minioadmin
resource.aws.secret.access.key=minioadmin
resource.aws.region=cn-north-1
resource.aws.s3.bucket.name=dolphinscheduler
resource.aws.s3.endpoint=http://localhost:9000
resource.alibaba.cloud.access.key.id=<your-access-key-id>
resource.alibaba.cloud.access.key.secret=<your-access-key-secret>
resource.alibaba.cloud.region=cn-hangzhou
resource.alibaba.cloud.oss.bucket.name=dolphinscheduler
resource.alibaba.cloud.oss.endpoint=https://oss-cn-hangzhou.aliyuncs.com
# 如果存储类型为HDFS,需要配置拥有对应操作权限的用户
resource.hdfs.root.user=hdfs
resource.hdfs.fs.defaultFS=hdfs://nameservice1:8020
hadoop.security.authentication.startup.state=true
java.security.krb5.conf.path=/etc/krb5.conf
login.user.keytab.username=rtassets@CINDASC.COM
login.user.keytab.path=/home/rtassets/rtassets.keytab
kerberos.expire.time=2
resource.manager.httpaddress.port=8088
yarn.resourcemanager.ha.rm.ids=192.168.xx.xx,192.168.xx.xx
yarn.application.status.address=http://ds1:%s/ws/v1/cluster/apps/%s
yarn.job.history.status.address=http://ds1:19888/ws/v1/history/mapreduce/jobs/%s
datasource.encryption.enable=false
datasource.encryption.salt=!@#$%^&*
data-quality.jar.name=dolphinscheduler-data-quality-dev-SNAPSHOT.jar
#不清楚这个参数
support.hive.oneSession=false
sudo.enable=true
development.state=false
alert.rpc.port=50052
conda.path=/opt/anaconda3/etc/profile.d/conda.sh
task.resource.limit.state=false
ml.mlflow.preset_repository=https://github.com/apache/dolphinscheduler-mlflow
ml.mlflow.preset_repository_version="main"

16. crontab认证配置格式如下(所有节点都配置)

Crontab定时配置 :crontab -e
10 9,10 * * * kinit -kt /home/rtassets/rtassets.keytab rtassets@CINDASC.COM

17. 替换hive相关包master/worker/api模块下的(所有节点都要替换)

需要如下包:(如下所示的包是适配apache-dolphinscheduler-3.1.1-SNAPSHOT-bin.tar.gz)
连接数据源没问题,跑hiveClient不会出现版本不匹配问题
在这里插入图片描述

如下是包版本冲突出现的问题,需要修改如上图所示的包

版本冲突错误:
在这里插入图片描述


18. 注解掉 worker-server/bin目录下的 start.sh 中的信息(所有节点都要修改)

在这里插入图片描述
在这里插入图片描述


19. 导入工作流需要修改mysql中的源id信息

修改MySQL中的源端信息表 t_ds_resources
在这里插入图片描述
在海豚上导入工作流的时候,如果没有修改id,那么导入的工作流里面的不会识别资源目录,并且跑任务的时候也会识别不到id。(如下图是修改id后导入工作流自动识别,如果导入后没有识别资源目录,说明没有识别到id,运行起来有问题)

在这里插入图片描述


20. 海豚登录默认用户密码

admin
dolphinscheduler123

登陆后需要创建租户,用户。海豚租户名称需要和本地keytab认证的用户名称保持一致。租户对应下的用户名称没有要求。


21. 资源中心模块

在这里插入图片描述


22. 数据源配置

在这里插入图片描述

jdbc连接参数
{“KrbServiceName”:“hive”,“KrbAuthType”:“2”}


23. 添加Sqoop脚本执行本地所需依赖包(所有节点都配置)

如下图所示

否则执行回报如下错误


24. 工作流迁移问题(依赖节点问题)

由于生产环境资源问题,ods层工作流之间配置成串行执行,包括dwd层的也依赖ods层,目前海豚在工作流导出再导如过程,依赖节点元数据id会发生改变,导致从测试环境导出的工作流再导入生产环境,无法运行起来,所以在生产环境中的DEPENDENT类型节点需要手动再设置一次

在这里插入图片描述


25. 定时任务设置问题,需要替换包

为了解决定时任务在定义了参数以后,不能调度的问题, 替换掉了每台服务器各个模块下的 jar:dolphinscheduler-service-3.1.1-SNAPSHOT.jar

26. 告警配置

告警是在213上布置的,所以在213下设置相关包即可,否则会在web页面告警实例中出现无法找到告警组件的情况。
需要如下图所示包:所属用户所属组改成海豚用户
在这里插入图片描述

Admin用户下,创建告警实例
在这里插入图片描述

然后创建告警组,选中该实例
在这里插入图片描述

然后在运行时选择告警租和策略

在这里插入图片描述

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

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

相关文章

设计模式第6式:命令模式

前言 命令模式关注这样一种场景&#xff1a;指令发布者无需关注指令是怎么执行的&#xff0c;只需要指定具体的执行者&#xff0c;具体的指令由执行者来完成。命令模式将指令发布动作和指令执行动作解耦。 我在刚开始学习命令模式的时候&#xff0c;比较困惑它的使用场景。它…

【JavaGuide面试总结】高性能篇

【JavaGuide面试总结】高性能篇1.静态资源是如何被缓存到 CDN 节点中的&#xff1f;2.如何找到最合适的 CDN 节点&#xff1f;3.如何防止资源被盗刷&#xff1f;1.静态资源是如何被缓存到 CDN 节点中的&#xff1f; 你可以通过预热的方式将源站的资源同步到 CDN 的节点中。这样…

docker安装达梦8,并且远程连接数据库

官方技术文档地址&#xff1a;https://eco.dameng.com/document/dm/zh-cn/start/index.html 不能直接拉取达梦数据库的镜像&#xff0c;需要去官方提供的下载地址下载镜像&#xff0c;上传到服务器 下载地址&#xff1a;https://eco.dameng.com/download/ 下载完成之后确认下…

【黑马SpringCloud(3)】Docker镜像容器操作Docker-Compose的使用

Docker初识DockerDocker与虚拟机的区别Docker架构DockerHubDocker镜像操作Docker容器操作数据卷自定义镜像镜像结构Dockerfile构建Java项目基于java:8-alpine镜像&#xff0c;构建java项目集群部署微服务Docker-Compose镜像仓库搭建私有镜像仓库Docker安装&#xff1a;https://…

Windows Server 2008 系统加固(2)

实验简介 实验所属系列&#xff1a; 系统安全 实验对象&#xff1a; 本科/专科信息安全专业 相关课程及专业&#xff1a; 服务器安全 实验时数&#xff08;学分&#xff09;&#xff1a;2学时 实验类别&#xff1a; 实践实验类预备知识 Windows server 2008 是微软公司的…

4 -【Faster R-CNN】之 RPN Head 代码精读

【Faster R-CNN】之 RPN Head 代码精读1、前言2、RPN Head 网络结构3、代码4、相关问题1、前言 在上一篇文章 【Faster R-CNN】之 backbone 代码精读 中&#xff0c;我们学习了创建 backbone&#xff0c;并将 batch 中的图片通过backbone 获得了 feature maps。 batch 的 feat…

linux的shell命令中grep命令返回值问题

linux的shell命令中grep命令返回值问题如何查看上一个命令退出状态&#xff1f;$?的作用set -e的作用一个代码例子shell脚本中的错误示例如何查看上一个命令退出状态&#xff1f; $?的作用 $? 是一个特殊变量&#xff0c;用来获取上一个命令的退出状态&#xff0c;或者上一…

【C语言练习】杨氏矩阵、杨辉三角

目录一&#xff1a;杨氏矩阵&#x1f43b;何为杨氏矩阵&#xff1f;&#x1f43b;题目描述&#xff1a;&#x1f43b;思路一&#xff1a;&#x1f43b;思路二&#xff1a;二&#xff1a;杨辉三角&#x1f43b;何为杨辉三角&#xff1f;&#x1f43b;题目描述&#xff1a;&#…

python数据结构(四):dict(字典)

一、定义字典 1、使用花括号&#xff0c;可以直接定义字典 使用一对大括号{}&#xff0c;数据是成对存在的&#xff0c;每一行冒号左边的是键&#xff08;key&#xff09;,右边的是值&#xff08;value&#xff09;&#xff0c;称作键值对&#xff0c;以逗号分隔开。键是不能重…

Fennec:针对类Unix操作系统的多功能事件应急响应工具箱

关于Fennec Fennec是一个针对类Unix操作系统的多功能事件应急响应工具箱&#xff0c;Fennec基于Rust开发&#xff0c;可以帮助广大研究人员在类Unix操作系统上实现网络安全事件应急响应。除此之外&#xff0c;Fennec还支持广大研究人员自行开发相关的配置文件&#xff0c;并增…

第一章.感知机

第一章.感知机 1.感知机的简介 1).简介 感知机接收多个输入信号&#xff0c;输出一个信号。感知机的信号只有"流/不流"&#xff08;1/0&#xff09;两种取值[0:对应不传递信号&#xff0c;1:对应传递信号] 2).感知机图像描述的两种方式 ①.第一种方式&#xff1a; …

css3 transform(变形) 实战示例

1--利用transform实现居中效果 <div class"center">.... </div> .center{text-align: center;background-color: #fff;border-radius: 20px;width: 300px;height: 350px;position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%); } 让…

第一章 隐私计算科普解读

前言 提醒&#xff1a;全文10千字&#xff0c;预计阅读时长15分钟&#xff1b;读者&#xff1a;对隐私计算感兴趣的小伙伴&#xff1b;目的&#xff1a;读者利用15~30 分钟对本文沉浸式阅读理解&#xff0c;能够掌握隐私计算 80% 的概念&#xff1b;关键词 &#xff1a;隐私计算…

全网最细------爬取4k付费高清大图(免费下载再也不是梦)

本次案例将教大家免费爬取4k高清付费大图&#xff0c;即使你是爬虫新手&#xff0c;也可以食用本次文章实现你的免费下载梦,话不多说&#xff0c;先看效果 网站视图: 看到这些图片你是否怦然心动&#xff0c;跟着我一起看下去. 下图是图片下载后保存的目录 一.思路分析 首…

QEMU安装Windows 10的完整过程

零、环境介绍 宿主机&#xff1a; Ubuntu 22.04.1 LTS Windows 10镜像&#xff1a; Windows10_20H2.iso QEMU版本&#xff1a; qemu-img version 7.1.0 Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers 一、安装过程 1. 创建镜像文件 使用qe…

7、标识重复个案

目录 一、导入或打开数据 二、选择“数据”菜单下的“标识重复个案”&#xff0c;弹出相应对话框 三、在上个步骤的基础上&#xff0c;将左边的所有变量都移至右边“定义匹配个案的依据”中&#xff0c;其他的选项没有特殊要求的可保持默认&#xff0c;单击“确定”即完成。…

Cookie 和 Session 详解 及实现用户登陆功能

Cookie是啥? 浏览器提供的在客户端存储数据的一种机制。(由于浏览器禁止了网页中的代码直接访问磁盘的文件因此要想再网页中实现数据的持久化存储、就可以使用Cookie这样的机制 Cookie 里面存什么? 键值对结构.键和值都是程序猿自定义的~Cookie从哪里来? 服务器返回响应…

【Java|golang】2325. 解密消息

给你字符串 key 和 message &#xff0c;分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下&#xff1a; 使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。 将替换表与普通英文字母表对齐&#xff0c;形成对照表。 按照对照表 替换 mess…

【23 Java后端】小米

一、JavaSE JaveEE —— Java 数据结构 —— 集合类 1. HashMap 底层&#xff0c;链表与红黑树转换原因 JDK 1.7 HashMap 底层使用 “数组链表” 实现&#xff0c;数组为主体&#xff0c;链表为了解决 哈希冲突JDK 1.8 HashMap 底层使用 “数组链表红黑树” 实现 当链表长度…

bootstrap是什么,bootstrap如何使用

bootstrap是什么 Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架&#xff0c;用于开发响应式布局、移动设备优先的 WEB 项目。 使用bootstrap 下载地址