Azkaban集群模式部署详细教程

序言

    Azkaban是一个用于工作流程调度和任务调度的开源工具,它可以帮助用户轻松地管理和监控复杂的工作流程。Azkaban的架构设计旨在提供高度可扩展性和可靠性,同时保持易用性和灵活性。

    Azkaban的架构可以分为三个主要组件:Executor、Web Server和db数据库。Executor是执行实际工作的节点,WebServer是用于用户交互的接口,数据库用于存储工作流程和任务的元数据信息。

(1)Executor

      Executor是Azkaban的工作节点,负责执行工作流程中定义的任务。每个Executor节点可以同时执行多个任务,通过与Web Server的通信来获取任务的执行信息和结果,Executor节点可以根据需要动态扩展,以满足不同规模和性能需求。同时,Executor节点可以配置不同的资源限制,以确保任务执行的稳定性和可靠性。

 (2)Web Server

    Web Server是Azkaban的用户界面,用户可以通过Web界面来管理和监控工作流程。Web Server提供了创建、编辑、删除工作流程的功能,同时也可以查看任务的执行情况和日志信息。        Web Server与Executor节点之间通过HTTP协议进行通信,通过RESTAPI来传递任务的执行信息和结果。Web Server还可以通过WebSocket实时监控任务的执行进度和状态。

 (3)db数据库

    数据库是Azkaban的元数据存储,用于保存工作流程和任务的定义信息。数据库中包含了工作流程的依赖关系、任务的执行状态和日志信息等。
     Azkaban支持多种数据库,如MySQL、PostgreSQL等,用户可以根据自己的需求选择合适的数据库存储方式。数据库的高可用性和性能也是保证系统稳定性的重要因素。

1. 集群模式设计

 准备4台服务器 hadoop101、hadoop102、hadoop103、hadoop104

 4台服务器的分工:

 hadoop101: Web Server、Executor Server

 hadoop102: Executor Server

 hadoop103:Executor Server

 hadoop104:MySQL数据库

2. Azkaban安装文件的准备

  包含:azkaban-db、azkaban-web-server、azkaban-exec-server 三个模块的安装文件,例如:

 上述对用三个文件的创建方式,请参考如下连接:

Azkaban下载/安装及单机版配置详细教程-CSDN博客

 2.1 在hadoop101服务器上创建/usr/local/software/azkaban 目录,将以上相关的三个文件下载到此目录下:

2.2 解压三个文件并重命名

3. 配置MySQL数据库

3.1  MySQL数据库安装,请参考如下连接:

CentOS7下MySQL-8.1.0 数据库下载及安装_centosxiazaishujvku-CSDN博客

3.2 登录MySQL数据库,创建azkaban数据库

  create database azkaban;

3.3 创建azkaban用户并设置权限

 create user 'azkaban'@'%' identified by '123456';

Grant SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;

3.4 切换 azkaban数据库,并在数据库中导入azkaban表(create-all-sql-xxx.sql)

    备注:create-all-sql-xxx.sql 文件 在 azkaban-db 文件夹中,如下: 3.5. 更改MySQL包大小:防止Azkaban连接MySQL阻塞

  修改 /etc/my.cnf 文件,在[mysqld] 下面添加 max_allowed_packet = 1024M

3.6. 重启MySQL数据库

 systemctl restart mysqld

4. 配置Executor Server

 Azkaban Executor Server 处理工作流和作业的实际执行

4.1 修改:/azkaban-executor/conf/azkaban.properties ,修改内容如下:

default.timezone.id=Asia/Shanghai

azkaban.webserver.url=http://hadoop101:8081

executor.port=12321

database.type=mysql
mysql.port=3306
mysql.host=192.168.170.100
mysql.database=azkaban
mysql.user=azkaban
mysql.password=123456
mysql.numconnections=100

备注:executor.port 设置 executor server的端口号,因为executor.port不指定的话,每次executor.port 会随机生成,使用时特别不方便

 4.2 将配置好的 azkaban-executor 文件,复制到 hadoop102、hadoop103 服务器上

scp -r azkaban-exec/ root@192.168.170.102:/usr/local/software/azkaban/

scp -r azkaban-exec/ root@192.168.170.103:/usr/local/software/azkaban/

4.3 分别启动三台服务器的 executor server,进入到 azkaban-exector 根目录,进行执行:

  bin/start-exec.sh

 并通过jps 查看进程 

 备注:(1) azkaban-exec 项目中自带的是mysql 5.x 的驱动,如果你使用的mysql版本是8.x 的版本,则需要将 mysql 8.x的驱动包,复制到 azkaban-exec/lib 目录下,并将自带的mysql5.x 版本的驱动包删除掉

           (2)azkaban-exec 启动成功之后,在azkaban-exec目录下生成 executor.port 文件

