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

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

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

相关文章

Golang 开发实战day07 - Functions

Golang 教程07 - Functions 1. Functions 1.1 什么是函数&#xff1f; 在 Golang 中&#xff0c;函数就像是代码的超级组合体&#xff0c;可以将一段代码封装成一个独立的单元&#xff0c;以便重复使用。 1.2 函数声明 func funcName(parameter1 type1, parameter2 type2)…

Leetcode刷题-数组(二分法、双指针法、窗口滑动)

数组 1、二分法 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 需要注意区间的问题。首先在最外面的循环判断条件是left<right。那就说明我们区间规定的范围就是【left,right】 属于是左闭右闭&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…

一文让你彻底理解 AdaBoost 自适应提升算法 | AdaBoost 的关键要点、基本原理、优缺点和实际应用

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、关键要点 AdaBoost&#xff0c;即自适应提升&#xff08;Adaptive Boosting&#xff09;算法的缩写&#xff0c;是一种基于 Boosting 策略的集成学习方法&#xff0c;旨在降低偏差。AdaBoost 的 “…

【面试HOT200】链表篇

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试coding部分的&#xff0c;整理期间苛求每个算法题目&#xff0c;平衡可读性与代码性能&#xff08;leetcode运行复杂度均打败80%以上&#xff09;。 &#x1f970;来源&#xff1a;材料主要源于…

softmax函数的功能及用法

Softmax函数是一种常用的激活函数&#xff0c;通常用于多分类问题的输出层。其功能是将一个具有任意实数值的向量&#xff08;通常称为“logits”&#xff09;转换为一个概率分布&#xff0c;其中每个元素的值表示对应类别的概率。 Softmax函数的公式如下&#xff1a; 给定一…

选择最适合的JavaScript混淆工具:详解JScrambler、JShaman、IpaGuard等五款在线服务

摘要 本篇技术博客将介绍五款常用且好用的在线JavaScript加密混淆工具&#xff0c;包括 jscrambler、JShaman、jsfack、freejsobfuscator 和 jjencode。通过对这些工具的功能及使用方法进行详细解析&#xff0c;帮助开发人员更好地保护和加密其 JavaScript 代码&#xff0c;提…

如何优化嵌入式系统的实时性能

大家好&#xff0c;今天给大家介绍如何优化嵌入式系统的实时性能&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 优化嵌入式系统的实时性能是一个综合性的任务&#xff0c;涉及到…

C++的并发世界(六)——互斥解决数据共享冲突

0.数据共享的问题 在多个线程中共享数据时。需要注意线程安全问题。如果多个线程同时访问同一个变量。并且其中至少有一个线程对该变量进行了写操作。那么就会出现数据竞争问题。数据竞争可能会导致程序崩溃,产生来定义的结果,或者得到错误的热果。为了避免数据竞争问题。需要…

真·面试题总结——JVM虚拟机

JVM虚拟机 JVM虚拟机规范与实现 JVM虚拟机规范 JVM虚拟机实现 JVM的常见实现 JVM虚拟机物理架构 JVM虚拟机的运转流程 JVM类加载过程 JVM类加载器及类加载器类型 JVM类加载器双亲委派机制 JVM运行时数据区的内存模型 JVM运行时数据区的内存模型&#xff1a;程序计数器…

Transformer - Outputs(Shifted Right)

Transformer - Outputs(Shifted Right) flyfish 输入: “je suis etudiant” 预期输出 : “i am a student” 除了普通词汇之外&#xff0c;模型还引入了一些特殊token&#xff0c;常有的&#xff08;start of sequence&#xff09;、&#xff08;end of sequence&#xff09;…

【linux】lsof命令使用

1. 功能 lsof list open files, 列出被进程所使用的文件名称。 2. 基础语法 3. 参数含义 参数含义-a过滤出多个选项要同时满足的文件-U仅列出UNIX-like系统的socket文件类型。-u指定用户&#xff0c;比如-u atiaisi&#xff0c;会把用户atiaisi相关的进程使用的文件列出来。…

