multiple-executor 模式部署 | 学习笔记

简介: 快速学习 multiple-executor 模式部署

开发者学堂课程【Azkaban 大数据调度系统课程精讲multiple-executor 模式部署学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/721/detail/12878


multiple-executor 模式部署


内容介绍:

一、multiple-executor 模式部署的定义

二、节点规划

三、小结

一、multiple-executor 模式部署的定义

所谓的 multiple-executor 模式是可以去部署多个自行服务器,并且这些自行服务器还可以位于不同机器上,相当于从某种角度上对自行服务器备份都可用。


二、节点规划

image.png

在这里做一个节点规划,比如在 Node-1下部署一个 mysql,在 Node-2上部署一个 web-server 和一个 exec-server,然后在 Node-3部署一个 exec-server,相当于有两个自行服务器来与自行。

在这种模式下部署很简单,把自行服务器的安装包再发送给其他机器即可,用于相关的启动。但是这里面配置简单,唯一要注意的一点是实行服务器的激活问题,这是 Azkaban 一个不好的地方。

接下来来到它的原数据库当中去看,比如说现在是初设模式,就是一个 wen-server 加上一个 exec-server。这个自行服务器在哪里呢?打开数据库,鼠标位于表字上,发现在当中有一个表叫做 executor,这里面会记录下来当前 Azkaban 能够记录的字音自行服务器有哪些?

image.png

现在 Node-2,后面这个属性非常重要,active 表示四副激活 ,0表示未激活,1表示已激活。所以说在进行 two-server 其中的时候需要手动的去激活一下。

接下来重点关注这个激活的问题看看有哪些地方需要注意的。首先第一步把已知的服务器安装包发送到第三台服务器上,再手动激活一下的。

在激活之前做一个复制,再来到第二台服务器上,复制 scp-r,把 Azkaban 已测的服务安装包拷贝给 Node-3这台机器,拷贝到 export servers 下,这里需要一个密码,需输入密码。拷贝完之后,来到 cd 到 export servers Azkaban 下。

image.png

接下来有一个问题需要注意,比如说现在把之前的集群停止,现在是一个 WebServer 加一个 ExecutorServer,首先去关闭自行服务器, cd azkaban-exec-server 的登录下,SNAPSHOT bin 下的 shutdown,回车一直行,这个自行服务器就被关闭了,关闭完成之后,会发现来到这个当中刷新这个表的数据,这个记录没有了。

image.png

用完之后,接下来启动的后果是什么,首先把 SNAP 服务器关闭,这是特别需要注意的一点,使用 bin 下的 shutdown-web 服务器关闭,相当于整个机器全关闭。

先启动两个自行服务器,会发现不可思议的一面,首先来到第二台机上启动自行服务器,使用 bin 下的 start 会发现第二台服务器启动之后,来到表中已刷新,会发现注册一个自行服务器 Node-2上的12321,但是现在的状态是00表示一个未激活的,发现第一个一点,自行服务器当他关闭再启动之后,它又变成未激活的,需要启动之后手动的去激活。

image.png

再到第三台服务器上也去启动自行服务器,使用 bin 下的 start,也在表中刷新发现 Node-3也注册了,但都是0。

这个时候怎么激活呢?可以强制改变成1再刷新,相当于指导画龙,数据库的修改。另外一个是官方推荐使用命令手动打发起请求激活,比如说复制,首先在第三台服务器安装包的跟目录下,注意所有操作都是在安装包的跟目录下,回车走一个,会发现状态 success 已刷新,发现激活变为1;再来到第二台服务器上激活注意把前面的替换成 Node-2,回车又激活了,发现刷新两个状态都变为1了,刚才发起的本质是自行服务器把 action 变为 activate ,用离异来表示。启动 cd..到 Azkaban-web 服务器下,使用 bin 下的 start,意味着当前的集群中有了一个 web 服务器和两个自行服务器,而两个自行服务器,一个位于 Node-2上,一个位于 Node-3上。

