Azkaban

Azkaban

Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

Azkaban功能特点:1.兼容所有Hadoop版本

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

                               3.更容易设置job的依赖关系

                               4.可以配置定时任务调度

                               5.邮件警告失败或成功 等等

Azkaban架构:

Azkaban_第1张图片

 

Azkaban使用MySQL去做一些状态的存储

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

AzkabanWebServer对数据库的使用:项目管理:对项目权限和上传文件的管理;执行流程状态:对正在执行的程序进行跟踪;查看任务执行结果以及历史日志;调度程序:保持预定的工作状态。

 

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

AzkabanExecutorServer 对数据库的使用:获取项目:从数据库中检索项目文件;执行工作流或Jobs:从数据库获取要执行的任务流;Logs:存储作业的输出日志,并将其流入数据库;不同的依赖进行交流:如果一个流在不同的执行器上运行,它将从数据库中获取状态

安装Azkaban:

1.要先配置mysql。

   1.1修改mysql的编码,vim /etc/my.cnf

Azkaban_第2张图片

  1.2重启mysql,service mysqld restart 然后进入mysql,创建azkaban数据库并授权,刷新权限。与创建hive数据库相同。

2.配置Azkaban Web Server

 2.1解压Azkaban压缩包 unzip azkaban-web-2.5.0.zip

 2.2上传mysql驱动包 

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

 2.3修改配置文件

 修改azkaban.properties文件 cd azkaban-web-2.5.0/conf/   vim azkaban.properties 

#默认时区改为亚洲/上海 默认为美国 
default.timezone.id=Asia/Shanghai  
#数据库连接IP  
mysql.host=master

修改文件权限:  chmod 755 /home/lanou/azkaban/azkaban-web-2.5.0/bin/*

配置jetty ssl: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
(RETURN if same as keystore password): password

     这里的密码要与 azkaban-web-2.5.0/conf/azkaban.properties  中设置的密码相同,否则会报错Keystore was tampered with, or password was incorrect。

 

1.job:

type=command
command=hadoop fs -mkdir /test
command.1=hadoop fs -put /home/lym /hadoop-2.7.1/README.txt /test

2.job:

type=command
command=hadoop jar /home/lym/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /test /test-out
dependencies=1

实现上传/README.txt并且用wordcount计算

把需要运行的job放在同一个文件下面打成.zip格式的包,注意 Azkaban目前只支持.zip格式

页面操作:首先是登陆azkaban;创建一个工程;上传job;执行job;查看job执行情况

绿色代表成功,蓝色是运行,红色是失败。可以查看job运行时间,依赖和日志,点击details可以查看各个job运行情况

 

最后补充一个坑,azkaban执行的脚本需要包一层,比如执行a.sh 需要写个b.sh来封装下,调度里写b.sh。否则可能出现脚本没有执行的情况,亲测。

你可能感兴趣的:(Azkaban,大数据)