工作流调度系统 Azkaban介绍与安装(一)
文章目录
- 前言
- 1、为什么要用工作流调度系统
- 2、常见的工作流调度系统
- 1 集群规划
- 2 配置 MySQL
- 3 配置 Executor Server
- 3.1 修改 azkaban.properties
- 3.2 启动
- 3.3 激活
- 4 配置 Web Server
- 4.1 修改 azkaban.properties
- 4.2 修改azkaban-users.xml文件,添加 atguigu 用户
- 4.3 启动
哈喽,大家好,我是[有勇气的牛排](全网同名)🐮🐮🐮
有问题的小伙伴欢迎在文末[评论,点赞、收藏]是对我最大的支持!!!。
前言
1、为什么要用工作流调度系统
(1)一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序、java程序、MapReduce程序、Hive脚本等。
(2)各个单元之间存在时间先后及前后依赖关系
(3)为了很好地组织这样的复杂执行计划,需要一个工作流调度系统来执行。
2、常见的工作流调度系统
(1)简单任务调度:直接只用Linux的Crnotab。
(2)复杂任务调度:Ooize、Azkaban、Airflow、DolphinScheduler等
1 集群规划
192.168.56.20: exec、web
192.168.56.20:exec
192.168.56.20:exec
准备文件
mkdir -p /usr/local/azkaban
cd /usr/local/azkaban
rz
tar -zxvf azkaban-db-3.84.4.tar.gz
tar -zxvf azkaban-exec-server-3.84.4.tar.gz
tar -zxvf azkaban-web-server-3.84.4.tar.gz
2 配置 MySQL
1、安装
docker run -d \
-p 3322:3306 \
-v /usr/local/docker/mysql-api/data:/etc/mysql/conf.d \
-v /usr/local/docker/mysql-api/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456* \
--name azkaban mysql:5.7
2、启动
mysql -u root -p root
3、创建 azkaban 数据库,并赋予权限
create database azkaban;
配置允许简单密码
# 设置密码有效程度 4 为及以上
set global validate_password_length=4;
# 设置密码策略最低级别
set global validate_password_policy=0;
创建 azkaban用户,任何主机都可以访问 Azkaban,密码是000000
create user 'azkaban'@'%' identified by'000000';
赋予 azkaban用户 增删改查权限
grant select,insert,update,delete on azkaban.* to 'azkaban'@'%' with grant option;
4、创建 azkaban表
use azkaban;
source /usr/local/azkaban/azkaban-db-3.84.4/create-all-sql-3.84.4.sql
5、更改 MySql 包大小,防止 Azkaban 链接 MySql阻塞
vim /etc/my.cnf
在[mysqld]下面家以上 max_allowed_pocked=1024M
[mysqld]
# 默认1M
max_allowed_packet=1024M
6、重启 MySQL
systemctl restart mysqld
3 配置 Executor Server
3.1 修改 azkaban.properties
vim /usr/local/azkaban/azkaban-exec-server-3.84.4/conf/azkaban.properties
修改如下内容
default.timezone.id=Asia/Shanghaiazkaban.webserver.url=http://192.168.56.20:8085mysql.host=192.168.56.20mysql.password=root# 指定端口
executor.port=12321
分发
xsync
scp -r /usr/local/azkaban root@slave1:/usr/local
scp -r /usr/local/azkaban root@slave2:/usr/local
3.2 启动
所有机器
cd /usr/local/azkaban/azkaban-exec-server-3.84.4
./bin/start-exec.sh
关闭
shutdown-exec.sh
3.3 激活
所有机器
curl -G "192.168.56.20:12321/executor?action=activate" && echo
curl -G "192.168.56.21:12321/executor?action=activate" && echo
curl -G "192.168.56.22:12321/executor?action=activate" && echo
4 配置 Web Server
Azkaban Web Server 处理项目管理,身份验证,计划和执行触发。
4.1 修改 azkaban.properties
cd /usr/local/azkaban/azkaban-web-server-3.84.4vim /usr/local/azkaban/azkaban-web-server-3.84.4/conf/azkaban.properties
修改如下属性
default.timezone.id=Asia/Shanghai# Web Server端口
jetty.port=8085mysql.host=mastermysql.password=000000azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
4.2 修改azkaban-users.xml文件,添加 atguigu 用户
用户/权利管理文件
vim ./confg/azkaban-users.xml
<azkaban-users><user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/><user password="metrics" roles="metrics" username="metrics"/><user password="123456" roles="admin" username="charles"/><role name="admin" permissions="ADMIN"/><role name="metrics" permissions="METRICS"/>
</azkaban-users>
4.3 启动
cd /usr/local/azkaban/azkaban-web-server-3.84.4
bin/start-web.sh
关闭
bin/shutdown-web.sh
访问:http://192.168.56.20:8085
账号:charles
密码:123456