4.4  激活每台executor服务器

  分别在三台服务器上执行如下命令:

 curl -G "hadoop101:12321/executor?action=activate" && echo

 curl -G "hadoop102:12321/executor?action=activate" && echo

 curl -G "hadoop103:12321/executor?action=activate" && echo

效果如下:

激活之后,可以在azkaban对应的数据库中的executors表中查看到激活的executor节点的信息,active 表示该节点服务器是否被激活,其实只要当你的executor 服务器启动之后,该表就会添加一条对应的信息,只不过active的数据是0,未激活的状态,激活之后active的数据变为1.

 

到此 Azkaban的Executor Server 已经配置与启动成功。

关闭服务使用的是:bin/shutdown-exec.sh

5. 配置 Web Server

 Azkaban Web Server 是处理项目管理、身份验证、计划和执行触发。

 当前案例 Web Server只是在 hadoop101 上进行配置

5.1 配置/修改 azkaban.properties 文件

default.timezone.id=Asia/Shanghai

mysql.port=3306
mysql.host=192.168.170.100
mysql.database=azkaban
mysql.user=azkaban
mysql.password=123456

azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus

备注:azkaban.executorselector.filters 表示执行选择器的过滤器

          StaticRemainingFlowSize:正在排队的任务数

          CpuStatus:CPU占用情况

          MininumFreeMemory:内存占用情况。测试环境,必须将MininumFreeMemory删除掉,否则它会认为集群资源不够,不执行。

5.2 修改azkaban-users.xml 文件

  添加 laoma 用户 并设置密码为 laoma,角色设置为 admin

5.3  azkaban-web 项目中自带的是mysql 5.x 的驱动,如果你使用的mysql版本是8.x 的版本,则需要将 mysql 8.x的驱动包,复制到 azkaban-web/lib 目录下,并将自带的mysql5.x 版本的驱动包删除掉

5.4 启动 Web Server

 进入到 azkaban-web 的根目录下执行:bin/start-web.sh 并通过 jps 查看进程

5.5 通过浏览器访问azkaban web服务

  http://192.168.170.101:8081

 登录刚才设置的用户,例如我刚才设置的用户名:laoma 密码:laoma

登录成功!

5.6 关闭web Server 命令

 bin/shutdown-web.sh

至此 Web Server 配置成功!

至此,Azkaban集群模式配置完美结束!

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

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

相关文章

【力扣】94. 二叉树的中序遍历、144. 二叉树的前序遍历、145. 二叉树的后序遍历

先序遍历:根-左-右中序遍历:左-根-右后序遍历:左-右-根 94. 二叉树的中序遍历 题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3…

Linux:五种IO模型的基本认识

文章目录 IO的本质五种IO模型异步和同步 阻塞IO非阻塞IO信号驱动IO IO的本质 在之前的内容中已经结束了对于网络和操作系统的学习,那么回过来再继续看IO,什么是IO呢? 对于网络的学习当中,实际上也是一种IO,数据从计算…

使用vite创建一个react18项目

一、vite是什么? vite 是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成: 一个开发服务器,它基于原生 ES 模块提供了丰富的内建功能,如速度快到惊人的模块热更新(HMR)。 …

博客部署004-centos安装mysql及redis

1、如何查看当前centos版本? cat /etc/os-release 2、安装mysql 我的是centos8版本,使用dnf命令 2.1 CentOS 7/8: sudo yum install -y mysql-community-server 或者在CentOS 8上,使用DNF:🌟 sudo dnf install -y mysql-ser…

探秘MIMO技术:无线通信革命的多天线奇迹

单根发射天线和单根接收天线之间的信道容量受限于香农公式,要想在相同的频谱带宽下进一步提高信道容量,要采用多天线技术。 1. 什么是MIMO MIMO:Multiple-Input Multiple-Output,即多入多出系统。这里的入和出是相对于发射天线和…

力控机器人原理及力控制实现

力控机器人原理及力控制实现 力控机器人是一种能够感知力量并具有实时控制能力的机器人系统。它们可以在与人类进行精准协作和合作时,将力传感技术(Force Sensing Technology)和控制算法(Control Algorithm)结合起来&a…

Vue3_2024_7天【回顾上篇watch常见的后两种场景】

随笔:这年头工作不好找咯,大家有学历提升的赶快了,还有外出人多注意身体,没错我在深圳这边阳了,真的绝啊,最尴尬的还给朋友传染了!!! 之前三种的监听情况,监听…

