Apache DolphinScheduler 【安装部署】

前言

        今天来学习一下 DolphinScheduler ,这是一个任务调度工具,现在用的比较火爆。

1、安装部署

1.0、准备工作

1.0.1、集群规划 

dolphinscheduler 比较吃内存,所以尽量给 master 节点多分配一点内存,桌面和虚拟机里能关的应用程序就关了 

hadoop102

master,worker
hadoop103worker
hadoop104worker

这里的 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 的时候不需要令牌。但是如果通过第三方接口去访问就必须使用令牌了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

P2249 【深基13.例1】查找 (二分)

题目链接 代码&#xff1a; #include<algorithm> #include<iostream> #include<cstring> #include<queue> #include<cmath>using namespace std; //就是找左端点&#xff0c;没有输出-1 int n; int q; int a[1000010];int main() {scanf("…

Qt QML的枚举浅用

QML的枚举用法 序言概念命名规则在QML定义枚举的规范 用法QML的枚举定义方法供QML调用的&#xff0c;C的枚举定义方法 序言 概念 QML的枚举和C的其实差不多&#xff0c;但是呢&#xff0c;局限比较多&#xff0c;首先不能在main.qml里定义&#xff0c;也不能在子项中定义。 …

Java入门教程||Java 多线程编程

Java 多线程编程 Java 给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程&#xff0c;并且每个线程定义了一个独立的执行路径。 多线程是多任务的一种特别的形式。多线程比多任务需要更小的开销。 这里定义和线程…

晶核养号攻略,小白必读攻略!

晶核手游作为一款深受玩家喜爱的游戏&#xff0c;养号是玩家们在游戏中常常会碰到的问题之一。在这个攻略中&#xff0c;我们将为新手玩家们提供一些养号的建议和技巧&#xff0c;帮助他们更好地管理和提升自己的游戏账号。 1. 初始阶段的金币管理 在游戏初期&#xff0c;前60…

四信AI智能视频边缘分析盒+传感云平台,开启食品安全智慧监管新模式

方案背景 民以食为天&#xff0c;食品是人类生存必备的物质之一&#xff0c;食品生产安全关乎每个人的生命健康与社会可持续发展。在食品生产过程中&#xff0c;如何实现安全、健康生产是监管机构首要考虑因素&#xff0c;也是当今社会必须共同关注与努力的方向。 监管机构必…

C语言中的数组与函数指针:深入解析与应用

文章目录 一、引言二、数组的定义1、数组的定义与初始化2、char*与char[]的区别1. 存储与表示2. 修改内容3. 作为函数参数 三、字符串指针数组1. 定义与概念2. 使用示例3. 内存管理 四、从字符串指针数组到函数指针的过渡1、字符串指针数组的应用场景2、函数指针的基本概念3、如…

ETL工具-nifi干货系列 第八讲 处理器PutDatabaseRecord 写数据库(详细)

1、本节通过一个小例子来讲解下处理器PutDatabaseRecord&#xff0c;该处理器的作用是将数据写入数据库。 如下流程通过处理器GenerateFlowFile 生成数据&#xff0c;然后通过处理器JoltTransformJSON转换结构&#xff0c;最后通过处理器PutDatabaseRecord将数据写入数据库。如…

C++输出格式控制

setprecision(n)可控制输出流显示浮点数的数字个数。C默认的流输出数值有效位是6&#xff0c;所以不管数据是多少&#xff0c;都只输出六位。如果setprecision(n)与setiosflags(ios::fixed)或者setiosflags(ios_base::fixed)合用&#xff0c;可以控制小数点右边的数字个数。set…

4 月 8 日至 9 日 ICP Hacker House 邀你共赴 IC 生态项目开发新风口

为了更好地探索区块链技术前沿&#xff0c;体验作为全面智能合约云平台的互联网计算机&#xff08;Internet Computer Protocol&#xff09;&#xff0c;将数据、内容、计算和用户体验全部托管于链上&#xff0c;IC 生态致力于推动去中心化互联网的深度发展&#xff0c;并将更安…

OC分层渲染详解,OC分层渲染与云渲染区别

