Azkaban的安装部署

我的上一篇文章:在Windows系统下编译自动任务调度工具Azkaban

编译成功之后,有了安装包,接下来就可以进行安装部署了。本文主要讲解分布式部署,即调度器和执行器分开。

编译出来的执行器安装包azkaban-exec-server,调度器安装包azkaban-web-server,和Mysql数据库建表语句。

首先,连上mysql数据库,新建数据库,我这库名就叫azkaban,直接用Navicat连上数据库,跑了建表脚本,表就建好了。

Azkaban的安装部署_第1张图片   Azkaban的安装部署_第2张图片

                                                                                                           图(1)和图(2)

正式环境中调度服务器和执行服务器应该是独立的两台机器,因为目前手头只有一台闲置的服务器,就都在一台机器上安装了。

建议为调度和执行各新建一个Linux用户,我这里新建了 azkexec和azkweb两个linux用户,对应的HOME目录分别是/home/ap/akzexec和/home/ap/azkweb,见图(3)。

Azkaban的安装部署_第3张图片

                                                        图(3)

将编译生成的安装包传到对应的目录下,先安装azkaban-exec-server,进入/home/ap/azkexec目录,将压缩包解压缩,见图(4)。

Azkaban的安装部署_第4张图片

                                                                          图(4)

我把解压后的文件夹的名字后缀给删了,太长了。目录就为azkban-exec-sever,进入该目录,可以看到结构如下,见图(5),

                                                   图(5)

bin目录里为启动/停止脚本;conf目录为配置文件,我们主要编辑配置文件;lib就是源码编译出的各种jar包;plugins中是插件,本文暂不涉及。

首先进入conf目录,看到如下三个文件,见图(6)

图(6)

只需要更改azkaban.properties文件,初始文件是这样的,见图(7)

Azkaban的安装部署_第5张图片

                                                           图(7)

我们需要改的有

default.timezone.id=America/Los_Angeles    改为 default.timezone.id=Asia/Shanghai

mysql.port=3306   按数据库实际情况改   

mysql.host=localhost  按数据库实际情况改

mysql.database=azkaban    按数据库实际情况改

mysql.user=azkaban   按数据库实际情况改

mysql.password=azkaban   按数据库实际情况改

最好指定执行服务器的端口,所以最后加一个executor.port=端口号。

最终exec服务器conf目录下的azkaban.properties文件内容如下图(8)。

Azkaban的安装部署_第6张图片

                                                                             图(8)

改好后,就可以启动了。需要在azkaban-exec-server目录下执行./bin/start-exec.sh,结果报错,见下图(9),这个错在我上一篇文章:在Windows系统下编译自动任务调度工具Azkaban 末尾提到过,由于我是在Windows系统下编译的安装包,换行符是^M$,Linux系统无法识别,所以需要将bin目录下的sh脚本的编码都改为Linux格式的。可以参考:https://www.zhihu.com/question/22130727进行修改。

                                                                               图(9)

重新执行./bin/start-exec.sh,应该就可以正常启动exec-server成功了。

执行./bin/shutdown-exec.sh,将停止exec-server。

启动成功后,数据库executors表中将会有exec-server信息数据了,见图(10)。

      

                                      图(10)

可以看到host 是一串字符串(由于我这个是阿里云机器,生成的主机名)。这里最好改成机器的真实IP,不然后面调度服务器可能连不上该执行服务器,因为无法识别这个host。不改的话也可以,就需要调度服务器自己配置一下hosts,解析这个主机名字符串到真实的IP。由于我这里调度和执行是同一台服务器,调度服务器是可以识别这个host的,我这里就不改了。

另外,注意到active字段为0,表明这台执行器并没有激活,需要执行激活脚本“curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo”激活一下,我这里把上述脚本放在了一个activate.sh文件中,方便每次执行。执行结果见图(11)。

                                                                    图(11)

执行之后,再看executors表中的数据,active字段值为1了,见图(12)。

                              图(12)

至此azkaban-exec-server安装部署完成。

下面进行azkaban-web-server的安装部署,有了上面的经验,下面就容易多了。

同样,先把安装包传到azkweb用户家目录下,进入/home/ap/azkweb目录,将压缩包解压缩,见图(13)。

Azkaban的安装部署_第7张图片

                                                                             图(13)

我把解压后的文件夹的名字后缀给删了,太长了。目录就为azkban-web-sever,进入该目录,可以看到结构如下,见图(14),

                                                   图(14)

bin目录里为启动/停止脚本;conf目录为配置文件,我们主要编辑配置文件;lib就是源码编译出的各种jar包;web中是页面资源文件,可以看到比azkaban-exec-server目录多了web文件夹,少了plugins文件夹,其实调度器也可以有插件,本文暂不涉及。

首先进入conf目录,看到如下四个文件,相比exec-server多了azkaban-users.xml,该文件主要定义azkaban-web-server的登录账号以及相应的权限,见图(15)和图(16)。本文不做更改。

                                       图(15)

Azkaban的安装部署_第8张图片

                                                               图(16)

只需要更改azkaban.properties文件,初始文件是这样的,见图(17)

Azkaban的安装部署_第9张图片

                                                                    图(17)

我们需要改的有

default.timezone.id=America/Los_Angeles    改为 default.timezone.id=Asia/Shanghai

mysql.port=3306   按数据库实际情况改   

mysql.host=localhost  按数据库实际情况改

mysql.database=azkaban    按数据库实际情况改

mysql.user=azkaban   按数据库实际情况改

mysql.password=azkaban   按数据库实际情况改

需要注意的是azkaban.executorselector.filters中的“MinimumFreeMemory”选项,如果配置该选项,则调度器在选择执行器执行时,会进行内存检查,最少需要6G以上内存。CpuStatus最大需要95%以下。

最终web服务器conf目录下的azkaban.properties文件内容如下图(18)。

Azkaban的安装部署_第10张图片

                                                                            图(18)

改好后,就可以启动了。需要在azkaban-web-server目录下执行./bin/start-web.sh,结果报错,见下图(19),这个错在我上一篇文章:在Windows系统下编译自动任务调度工具Azkaban 末尾提到过,由于我是在Windows系统下编译的安装包,换行符是^M$,Linux系统无法识别,所以需要将bin目录下的sh脚本的编码都改为Linux格式的。可以参考:https://www.zhihu.com/question/22130727进行修改。

                                                                             图(19)                                                        

重新执行./bin/start-web.sh,应该就可以正常启动web-server成功了。

 

执行./bin/shutdown-web.sh,将停止web-server。

访问ip:port后,如下图(20)。

Azkaban的安装部署_第11张图片

                                                                                图(20)

根据azkaban-users.xml中记录的账号密码登录进去,就可以上传任务了,具体的任务编写本文不涉及,建议用官方提供的例子测试以下,然后照着写就可以。

最后提一下,Azkaban默认的通知方式,只有邮件,我的下一篇文章中将涉及通知插件的编写、编译与安装部署。

 

你可能感兴趣的:(Azkaban)