Azkaban 工作流引擎

Azkaban是一个由LinkedIn开发的批量工作流任务调度器,主要用于按特定顺序运行一组任务和流程。它支持所有Hadoop版本,提供WebUI进行管理和跟踪工作流。本文详细介绍了Azkaban的功能特点、局限性、架构,以及包括MySQL配置、Jetty SSL设置、executor服务器配置在内的完整安装部署步骤。
摘要由CSDN通过智能技术生成

1.Azkaban是什么

(1)Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。

(2)Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

2.Azkaban 功能特点

兼容所有Hadoop版本

可以通过WebUI来进行管理配置,操作方便

更容易设置job的依赖关系

可以配置定时任务调度

邮件警告失败或成功

SLA告警

kill和restart工作流

3.Azkaban 的局限性

Azkaban也有一些局限性,例如任务之间的依赖,比如我们希望任务A依赖于B,但是只有B完全执行完成A才可以启动

4.Azkaban 的架构

fdsf

4.1 MySQL实例-Azkaban使用MySQL去做一些状态的存储

4.2 Azkaban Web服务-Azkaban使用Jetty作为Web服务器,用作控制器以及提供Web界面

Azkaban Web服务对数据库的使用:

1项目管理:对项目权限和上传文件的管理。

2执行流程状态:对正在执行的程序进行跟踪。

3查看任务执行结果以及历史日志

4调度程序:保持预定的工作状态。

5 SLA:保持所有的SLA规则

4.3 Azkaban执行服务器executor-Azkaban执行服务器,执行提交的工作流

Azkaban执行服务器对数据库的使用:

1获取项目:从数据库中检索项目文件。

2执行工作流或Jobs:从数据库获取要执行的任务流。

3 Logs:存储作业的输出日志,并将其流入数据库。

4不同的依赖进行交流:如果一个流在不同的执行器上运行,它将从数据库中获取状态

5.Azkaban 安装部署

Azkaban的资源下载 : http://azkaban.github.io/downloads.html

5.1 配置Mysql

      5.1.1 修改mysql的编码

      1.启动Mysql服务   

service mysqld start

   

    2.启动mysql后,以root登录mysql

mysql -u  root –p

 3.执行编码显示

 show variables like 'character%';

注意:UTF-8的不修改;

不是UTF-8的在linux下修改mysql的配置文件my.cnf,文件位置默认/etc/my.cnf文件

(1) 找到客户端配置[client] 在下面添加
       default-character-set=utf8 //默认字符集为utf8
(2) 在找到[mysqld] 在下面添加
       character-set-server=utf8 //默认字符集为utf8
(3) 修改好后,重新启动mysql即可

重启mysql  登录mysql查询一下字符编码

重启mysql命令:service mysqld restart

5.1.2登陆mysql执行脚本

mysql –uroot –p

#为Azkaban创建数据库

CREATE DATABASE azkaban;

#授权

set password=password('123456');

update mysql.user set authentication_string=password('123456') where user='root';

grant all on *.* to azkaban@'%'  identified by 'azkaban';

grant all on *.* to azkaban@'hadoop01'  identified by 'azkaban';

grant all on *.* to azkaban@'localhost'  identified by 'azkaban';

#刷新权限

flush privileges;

#退出

exit

#使用azkaban登陆

mysql -uazkaban -pazkaban

use azkaban;

#执行初始化脚本(Azkaban需要的数据表)

source  /home/azkaban/create-all-sql-2.5.0.sql   

5.2配置Azkaban Web Server

5.2.1 解压Azkaban压缩包

unzip azkaban-web-2.5.0.zip 

  

报上面这个错的话 执行如下吗命令

yum -y install unzip

5.2.2上传mysql驱动包:

cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar azkaban-web-2.5.0/extlib/

5.3配置jetty ssl

5.3.1 执行如下命令:

              keytool -keystore keystore -alias jetty -genkey -keyalg RSA

              执行完上面的命令之后显示如下信息:

              Enter keystore password:  password

              What is your first and last name? 您的名字与姓氏是什么?

              [Unknown]:  jetty.mortbay.org

              What is the name of your organizational unit?您的组织单位名称是什么?

              [Unknown]:  Jetty

              What is the name of your organization?您的组织名称是什么?

              [Unknown]:  Mort Bay Consulting Pty. Ltd.

              What is the name of your City or Locality?您所在的城市或区域名称是什么?

              [Unknown]:

              What is the name of your State or Province?您所在的州或省份名称是什么?

              [Unknown]:

              What is the two-letter country code for this unit?该单位的两字母国家代码是什么

              [Unknown]:

              Is CN=jetty.mortbay.org, OU=Jetty, O=Mort Bay Consulting Pty. Ltd.,

              L=Unknown, ST=Unknown, C=Unknown correct?正确吗?

              [no]:  yes

              Enter key password for <jetty>

              (RETURN if same as keystore password):  password

              注意:这里keystore的密码为passwordkey的密码为password可自行修改

5.3.2生成 keystore

完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中,命令如下:

[lan@master ~]$ cp keystore azkaban/azkaban-web-2.5.0/

5.4修改配置文件