​OC分层渲染通过分层处理场景来提升渲染效率&#xff0c;而云渲染借助云服务器进行远程高性能渲染。主要差异在于OC分层渲染优化了本地渲染过程&#xff0c;云渲染则依靠云计算资源执行。 OC分层渲染是指什么 OC分层渲染&#xff0c;即Object Channel分层渲染&#xff0c;是一…

vue3中实现文本显示省略号和tooltips提示框

前言 在 B 端业务中&#xff0c;我们经常会遇到文本内容超出容器区域需显示省略号的需求。当鼠标移入文本时&#xff0c;会出现 Tooltip 显示完整内容。最近&#xff0c;我也遇到了这样的场景。为了提高业务通用性&#xff0c;我已将其封装为组件、Hook 和指令等形式供使用。 …

【浅谈面向过程和面向对象的区别】

面向对象和面向过程是两种不同的编程范式&#xff0c;它们在处理问题和构建软件时有着显著的区别。 一、面向过程 1、基本概念 面向过程编程是一种早期的程序设计范型&#xff0c;它以事件为中心&#xff0c;主要关注“怎么做”&#xff0c;即完成任务的具体步骤。它将问题分…

CTK插件框架学习-事件监听(04)

CTK插件框架学习-插件注册调用(03)https://mp.csdn.net/mp_blog/creation/editor/136989802 一、主要流程 发送者注册消息事件接收者订阅消息事件接收者相应消息事件 事件监听比插件接口调用耦合性更弱&#xff0c;事件由框架维护&#xff0c;不需要指定发送方和接收方 二、…

tensflow模型转onnx实践

一、基础知识介绍 1、TensorFlow介绍 TensorFlow™是一个基于数据流编程&#xff08;dataflow programming&#xff09;的符号数学系统&#xff0c;被广泛应用于各类机器学习&#xff08;machine learning&#xff09;算法的编程实现&#xff0c;其前身是谷歌的神经网络算法库…

WebGIS 之 Openlayer

1.导入第三方依赖 <link rel"stylesheet" href"https://lib.baomitu.com/ol3/4.6.5/ol.css"> <script src"https://lib.baomitu.com/ol3/4.6.5/ol.js"></script>2.初始化地图 初始化地图new ol.Map({}) 参数target:制定初始化…

阻塞队列(BlockingQueue)

何为阻塞队列 当阻塞队列是空时,从队列中获取元素的操作将被阻塞当阻塞队列是满时,往队列中添加元素将会被阻塞试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他线程往空的队列中插入新的元素试图往满的队列中,添加新的元素的线程也会被阻塞,直到其他线程从队列中移除…

基于SSM的社区疫情防控管理信息系统

目录 背景 技术简介 系统简介 界面预览 背景 随着时代的进步&#xff0c;计算机技术已经全方位地影响了社会的发展。随着居民生活质量的持续上升&#xff0c;人们对社区疫情防控管理信息系统的期望和要求也在同步增长。在社区疫情防控日益受到广泛关注的背景下&#xff0c…

OpenHarmony实战:Makefile方式组织编译的库移植

以yxml库为例&#xff0c;其移植过程如下文所示。 源码获取 从仓库获取yxml源码&#xff0c;其目录结构如下表&#xff1a; 表1 源码目录结构 名称描述yxml/bench/benchmark相关代码yxml/test/测试输入输出文件&#xff0c;及测试脚本yxml/Makefile编译组织文件yxml/.gitat…

Python基础之pandas:字符串操作与透视表

文章目录 一、字符串操作备注&#xff1a;如果想要全部行都能输出&#xff0c;可输入如下代码 1、字符检索2、字符转换3、字符类型判断4、字符调整5、字符对齐与填充6、字符检索7、字符切割8、字符整理 二、透视表1、pd.pivot_table2、多级透视表 一、字符串操作 备注&#xf…

黄锈水过滤器 卫生热水工业循环水色度水处理器厂家工作原理动画

​ 1&#xff1a;黄锈水处理器介绍 黄锈水处理器是一种专门用于处理“黄锈水”的设备&#xff0c;它采用机电一体化设计&#xff0c;安装方便&#xff0c;操作简单&#xff0c;且运行费用极低。这种处理器主要由数码射频发生器、射频换能器、活性过滤体三部分组成&#xff0c;…