Azkaban学习视频心得

1、简介

Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,主要用于在一个工作流
内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的 key:value 对的方式,通
过配置中的 dependencies 来设置依赖关系。Azkaban 使用 job 配置文件建立任务之间的依赖
关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流

2、Azkaban特点

  1. 兼容任何版本的 hadoop

  2. 易于使用的 Web 用户界面

  3. 简单的工作流的上传

  4. 方便设置任务之间的关系

  5. 调度工作流

  6. 模块化和可插拔的插件机制

  7. 认证/授权(权限的工作)

  8. 能够杀死并重新启动工作流

  9. 有关失败和成功的电子邮件提醒

3、ooize 和 azkaban 特性对比

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aQgLVaYI-1612597740144)(../../AppData/Roaming/Typora/typora-user-images/image-20210206103633134.png)]

4、安装流程(确保时间同步)

下面的test为主机名

1.解压安装包,并将所有文件放入/usr/azkaban下

tar -zxvf azkaban-web-server-2.5.0.tar.gz 
tar -zxvf azkaban-sql-script-2.5.0.tar.gz 
tar -zxvf azkaban-jobtype-2.5.0.tar.gz
tar -zxvf azkaban-hdfs-viewer-2.5.0.tar.gz
tar -zxvf azkaban-executor-server-2.5.0.tar.gz

2.将表结构导入到mysql数据库中

mysql> create database azkaban;
mysql> use azkaban;
mysql> source /usr/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;
mysql> create user 'hive' identified by 'hive';(创建hive用户的两步是之前装hive就有的用户,仅做参考)
mysql> grant all privileges on *.* to 'hive' with grant option;
mysql> flush privileges;

3.生成keystore文件
在/usr/azkaban/azkaban-web-2.5.0 路径下输入如下命令

keytool -keystore keystore -alias jetty -genkey -keyalg RSA
		输入密钥库口令:  password  (jetty.password 的值)
		再次输入新口令:  password
		您的名字与姓氏是什么?
		  [Unknown]:  zhang
		您的组织单位名称是什么?
		  [Unknown]:  dove
		您的组织名称是什么?
		  [Unknown]:  dove
		您所在的城市或区域名称是什么?
		  [Unknown]:  shanghai
		您所在的省/市/自治区名称是什么?
		  [Unknown]:  shanghai
		该单位的双字母国家/地区代码是什么?
		  [Unknown]:  china
		CN=zhang, OU=dove, O=dove, L=shanghai, ST=shanghai, C=china是否正确?
		  [否]:  y
		  	输入 <jetty> 的密钥口令 (jetty.trustpassword)
		(如果和密钥库口令相同, 按回车):

会生成一个 keystore 文件,然后执行如下命令移动到bin目录下

mv ./keystore ./bin/

4.配置azkaban.properties文件(cd /usr/azkaban/azkaban-web-2.5.0/conf)

#修改的配置,主要是路径
	web.resource.dir=./../web/
	default.timezone.id=Asia/Shanghai
	user.manager.xml.file=./../conf/azkaban-users.xml
	executor.global.properties=./../conf/global.properties
#数据库部分修改或添加
	database.type=mysql
	mysql.port=3306
	mysql.host=test
	mysql.database=azkaban
	mysql.user=hive
	mysql.password=hive
	mysql.numconnections=100
#添加或修改
	jetty.maxThreads=25
	jetty.ssl.port=8443
	jetty.port=8081
	jetty.keystore=keystore
	jetty.password=password
	jetty.keypassword=password
	jetty.truststore=keystore
	jetty.trustpassword=password

5.配置azkaban.properties文件(cd /usr/azkaban/azkaban-executor-2.5.0/conf)

#修改配置
	default.timezone.id=Asia/Shanghai
	azkaban.jobtype.plugin.dir=./../plugins/jobtypes
	executor.global.properties=./../conf/global.properties
#修改数据库账号密码和host
	database.type=mysql
	mysql.port=3306
	mysql.host=test 
	mysql.database=azkaban (这个原先是 azkaban2 )
	mysql.user=hive   
	mysql.password=hive
	mysql.numconnections=100

6.在/usr/azkaban/azkaban-executor-2.5.0目录下

mkdir -p plugins/jobtypes

7.启动 Web Server和 Executor Server

在home目录执行(执行不了就去对应的bin目录执行)

./bin/azkaban-executor-start.sh 
.bin/azkaban-web-start.sh

8.https://test:8443端口访问并输入azkaban/azkaban (账号密码在 /usr/azkaban/azkaban-web-2.5.0/conf/azkaban-users.xml)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y7dOImr9-1612597740147)(../../AppData/Roaming/Typora/typora-user-images/image-20210206113155392.png)]

5、案例实操

1)、单job工作流(指定目录创建目录)

①、创建 job 描述文件(记住后面不要接空格)

#command.job
type=command
command=mkdir /usr/azkaban/test_azkaban

②、将 job 资源文件打包成 zip 文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U0ySGF8V-1612597740148)(../../AppData/Roaming/Typora/typora-user-images/image-20210206114843934.png)]

③、通过 azkaban 的 web 管理平台创建 project 并上传 job 的 zip 包

先创建一个project,右上角Create Project(建议命名project_1),然后点击右上角Upload把zip文件上传

④、启动执行该 job

点击项目内的Execute FLow即可执行,点击后左边的Schedule是定时,这边不用定时直接点击右边Execute即可执行

⑤、查看结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RWOyZUil-1612597740150)(../../AppData/Roaming/Typora/typora-user-images/image-20210206115335856.png)]

再看看虚拟机内是否已经有此目录文件,确认结果

2)、多job工作流(依赖关系)

只有当第一个执行完后第二个才可以执行,这边用的是先创建目录再在此目录下创建文件

具体操作和单job一样,只是描述文件不同,两个文件同时压缩即可

# foo.job
type=command
command=mkdir /usr/azkaban/az
# bar.job
type=command
dependencies=foo
command=touch /usr/azkaban/az/test.txt

3)、MapReduce任务(wordcount)

①、创建描述文件

# foo.job
type=command
command=yarn jar 1.jar wordcount /input /output

代码里1是jar包的名

②、将jar包和描述文件一起打包

③、执行,操作同1)

注意:确保hdfs上有input目录且该目录下有待处理的文件

4)、hive任务

①、创建 job描述文件和hive脚本

hive.sql

use default;
drop table if exists aztest;
drop table if exists azres;
create external table aztest(id int, name string)
row format delimited fields terminated by '\t'
location '/Azkaban';
create table azres as select * from aztest;
insert overwrite directory '/Azkaban/hiveoutput' select count(1) from aztest;

hive.job

# hive.job
type=command
command=/usr/local/soft/hive-1.2.1/bin/hive -f 'hive.sql'

hdfs上的路径里要有数据,上面是在/Azkaban下放置了student表

②、将所有job资源文件(sql+job)打到一个zip包中

③、在azkaban的web管理界面创建工程并上传zip包并启动任务

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友培

数据皆开源!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值