azkaban使用

Azkaban介绍

我们都知道,大数据的分析用了很多的任务,之前我们用crontab跑定时脚本,基于hadoop的我们用阿兹卡班。  Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,主要用于在一个工作流 内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的 key:value 对的方式,通 过配置中的 dependencies 来设置依赖关系。Azkaban 使用 job 配置文件建立任务之间的依赖 关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流

安装

下载地址

http://azkaban.github.io/downloads.html

安装过程

解压并初始化mysql

解 压 azkaban-web-server-2.5.0.tar.gz 、 azkaban-executor-server-2.5.0.tar.gz 、 azkaban-sql-script-2.5.0.tar.gz 到/opt/azkaban下面

在这里插入图片描述
mysql数据库新建一个azkaban数据库。
在这里插入图片描述

将azkaban sql表结构导入mysql

该文件位于解压目录下。(一定是带all的sql文件)
在这里插入图片描述
把这个导入mysql
在这里插入图片描述

生成key

首先给我们的两个目录换个名字
[root@bdc15aaf8607 azkaban]# mv azkaban-web-2.5.0/ server
[root@bdc15aaf8607 azkaban]# mv azkaban-executor-2.5.0/ executor
然后用安装jdk后自带的keytool生成密钥和证书
[root@bdc15aaf8607 conf]# cd /opt/azkaban/server
[root@bdc15aaf8607 server]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA

下面的密码我全部设置为00000,具体根据自己情况。

[root@bdc15aaf8607 server]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA
Enter keystore password:  
Re-enter new password: 
What is your first and last name?
  [Unknown]:  
What is the name of your organizational unit?
  [Unknown]:  
What is the name of your organization?
  [Unknown]:  
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=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
  [no]:  
What is your first and last name?
  [Unknown]:  
What is the name of your organizational unit?
  [Unknown]:  
What is the name of your organization?
  [Unknown]:  
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=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
  [no]:  y

Enter key password for <jetty>
	(RETURN if same as keystore password):  

Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore keystore -destkeystore keystore -deststoretype pkcs12".
[root@bdc15aaf8607 server]# ls
azkaban.version  bin  conf  extlib  keystore  lib  plugins  web

配置server的azkaban.properties

vim azkaban.properties

#默认web server存放web文件的目录
web.resource.dir=/opt/azkaban/server/web/
#默认时区,已改为亚洲/上海 默认为美国
default.timezone.id=Asia/Shanghai
#用户权限管理默认类(绝对路径)
user.manager.xml.file=/opt/azkaban/server/conf/azkaban-users.xml

#Loader for projects
#global配置文件所在位置(绝对路径)
executor.global.properties=/opt/azkaban/executor/conf/global.properties

#数据库类型
database.type=mysql
#端口号
mysql.port=3306
#数据库连接IP
mysql.host=hadoop102
#数据库实例名
mysql.database=azkaban
#数据库用户名
mysql.user=root
#数据库密码
mysql.password=000000

#SSL文件名(绝对路径)
jetty.keystore=/opt/azkaban/server/keystore
#SSL文件密码
jetty.password=000000
#Jetty主密码与keystore文件相同
jetty.keypassword=000000
#SSL文件名(绝对路径)
jetty.truststore=/opt/module/azkaban/server/keystore
#SSL文件密码
jetty.trustpassword=000000

配置server的azkaban-users.xml

加入第三个admin这一个

<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>

配置executor

[root@bdc15aaf8607 conf]# pwd
/opt/azkaban/executor/conf
[root@bdc15aaf8607 conf]# ls
azkaban.private.properties azkaban.properties global.properties
[root@bdc15aaf8607 conf]# vi azkaban.properties

#Azkaban
default.timezone.id=Asia/Shanghai

# Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=plugins/jobtypes

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

database.type=mysql
mysql.port=3306
mysql.host=mysql
mysql.database=azkaban
mysql.user=root
mysql.password=apusic2019
mysql.numconnections=100

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

启动

启动executor,再启动server
nohup /opt/azkaban/executor/bin/azkaban-executor-start.sh &
nohup /opt/azkaban/server/bin/azkaban-web-start.sh &

jps 一下
[root@25a0d772b5bc opt]# jps
128 Jps
103 AzkabanWebServer
41 AzkabanExecutorServer

然后看看能不能符问8443,https://ip:8443
重要的事情说三遍
https
https
https不然ssl证书不能用
在这里插入图片描述
账户密码我们刚刚添加了admin用户,登入。
在这里插入图片描述

案例

1.单一任务

新建文件first.job
内容
#first.job
type=command
command=echo ‘this is my first job’
然后将job文件打成zip包上传到azkaban进行调度。
在这里插入图片描述

2.多个任务

start.job
#start.job
type=command
command=touch /opt/module/kangkang.txt
第二个job:step1.job依赖start.job
[atguigu@hadoop102 jobs]$ vim step1.job
#step1.job
type=command
dependencies=start
command=echo “this is step1 job”
第三个job:step2.job依赖start.job
[atguigu@hadoop102 jobs]$ vim step2.job
#step2.job
type=command
dependencies=start
command=echo “this is step2 job”
第四个job:finish.job依赖step1.job和step2.job
[atguigu@hadoop102 jobs]$ vim finish.job
#finish.job
type=command
dependencies=step1,step2
command=echo “this is finish job”

借用一下简书https://www.jianshu.com/p/e13d6a11420c的图做一下和airflow的比较。
在这里插入图片描述

参考:www.atguigu,com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值