开发者学堂课程【Azkaban 大数据调度系统课程精讲:multiple-executor 模式部署】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/721/detail/12878
multiple-executor 模式部署
内容介绍:
一、multiple-executor 模式部署的定义
二、节点规划
三、小结
一、multiple-executor 模式部署的定义
所谓的 multiple-executor 模式是可以去部署多个自行服务器,并且这些自行服务器还可以位于不同机器上,相当于从某种角度上对自行服务器备份都可用。
二、节点规划
在这里做一个节点规划,比如在 Node-1下部署一个 mysql,在 Node-2上部署一个 web-server 和一个 exec-server,然后在 Node-3部署一个 exec-server,相当于有两个自行服务器来与自行。
在这种模式下部署很简单,把自行服务器的安装包再发送给其他机器即可,用于相关的启动。但是这里面配置简单,唯一要注意的一点是实行服务器的激活问题,这是 Azkaban 一个不好的地方。
接下来来到它的原数据库当中去看,比如说现在是初设模式,就是一个 wen-server 加上一个 exec-server。这个自行服务器在哪里呢?打开数据库,鼠标位于表字上,发现在当中有一个表叫做 executor,这里面会记录下来当前 Azkaban 能够记录的字音自行服务器有哪些?
现在 Node-2,后面这个属性非常重要,active 表示四副激活 ,0表示未激活,1表示已激活。所以说在进行 two-server 其中的时候需要手动的去激活一下。
接下来重点关注这个激活的问题看看有哪些地方需要注意的。首先第一步把已知的服务器安装包发送到第三台服务器上,再手动激活一下的。
在激活之前做一个复制,再来到第二台服务器上,复制 scp-r,把 Azkaban 已测的服务安装包拷贝给 Node-3这台机器,拷贝到 export servers 下,这里需要一个密码,需输入密码。拷贝完之后,来到 cd 到 export servers Azkaban 下。
接下来有一个问题需要注意,比如说现在把之前的集群停止,现在是一个 WebServer 加一个 ExecutorServer,首先去关闭自行服务器, cd 到 azkaban-exec-server 的登录下,SNAPSHOT 的 bin 下的 shutdown,回车一直行,这个自行服务器就被关闭了,关闭完成之后,会发现来到这个当中刷新这个表的数据,这个记录没有了。
用完之后,接下来启动的后果是什么,首先把 SNAP 服务器关闭,这是特别需要注意的一点,使用 bin 下的 shutdown-web 服务器关闭,相当于整个机器全关闭。
先启动两个自行服务器,会发现不可思议的一面,首先来到第二台机上启动自行服务器,使用 bin 下的 start 会发现第二台服务器启动之后,来到表中已刷新,会发现注册一个自行服务器 Node-2上的12321,但是现在的状态是0,0表示一个未激活的,发现第一个一点,自行服务器当他关闭再启动之后,它又变成未激活的,需要启动之后手动的去激活。
再到第三台服务器上也去启动自行服务器,使用 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,发现一个项目去执行它,看看到底是哪个自行服务器来执行的。
比如说 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 可以做一个简单的测试。