azkaban的三种安装部署方式

一、solo server mode

该模式中webserver和executorsrever运行在同一进程中,进程名是AzkabanSingleServer,使用自带的H2数据库,这种模式包含Azkaban的所有特性,但一般用来学习和测试

1.1节点规划

HOST 角色
hadoop01 Web Server和Executor Server统一进程

 

1.2解压配置(建议把azkaban安装在和hive同一台机子上)

-- 下载azkaban压缩包
    https://github.com/azkaban/azkaban/archive/3.51.0.tar.gz
    在进行官方下载azkaban时, 由于官方并没有提供其已经编译好的安装包, 故需要我们自己进行编译,并且在编译时候, 需要提前安装好maven, Ant , Node 等软件, 

-- 上传到相对应的位置  建议放在和hive一样的地方 然后解压到对应的位置
    mkdir /export/servers/azkaban
    tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/

-- 修改时区
    vim conf/azkaban.properties
    default.timezone.id=Asia/Shanghai 

-- azkaban默认需要3G的内存,剩余内存不足则会报异常 如果内存大于3G 不修改也可以
    vim  plugins/jobtypes/commonprivate.properties
    添加:memCheck.enabled=false

1.3 启动验证 

注:启动/关闭必须进到azkaban-solo-server-0.1.0-SNAPSHOT/目录下 qita目录下不识别
cd azkaban-solo-server-0.1.0-SNAPSHOT/
bin/start-solo.sh

1.4 登录页面

访问Web Server=><http://hadoop01:8081/> 默认用户名密码**azkaban**

1.5 初体验测试

        1)如何创建调度任务

                i、在window上创建job文件(文件的个数和任务的步骤有关系)

                ii、文件内容

                         type=command       #command命令

                         dependencies=某个文件的名称   #如果是第一个则不用写,当前的这个任务依赖的那个job

                         command= echo “xxxxxxxxxx”   #所执行的命令

                iii、将所有的job打包成一个Zip的压缩文件   注意:只能是zip,否则azkaban识别不了

         2)想要执行一个任务

               I、创建一个任务的项目(一个工作流任务就是一个azkaban的项目)

               II、上传工作流的任务的压缩包

               III、检查, 工作流调度步骤图是否和预期的一致

               IV、可以选择立即执行, 或者定时执行

                         

二、two-server

该模式使用MySQL数据库, Web Server和Executor Server运行在不同的进程中

2.1 节点规划

HOST juese
Hadoop01 MySql
Hadoop01 web‐server和exec‐server不同进程 不同的服务器也可以 按自己的来

2.2 mysql配置初始化

-- 查看自己的数据库可不可以连接上去
--可以在外面直接创建数据库 把需要的表导进去   或者是在linux上面执行  一下的代码是在linux上面执行的
-- 建立文件夹
mkdir /export/servers/azkaban
-- 将压缩包解压到对应的文件夹
tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/
-- Mysql上创建对应的库、增加权限、创建表
mysql> CREATE DATABASE azkaban_two_server; #创建数据库
mysql> use azkaban_two_server;
mysql> source /export/servers/azkaban/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql; #加载初始化sql创建表

2.3 web-server服务器配置(配置细心细心在细心)

-- 这些编译好的包在我的资源上面有
mkdir /export/servers/azkaban
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/


生成ssl证书:可以不设置, 主要是为了后面使用https方式访问, 提高安全性
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
	运行此命令后,会提示输入当前生成keystore的密码及相应信息,输入的密码请记住(所有密码统一以123456输入)。
	完成上述工作后,将在当前目录生成keystore证书文件,将keystore拷贝到 azkaban web服务器根目录中。 如: cp keystore azkaban-web-server-0.1.0-SNAPSHOT/

配置:  conf/azkaban.properties

# Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai # 时区注意后面不要有空格  -

# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml

# Azkaban Jetty server properties. 开启使用ssl 并且知道端口 -
jetty.use.ssl=true     
jetty.ssl.port=8443  
jetty.maxThreads=25

# Azkaban Executor settings  指定本机Executor的运行端口 -
executor.host=localhost
executor.port=12321

#  KeyStore for SSL ssl相关配置  注意密码和证书路径 -
jetty.keystore=keystore
jetty.password=123456
jetty.keypassword=123456
jetty.truststore=keystore
jetty.trustpassword=123456

# Azkaban mysql settings by default. Users should configure their own username and password. -
database.type=mysql
mysql.port=3306
mysql.host=node-1
mysql.database=azkaban_two_server
mysql.user=root
mysql.password=hadoop
mysql.numconnections=100

#Multiple Executor 设置为false  -
azkaban.use.multiple.executors=true
#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus 
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1


配置 commonprivate.properties : 此文件不存在需要手动创建在${azkaban-home}/plugins/jobtypes

mkdir -p plugins/jobtypes
vim commonprivate.properties
内容如下: 
azkaban.native.lib=false
execute.as.user=false
memCheck.enabled=false

2.4 exec-server服务器配置

先将exec-server的压缩包, 进行解压操作, 在exec-server的跟目录下, 执行下面的配置:
配置conf/azkaban.properties:

# Azkaban Personalization Settings -
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai

# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml

# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

# Where the Azkaban web server is located -
azkaban.webserver.url=https://node-2:8443

# Azkaban mysql settings by default. Users should configure their own username and password. -
database.type=mysql
mysql.port=3306
mysql.host=node-1
mysql.database=azkaban_two_server
mysql.user=root
mysql.password=hadoop
mysql.numconnections=100

# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30


-- 同样的配置限制内存的条件  内存很大的可以忽略

2.5 集群启动

在对应的跟目录下启动服务
先启动exec-server
再启动web-server
启动webServer之后进程失败消失,可通过安装包根目录下对应启动日志进行排查。

如果看到上述错误, 需要手动激活executor

cd  /export/servers/azkaban/execserver
curl -G "node03:$(<./executor.port)/executor?action=activate" && echo

然后重新启动webserver

2.6 注意事项

           注意1: 配置文件在修改的时候, 一定要格外的注意, 不要修改错了, 尤其的空格的问题
           注意2: 在启动exec-server后, 默认情况只是将其启动了, 并没有对其进行激活, 需要进行手动的激活处理
                curl -G "node03:$(<./executor.port)/executor?action=activate" && echo
                 也可以通过修改executors表中 状态 为 1即可 (暴力修改)
           注意3: 每一次启动web-server 都会检查一遍是否有激活的executors,只会检查一次
           注意4: 每一次启动execserver, 都需要进行重新的激活

三、multiple-executor mode

该模式使用MySQL数据库, Web Server和Executor Server运行在不同的机器中。且有多个Executor Server。该模式适用于大规模应用。

3.1 节点规划

             

HOST 角色
hadoop01 mysql
hadoop02 web-server、exec-server
hadoop03 exec-server

3.2发送executor server到另外一台服务器

发送后直接启动,之后,需要手动激活executor
cd  /export/servers/azkaban/execserver
curl -G "node-3:$(<./executor.port)/executor?action=activate" && echo

3.3激活

激活后, 需要将web server重启, 让其重新检测有那个executor, 否则依然无法使用

 

 

posted @ 2019-09-25 14:41  我の女王  阅读(1086)  评论(1编辑  收藏  举报