Apache DolphinScheduler 【安装部署】
前言
今天来学习一下 DolphinScheduler ,这是一个任务调度工具,现在用的比较火爆。

1、安装部署
1.0、准备工作
1.0.1、集群规划
dolphinscheduler 比较吃内存,所以尽量给 master 节点多分配一点内存,桌面和虚拟机里能关的应用程序就关了
| hadoop102 | master,worker |
| hadoop103 | worker |
| hadoop104 | worker |
这里的 master 原本应该装至少两台(确保 HA),但是这里只是学习使用,考虑到内存的问题就只装一台了。
1.0.2、前置工作
三台节点全部安装 JDK1.8并配置环境变量、MySQL5.7+、Zookeeper3.4.6+、psmisc
# 没装 psmisc 的用下面的命令在三台节点都装一遍
sudo yum install -y psmisc
1.0.3、解压
注意:这里解压不是直接解压到安装目录,这只是一个临时目录,我们待会会用 dolphinscheduler 自带的一键部署脚本去分布式安装。这里需要把它安装在一个临时目录并进行一些配置。
# 直接解压到当前目录 /opt/software
tar -zxvf apache-dolphinscheduler-2.0.5-bin
手欠?
如果安装过程中手欠不小心用 root 用户上传的软件包,需要重新修改一下软件包或者已安装的目录的所有者和所属组,不然后患无穷(安装或者启动过程得反复输入用户密码!):
chown -R 用户名 dolphinscheduler的安装目录chgrp -R :用户组 dolphinscheduler的安装
1.1、创建数据库及用户
# 创建数据库
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 创建用户
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
# 如果报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 就执行下面的配置:
# 设置密码强度为 0 (只校验长度,强度1和2还会校验密码内容)
set global validate_password_policy=0;
# 设置密码最低长度
set global validate_password_length=4;
# 赋予 dolphinscheduler 用户操作 dolphinscheduler 数据库的权限
grant all privileges on dolphinscheduler.* to 'dolphinscheduler'@'%';
# 刷新权限
flush privileges;
1.2、配置一键部署脚本
这里配置省略,配置还是比较简单的,看着注释就可以自己配置。
1.3、初始化数据库
拷贝 mysql 驱动(我用的 8.0.16版本的)到 dolphinscheduler lib 目录下,虽然我的数据库是 5.7.31 但是这个驱动是向下兼容的。
script/create-dolphinscheduler.sh
1.4、一键部署
先启动 Zookeeper 和 Hadoop,然后:
./install.sh
安装好之后,dolphinscheduler 自动就启动了,可以跳过步骤 5 ,直接去看 Web UI。
1.5、启动/停止 dolphinScheduler 服务
注意:尽量在启动的时候使用 ./ 标识是当前路径下的 start-all.sh 或者 stop-all.sh 防止和 hadoop 的启停命令混淆!
./start-all.sh
./stop-all.sh
bin 目录下还有一个脚本叫做 dolphinscheduler-daemon.sh ,可以直接调用查看它的使用方法:
[lyh@hadoop102 bin]$ ./dolphinscheduler-daemon.sh
Usage: dolphinscheduler-daemon.sh (start|stop|status) <api-server|master-server|worker-server|alert-server|standalone-server|python-gateway-server>
我们可以通过参数来指定启动或者关闭某个特定的服务:
./dolphinscheduler-daemon.sh start master-server
1.6、查看 UI 界面
打开:
http://hadoop102:12345/dolphinscheduler


2、基本使用
2.1、安全配置中心
2.1.1、Yarn 队列管理

这里地方有一个 “创建队列” 按钮,但是它并不会帮我们在 Yarn 中创建队列,而是在这里创建一个队列供我们的任务指定(在 Yarn 上运行任务需要指定在哪个队列里跑),这里创建的队列必须对应 Yarn 上得存在,不然会报错!
只有 MR 、Spark 、Flink 等程序需要 “队列” 参数才使用。
2.1.2、租户管理
能够为多个用户提供相互隔离的资源服务就称为多租户的服务(比如我们的 HDFS、Yarn 都是可以被多个用户一起使用的) 。DolphinScheduler 在帮我们向 Yarn 中提交任务的时候也需要有身份(用户)才能提交。
注意:这里租户指的是我们 DolphinScheduler 的 Worker 节点的租户,因为最终任务是 Worker 去提交任务的,每个 Worker 在不同的节点上,所以将来提交任务的时候,该 Worker 节点得有该用户才行。
如果提交任务后,发现并没有这个 linux 用户,默认会任务失败。但是也可以通过配置 workers.properties 文件中的 worker.ernant.auto.create=true(默认为 false)实现当 linux 中不存在该用户时,自动创建该用户。这个参数要求启动 worker 进程的用户具备免密运行 sudo 命令的权限。