LabVIEW太赫兹波扫描成像系统

LabVIEW太赫兹波扫描成像系统 随着科技的不断发展,太赫兹波成像技术因其非电离性、高穿透性和高分辨率等特点,在生物医学、材料质量无损检测以及公共安全等领域得到了广泛的应用。然而,在实际操作中,封闭性较高的信号采集软件限制…

dm8数据迁移工具DTS

dm8数据迁移工具DTS DTS工具介绍 DM数据迁移工具提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件的功能。DM数据迁移工具采用向导方式引导用户通过简单的步骤完成需要的操作。 DM数据迁移工具支持: ◆ 主流大型数据库Oracle、SQLServer、MyS…

DC9 Debian和sql注入

信息收集 sudo arp-scan -l 列出局域网主机 arp-scan向局域网中所有可能的ip地址发出arp请求包,如果得到arp回应,就证明局域网中某台主机使用了该ip dc9的ip : 192.168.146.133 访问网页 cms为Debian 端口扫描 22端口是filtered 隐藏目…

详细分析Python爬虫中的xpath(附Demo)

目录 前言1. 基本知识2. 常用API3. 简易Demo 前言 关于爬虫的基本知识推荐阅读:Python爬虫从入门到应用(超全讲解) 该知识点需要提前安装相关依赖:pip install lxml 1. 基本知识 XPath(XML Path Language&#xf…

GIt 删除某个特定commit

目的 多次commit,想删掉中间的一个/一些commit 操作方法 一句话说明:利用rebase命令的d表示移除commit的功能,来移除特定的commit # 压缩这3次commit,head~3表示从最近1次commit开始,前3个commit git rebase -i head~3rebase…

机器学习每周挑战——信用卡申请用户数据分析

数据集的截图 # 字段 说明 # Ind_ID 客户ID # Gender 性别信息 # Car_owner 是否有车 # Propert_owner 是否有房产 # Children 子女数量 # Annual_income 年收入 # Type_Income 收入类型 # Education 教育程度 # Marital_status 婚姻状况 # Housing_type 居住…

使用GPT需要注意的事项

GPT出来之后,基本就告别浏览器搜索问题答案了。将问题原封不动的copy给GPT基本可以得到解答。 但是这个也有弊端,那就是太依赖GPT了。 1,使用GPT需要更强的专业知识:除了能问对问题,还要具备识别GPT&q…

拦截器抛出异常无法被全局异常处理器捕获问题

文章目录 基本说明问题描述问题原因解决方法前端执行的所有请求都通过Controller,而不是直接访问html定义一个/error路径的方法 总结 基本说明 我的前后端项目是放在一起的,前后端都是由springMVC进行控制,但是现在我在拦截器的preHandle方法…

蓝桥杯单元测试专项练习Java版(单元测试4)(修正版)

关于简单循环覆盖法可以看看这里我的上一个文章http://t.csdnimg.cn/k92fn\ 题目4链接:单元测试专项练习(JavaPython) - 第四题单元测试题目(Java) - 蓝桥云课 (lanqiao.cn) 目录 题目描述 源代码功能 原题: Datas.java Good…

自动驾驶_交通标志识别:各目标检测算法评测

自动驾驶|交通标志识别:各目标检测算法评测 论文题目:Evaluation of Deep Neural Networks for traffic sign detection systems 开源代码:https://github.com/aarcosg/traffic-sign-detection 附赠自动驾驶学习资料和量产经验:…

计算机视觉——基于傅里叶幅度谱文档倾斜度检测与校正

概述 在计算机视觉领域,处理文档数据时,OCR算法的性能往往会受到文档的倾斜度影响。如果文档在输入到模型之前没有经过恰当的校正,模型就无法期待模型能够提供准确的预测结果,或者模型预测的精度会降低。例如,在信息提…

助力蓝桥杯单片机省一————模块之超声波

距离蓝桥杯单片机省赛还有7天 本次介绍的模块是超声波模块,将使用定时器1和PCA进行距离的测量。如果对PCA还未了解的,可以打开官方给的芯片数据手册,自行查看。 一、超声波测量原理 二、产生8个40KHz的超声波 void Init_wave() {unsigned …

7 个 iMessage 恢复应用程序/软件可轻松恢复文本

由于误操作、iOS 升级中断、越狱失败、设备损坏等原因,您可能会丢失 iPhone/iPad 上的 iMessages。意外删除很大程度上增加了这种可能性。更糟糕的是,这种情况经常发生在 iDevice 缺乏备份的情况下。 (iPhone消息消失还占用空间?&…