- https://www.couragesteak.com/article/226
相关文章:
工作流调度系统 Azkaban介绍与安装(一)
文章目录前言1、为什么要用工作流调度系统2、常见的工作流调度系统1 集群规划2 配置 MySQL3 配置 Executor Server3.1 修改 azkaban.properties3.2 启动3.3 激活4 配置 Web Server4.1 修改 azkaban.properties4.2 修改azkaban-users.xml文件,添加 atguigu 用户4.3 启…...
【Python基础入门学习】Python工具Pycharm的安装与使用
一、关于Python 1.1 下载Python 在下载与安装pycharm工具前,一定要先安装python 打开Python官网:python下载打开上述网站,选择 Downloads -> 系统 我是Windows系统,点击进入后,找到自己要安装的安装包以及想安装的…...
【版本控制】Github同步Gitee镜像仓库自动化脚本
文章目录Github同步Gitee镜像仓库自动化脚本前言什么是Hub Mirror Action?1.介绍2.用法配置步骤1.生成密钥对2.GitHub私钥配置3.Gitee公钥配置4.Gitee生成私人令牌5.Github绑定Gitee令牌6.编写CI脚本7.多仓库同步推送8.定时运行脚本总结Github同步Gitee镜像仓库自动…...
索引的分类
1.唯一索引 给表中某一列设置为了唯一约束(这列不允许出现重复数据)后,数据库会为将这一列设置索引,这个索引叫做唯一索引(主键那一列是一个特殊的唯一索引,不仅要满足唯一索引这一列不可以出现重复数据,而且这一列还…...
【整理九】
目录1.说说你对递归的理解?封装一个方法用递归实现树形结构封装2.Link和import有什么区别?3.什么是FOUC? 如何避免?4.说说你对预编译器的理解?5.shouldComponentUpdate 的作用6.概述下 React 中的事务处理逻辑7.React组件的划分业…...
钢网是SMT生产使用的一种工具,如何制作?
钢网是SMT生产使用的一种工具,其主要功能是将锡膏准确地涂敷在有需要焊接的PCB焊盘上。 钢网的好坏,直接影响印刷工作的质量,目前一般使用的金属钢网,是由薄薄的、带有小孔的金属板制作成的,在开孔处,锡膏…...
如何创建自己的gym环境
我们为什么要创建一个gym的环境呢?因为需要,哈哈哈,这是一句废话,但是也是一句真话。因为我不想自己写强化学习的算法了,我想用一些现成的框架,这些框架训练的都是gym的游戏,那我把我自己想要训…...
使用Marshaller 将Java对象转化为XML格式和字符串转为xml
使用Marshaller 将Java对象转化为XML格式 对象转xml内容 ①工具类 public static String convertObjectToXml(Object obj) throws Exception {StringWriter writer new StringWriter();// 创建 JAXBContext 和 MarshallerJAXBContext context JAXBContext.newInstance(obj.ge…...
NumPy 秘籍中文第二版:八、质量保证
原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 “如果您对计算机撒谎,它将帮助您。” – Perry Farrar,ACM 通讯,第 28 卷 在本章中,我们将介绍以下秘籍: …...
[ 应急响应篇基础 ] 日志分析工具Log Parser配合login工具使用详解(附安装教程)
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
什么是MVVM?
MVVM 是 Model-View-ViewModel 的缩写,是M-V-VM三部分组成。它本质上就是MVC的改进版。 M:Model 代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。 V:View 代表视图UI,它负责将数据模型转化成UI 展现出来。…...
Java 企业电子招投标采购系统源码:采购过程更规范,更透明
满足采购业务全程数字化, 实现供应商管理、采购需求、全网寻源、全网比价、电子招 投标、合同订单执行的全过程管理。 电子招标采购,是指在网上寻源和采购产品和服务的过程。对于企业和企业主来说,这是个既省钱又能提高供应链效率的有效方法…...
1384:珍珠(bead)
1384:珍珠(bead) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 有n颗形状和大小都一致的珍珠,它们的重量都不相同。n为整数,所有的珍珠从1到n编号。你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量…...
34岁本科男,做了5年功能测试想转行,除了进厂还能干什么?
我的建议是不要给自己设限。任何一个行业只要做到顶尖都是很有作为的,何况是IT行业,本身就比别的行业有优势,如果你现在是功能测试,应该想的是进阶自动化测试或者测试开发 如何在半年时间由功能测试成长为年薪30W的测试开发&#…...
一文理解Transformer整套流程
【备注】部分图片引至他人博客,详情关注参考链接 【PS】query 、 key & value 的概念其实来源于推荐系统。基本原理是:给定一个 query,计算query 与 key 的相关性,然后根据query 与 key 的相关性去找到最合适的 value。举个例…...
04、SpringBoot运维实用篇
一、配置文件1、临时属性设置目前我们的程序包打好了,可以发布了。但是程序包打好以后,里面的配置都已经是固定的了,比如配置了服务器的端口是8080。如果我要启动项目,发现当前我的服务器上已经有应用启动起来并且占用了8080端口&…...
3.Java运算符
Java运算符 运算符基本分为六类:算数运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、三元(条件)运算符。 一、算术运算符 算数运算符,是指在Java运算中,计算数值类型的计算符号,既然是操作数值…...
《RockectMQ实战与原理解析》Chapter4-分布式消息队列的协调者
4.1 NameServer 的功能 NameServer 是整个消息队列中的状态服务器,集群的各个组件通过它来了解全局的信息 。 同时,各个角色的机器都要定期向 NameServer 上报自己的状态,超时不上报的话, NameServer 会认为某个机器出故障不可用了…...
Spring Boot 最适配的 UI 是什么
与Spring Boot一起使用的最佳 UI 是什么? 我经常碰到的一个常见问题是“与 Spring Boot 一起使用的最佳 UI 是什么?” UI,也称为“用户界面”,有许多不同的风格。 UI 应用程序可能是用 Java Swing、FX 或其他一些技术编写的桌面应…...
TensorFlow 1.x 深度学习秘籍:6~10
原文:TensorFlow 1.x Deep Learning Cookbook 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
Python爬虫实战:研究Restkit库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...
算法250609 高精度
加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...