2.1.3、用户管理
用户对应的是 DolphinScheduler 的用户,用于登录 DolphinScheduler。用户分为管理员和普通用户两种。
管理员有授权和用户管理的权限,但是没有创建项目和工作流定义的操作权限。
普通用户可以创建项目和对工作流定义的创建、编辑、执行等操作。
注意:当前的安全中心的配置,只能管理员用户来操作!

2.1.4、告警组管理和告警实例管理
关系:一个告警组可以包含多个告警实例。
一个告警实例中包含一个接受告警信息的人的信息,比如微信、钉钉、飞书、邮件等。一个告警组包含很多个告警实例,所以当我们的任务出现问题的时候,该任务指定的告警组的所有告警实例都会收到消息。

2.1.5、Worker 分组管理
一个 Worker 可以属于不同的分组(注意:这里的组名 default 和我们的Yarn没有半毛钱关系,它只是在我们没有指定组名时的一个默认分组,就像我们的Kafka消费者组)。

同样,我们也可以通过设置 worker.properties 配置文件来添加或修改 worker 组。
2.1.6、环境管理

这里指的是 Worker 运行任务时的环境,比如我们在执行一个 Hive 命令的时候(hive -e insert overwrite table xxx select xxx),我们的脚本需要导入环境变量,不然找不到这个命令(比如 hive 脚本需要导入 hive 的bin目录到 PATH 中)。
这样,一个 worker 组就有了多个不同环境的 worker 节点,到时候跑任务的时候我们就可以直接找一个具有该执行所需环境的节点即可。
2.1.7、令牌管理
令牌用于通过接口访问 DolphinScheduler 各项服务时的用户验证。我们普通用户通过 UI 访问 DolphinScheduler 的时候不需要令牌。但是如果通过第三方接口去访问就必须使用令牌了。