做一个简单验证:打开页面,刷新一下重新登录 azkaban,密码也是 Azkaban,发现一个项目去执行它,看看到底是哪个自行服务器来执行的。

image.png

比如说 continue 自行结束了,自行点击 Flow Log 当前执行的是 Node-3在执行的,说明是第三台机器自行服务器在自行,接下来把第三台服务器关掉,使用 bin 目录下的 shutdown,关掉之后意味着当前集群当中只有一个自行服务器,在表中刷新一下发现记录没有了,这时候还有一个能不能执行呢?

刷新一下发现还有一个依然可以执行,再看下 Flow Log 是 Node-2在执行,说明两个可以分别执行,在某种程度上做了一个高可用。如果可以部署很多服务器,是所谓的 multiple-executor 模式部署当中特别注意的是 executor 服务器。


三、小结

关于 mulitiple-executor 需要注意哪些事项?

所谓的 multiple-executor 指的是可以在多个机器分别部署 executor 服务器,相当于做了一个负载均衡都可用的概念。

另外一个特别注意:executor 启动(包括重启)的时候默认不会激活,需要手动激活,这个启动第一次激活后面怎么又会失败?当它关闭完之后数据把它删除了。

对应的 mysql 中的表 executors,active:0表示未激活,1表示激活,可以自己手动修改数据提交激活,也可以使用官方的命令请求激活,官方的命令可以看到是发送一个所谓的请求

(curl-G“node-3:$(<./executor.port)/executor?action=acticvate”&&echo),在一个多模式下的部署方式,azkaban随机选择一个进行相关的自行,保证提交度。这些是需要注意的事项。其他的使用跟字节没有任何区别。

在节当中可以根据自己公司的业务规模调度的复杂程度选择 two-server 或者 multiple-executor.所谓的 solo-server 可以做一个简单的测试。

相关文章
|
5月前
|
调度 Apache
airflow scheduler -D 是什么作用
【6月更文挑战第30天】airflow scheduler -D 是什么作用
91 1
|
5月前
|
Kubernetes 监控 调度
K8S中Scheduler原理分析
【6月更文挑战第20天】K8S Scheduler是集群的关键组件,它监听API Server,为新Pod选择合适的Node。
|
5月前
|
存储 调度 Apache
airflow scheduler 这些命令是什么作用
【6月更文挑战第30天】airflow scheduler 这些命令是什么作用
39 0
|
6月前
|
资源调度
在SchedulerX中,你可以使用`schedulerx.output()`函数来向Worker报告运行结果
【1月更文挑战第7天】【1月更文挑战第35篇】在SchedulerX中,你可以使用`schedulerx.output()`函数来向Worker报告运行结果
44 1
|
API iOS开发 MacOS
【TVM 学习资料】使用 Auto-scheduling 优化算子
【TVM 学习资料】使用 Auto-scheduling 优化算子
116 0
|
Web App开发 SQL 调度
分布式工作流任务调度系统--Easy Scheduler 1.0.3 发布
Easy Scheduler Release 1.0.3 Easy Scheduler 1.0.3是1.x系列中的第四个版本。 新特性: [EasyScheduler-254] 流程定义删除和批量删除 [EasyScheduler-347] 任务依赖增加“今日” [EasySchedule.
2230 0
|
缓存 分布式计算 Scala
Spark2.4.0源码分析之WorldCount Stage划分(DAGScheduler)(四)
理解FinalStage的转化(即Stage的划分)
891 0
|
分布式计算 Spark
Spark DAGScheduler中stage转换成TaskSet的过程
Spark DAGScheduler把Stage转换成TaskSet
843 0
Jmeter-使用Ultimate Thread Group插件来设置负载场景
前言: Jmeter插件相关请移步:https://www.jianshu.com/p/130c7fddeddf 自定义线程组:jp@gc - Ultimate Thread Group,功能强大,可以实现多种场景设置,详细介绍见本文。
1555 0