5.4.1进入azkaban web服务器安装目录 conf目录,修改azkaban.properties文件

[lan@master azkaban]$ cd azkaban-web-2.5.0/conf/

[lan@master conf]$ vi  azkaban.properties

 

参数说明如下,只修改红色字体部分内容:

#Azkaban Personalization Settingsvi

#服务器UI名称,用于服务器上方显示的名字

azkaban.name=Test      

#描述                                                          

azkaban.label=My Local Azkaban  

#UI颜色                            

azkaban.color=#FF3601     

#默认servlet路径                                           

azkaban.default.servlet.path=/index 

#默认根web目录                       

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

# global配置文件所在位置

executor.global.properties=conf/global.properties 

#  

azkaban.project.dir=projects                                               

#数据库类型

database.type=mysql

#端口号                                                             

mysql.port=3306

#数据库连接IP                                                                      

mysql.host=master    

#数据库实例名                                             

mysql.database=azkaban 

#数据库用户名                                                   

mysql.user=azkaban  

#数据库密码                                                             

mysql.password=azkaban 

#最大连接数                                                        

mysql.numconnections=100                                                 

# Velocity dev mode

velocity.dev.mode=false

# Jetty服务器属性.

#最大线程数

jetty.maxThreads=25 

#Jetty SSL端口                                                             

jetty.ssl.port=8443 

#Jetty端口                                                                 

jetty.port=8081 

#SSL文件名                                                                       

jetty.keystore=keystore   

#SSL文件密码                                                      

jetty.password=password     

#Jetty主密码 与 keystore文件相同                                                    

jetty.keypassword=password     

#SSL文件名                          

jetty.truststore=keystore  

# SSL文件密码                                                            

jetty.trustpassword=password                                                  

#执行服务器属性

#执行服务器端口

executor.port=12321                                                              

#邮件设置  (可以不设置)

#发送邮箱

mail.sender=sunboyscf@163.com    

#发送邮箱smtp地址                                  

mail.host=smtp.163.com                                                      

#发送邮件时显示的名称

mail.user=sunboyscf   

#邮箱密码                                                            

mail.password=**********      

#任务失败时发送邮件的地址                                          

job.failure.email=sunboyscf@163.com 

#任务成功时发送邮件的地址                            

job.success.email=sunboyscf@163.com    

#                      

lockdown.create.projects=false  

#缓存目录                                        

cache.directory=cache                                                           

5.4.2修改文件权限

[lan@master conf]$ chmod 755 /root/azkaban-web-2.5.0/bin/*

5.5配置Azkaban Executor Server

5.5.1解压

[lan@master azkaban]$ unzip azkaban-executor-2.5.0.zip

5.5.2 Azkaban 执行服务器配置

1进入执行服务器安装目录修改配置文件

[lan@master azkaban]$ cd azkaban-executor-2.5.0/conf/

[lan@master conf]$ vi azkaban.properties

 

修改红色字体部分

#Azkaban

#时区

default.timezone.id=Asia/Shanghai                                            

#Azkaban JobTypes 插件配置

#jobtype 插件所在位置

azkaban.jobtype.plugin.dir=plugins/jobtypes                 

#Loader for projects

executor.global.properties=conf/global.properties

azkaban.project.dir=projects

#数据库设置

#数据库类型(目前只支持mysql)

database.type=mysql   

#数据库端口号                                                  

mysql.port=3306  

#数据库IP地址                                                                             

mysql.host=master

#数据库实例名                                                                 

mysql.database=azkaban 

#数据库用户名                                                              

mysql.user=azkaban 

#数据库密码                                                          

mysql.password=azkaban 

#最大连接数                                                                 

mysql.numconnections=100                                                         

#执行服务器配置

#最大线程数

executor.maxThreads=50        

#端口号(如修改,请与web服务中致)                                                    

executor.port=12321

#线程数                                                              

executor.flow.threads=30       

5.5.3修改文件权限

[lan@master conf]$ chmod 755 /root/azkaban-executor-2.5.0/bin/*

5.6用户配置

5.6.1进入azkaban web服务器conf目录,修改azkaban-users.xml

增加管理员用户

[lan@master azkaban]$ cd azkaban-web-2.5.0/conf/

[lan@master conf]$ vi azkaban-users.xml

增加红色字体部分

<azkaban-users>

<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />

                   <user username="metrics" password="metrics" roles="metrics"/>

                   <user username="admin" password="admin" roles="admin,metrics" />

                   <role name="admin" permissions="ADMIN" />

                   <role name="metrics" permissions="METRICS"/>

</azkaban-users>

5.7启动

5.7.1 web服务器

在azkaban web服务器目录下执行启动命令

[lan@master azkaban-web-2.5.0]$ bin/azkaban-web-start.sh ./v

:只能要web服务器根目录运行

5.7.2执行服务器

在执行服务器目录下执行启动命令

[lan@master azkaban-executor-2.5.0]$ bin/azkaban-executor-start.sh ./

:只能要执行服务器根目录运行

启动完成后,在浏览器中输入https://spark01:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击 login.

:这里的服务器由于用到SSL,需要https协议,别打成 http

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值