相关文章:
Apache DolphinScheduler 【安装部署】
前言 今天来学习一下 DolphinScheduler ,这是一个任务调度工具,现在用的比较火爆。 1、安装部署 1.0、准备工作 1.0.1、集群规划 dolphinscheduler 比较吃内存,所以尽量给 master 节点多分配一点内存,桌面和虚拟机里能关的应用…...
【随笔】Git -- 高级命令(上篇)(六)
💌 所属专栏:【Git】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…...
java中Date类,SimpleDateFormat类和Calendar类
Date类 public Date() 创建一个Date对象,代表的是系统当前此刻的日期时间 public Date(long date) Constructs a Date object using the given milliseconds time value. 把时间毫秒值转变成Date日期对象 public void setTime(long date) Sets an existing Date ob…...
施耐德 PLC 控制系统 产品 + 软件总体介绍 2020
参考 2020.7 官方说明视频:https://www.bilibili.com/video/BV1Mi4y1G7Qc/ 总体说明 施耐德作为工业控制界巨头(公认的几大巨头:西门子、AB、施耐德),PLC 控制器产品线很庞大,涵盖了高中低的完整产品线&…...
UniApp 应用发布到苹果商店指南
🚀 想要让你的 UniApp 应用在苹果商店亮相吗?别着急,让我来带你一步步完成这个重要的任务吧!在这篇博客中,我将详细介绍如何将 UniApp 应用顺利发布到苹果商店,让你的应用跻身于苹果生态之中。 引言 &…...
KamaCoder 46. 携带研究材料(第六期模拟笔试)
题目描述 小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的空间࿰…...
MySQL的基本操作(超详细)
👨💻作者简介:👨🏻🎓告别,今天 📔高质量专栏 :☕java趣味之旅 📔(零基础)专栏:MSQL数据库 欢迎🙏点赞&…...
自动驾驶之心规划控制笔记
Search-based Path Planning Methods Path Finding Problem 一般来说指标有距离,耗费时间,能量,或者多目标。 左图是拓扑地图,蓝色的点就是顶点,绿色的线是连接关系。最后得到的是一个从哪里走的一个最优,并非精细解。 右图是栅格地图,这个搜索出来的是在相对分辨率比…...
Linux中部署Java jar 包 shell 脚本
Linux中部署Java jar 包 shell 脚本 #!/bin/bash set -e# 基础 # export JAVA_HOME/work/programs/jdk/jdk1.8.0_181 # export PATHPATH$PATH:$JAVA_HOME/bin # export CLASSPATH$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarDATE$(date %Y%m%d%…...
auto.js v1.4.4 实现自动打卡
一、使用场景 所在公司的打卡软件可以单独变成一个可以点击的APP,所以只需要实现以下步骤: 自动解锁屏幕返回主屏幕并打卡锁定屏幕需要的环境: 手机端下载并且安装 auto.js v4.1.1 PC端VS安装对应的插件学习资料 B站学习资料 对应 第三期&am…...
【Linux实验室】NFS、DHCP的搭建
NFS、DHCP的搭建 1、nfs服务搭建及测试什么是NFS?环境准备服务端机器安装nfs-utils和rpcbind包启动NFS服务创建/data/NFSdata目录,配置nfs文件启动服务挂载测试在服务端在共享目录下创建文件测试在客户端在共享目录下创建文件 2、dhcp服务搭建及测试什么…...
Samba 总是需要输入网络凭证
输入网络凭证: 用户名是 cat /etc/samba/smb.conf,查看 valid users mxw 为用户名。而不是其他账号名或者用户名,更不是登录计算机时的计算机名; 密码是 需要记住安装samba服务器时,自己设置的password࿱…...
图像处理_积分图
目录 1. 积分图算法介绍 2. 基本原理 2.1 构建积分图 2.2 使用积分图 3. 举个例子 1. 积分图算法介绍 积分图算法是图像处理中的经典算法之一,由Crow在1984年首次提出,它是为了在多尺度透视投影中提高渲染速度。 积分图算法是一种快速计算图像区域和…...
B/S架构SaaS模式 医院云HIS系统源码,自主研发,支持电子病历4级
B/S架构SaaS模式 医院云HIS系统源码,自主研发,支持电子病历4级 系统概述: 一款满足基层医院各类业务需要的云HIS系统。该系统能帮助基层医院完成日常各类业务,提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查…...
(C)1005 继续(3n+1)猜想
1005 继续(3n1)猜想: 问题描述 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候&a…...
编译好的C++应用程序拷贝到其它电脑,提示dll未找到依赖项的解决方法。
编译好的C应用程序拷贝到其它电脑上,运行时出现提示dll未找到依赖项。 由于dll依赖于其它dll,在开发用电脑上的环境不能完全与其它电脑相同。 解决办法是找到调用到的dll依赖的所有dll,拷贝到运行目录下。 在开发电脑上: 1、开…...
wps 开发插件
官方文档参考wps官方文档参考 1.环境安装 安装wps https://www.wps.cn/ 安装Node.js https://nodejs.org/en 安装代码编辑器 Visual Studio Code https://code.visualstudio.com/ 环境检查-进入cmd查看 node -v2.demo 2.1 demo下载 打开vscode,新建终端 安装…...
C语言----数据在内存中的存储
文章目录 前言1.整数在内存中的存储2.大小端字节序和字节序判断2.1 什么是大小端?2.2 练习 3.浮点数在内存中的存储3.1.引子3.2.浮点数的存储3.2.2 浮点数取的过程 前言 下面给大家介绍一下数据在内存中的存储,这个是一个了解c语言内部的知识点…...
【Linux学习】Linux 的虚拟化和容器化技术
˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…...
Delphi 是一种内存安全的语言吗?
上个月,美国政府发布了 "回到基石 "报告: 通往安全和可衡量软件之路 "的报告。该报告是美国网络安全战略的一部分,重点关注多个领域,包括内存安全漏洞和质量指标。 许多在线杂志都对这份报告进行了评论࿰…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...
【Java多线程从青铜到王者】单例设计模式(八)
wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本,sleep也是可以指定时间的,也就是说时间一到就会解除阻塞,继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒),wait能被notify提前唤醒…...
比特币:固若金汤的数字堡垒与它的四道防线
第一道防线:机密信函——无法破解的哈希加密 将每一笔比特币交易比作一封在堡垒内部传递的机密信函。 解释“哈希”(Hashing)就是一种军事级的加密术(SHA-256),能将信函内容(交易细节…...