线程池小项目【Linux C/C++】(踩坑分享)

目录 前提知识&#xff1a; 一&#xff0c;线程池意义 二&#xff0c;实现流程 阶段一&#xff0c;搭建基本框架 1. 利用linux第三方库&#xff0c;将pthread_creat线程接口封装 2. 实现基本主类ThreadPool基本结构 阶段二&#xff0c;完善多线程安全 1. 日志信息打印…

【JavaScript】函数 ⑥ ( 使用 arguments 获取所有实参 | arguments 内置对象 | 伪数组概念 )

文章目录 一、使用 arguments 获取所有实参1、arguments 内置对象2、伪数组概念3、arguments 实参遍历4、arguments 代码示例 - 基本使用5、arguments 代码示例 - 遍历实参 一、使用 arguments 获取所有实参 1、arguments 内置对象 在 定义 JavaScript 函数 时 , 有时 不确定 形…

工业设备远程控制

随着科技的飞速发展和工业4.0的深入实施&#xff0c;远程控制技术在工业领域的应用变得日益重要。HiWoo Box网关作为连接工业设备与远程控制中心的桥梁&#xff0c;凭借其卓越的性能和稳定性&#xff0c;为工业设备远程控制提供了强大的支持。 一、工业设备远程控制的意义 工…

Rust所有权和Move关键字使用和含义讲解,以及Arc和Mutex使用

Rust 所有权规则 一个值只能被一个变量所拥有&#xff0c;这个变量被称为所有者。 一个值同一时刻只能有一个所有者&#xff0c;也就是说不能有两个变量拥有相同的值。所以对应变量赋值、参数传递、函数返回等行为&#xff0c;旧的所有者会把值的所有权转移给新的所有者&#…

后疫情时代CS保研沉思录暨2023年个人保研经验贴

个人情况 正如古话所说&#xff0c;最适合你的才是最好的。因此这里先贴上个人基本情况&#xff0c;用作参考。 如果你的个人情况与我相近&#xff0c;则有更强的参考作用。如果情况相差较大&#xff0c;也可以姑且引为例子来研究。 学校层次&#xff1a;中流至末流211 专业…

R语言中的常用数据结构

目录 R对象的基本类型 R对象的属性 R的数据结构 向量 矩阵 数组 列表 因子 缺失值NA 数据框 R的数据结构总结 R语言可以进行探索性数据分析&#xff0c;统计推断&#xff0c;回归分析&#xff0c;机器学习&#xff0c;数据产品开发 R对象的基本类型 R语言对象有五…

EKS-1.26 创建ingress-nginx绑定elb暴露服务

1. 创建集群 &#xff08;跳过不介绍&#xff09; 2. 创建Ingress-Nginx服务 部署项目地址【点我跳转】 推荐自定义部署 可绑定acm证书什么的自己属性 对应集群版本推荐阵列 https://github.com/kubernetes/ingress-nginx 修改下面的下载文件版本 Download the deploy.yaml…

Xxxxxx

数据库 1&#xff0c;B树与B树区别 1&#xff0c;B树每个节点存ID与其他数据字段&#xff0c;B非叶子结点&#xff0c;只存ID&#xff0c;叶子结点存完整数据 好处&#xff1a;每个层级B树&#xff0c;可以存储更多的额数据&#xff0c;层级更少&#xff0c;更扁平&#xff…

视觉大模型--deter的深入理解

但对于transformer用于目标检测领域的开创性模型&#xff0c;该模型言简意赅&#xff0c;但是但从论文理解&#xff0c;有很多细节都不清楚&#xff0c;尤其是解码器的query和二分图匹配(Bipartite Matching)和匈牙利算法(Hungarian Algorithm)相关&#xff0c;本文将根据代码详…