azkaban:
crontab:计划任务 定时任务
crontab -e
* * * * * shell
m h d M w
工作流调度的:
crontab 只能执行 定时任务的
两个任务:
任务1
任务2 想在任务1执行完成之后开始执行
相互之间有依赖关系的任务 复杂的任务 crontab不能满足调度的
oozie:
特点:
1)解决复杂的任务调度
基于定时任务的 基于依赖 基于时间间隔 基于事件
任务调度机制 比较完善
2)支持高可用
缺点:
重 使用的时候配置的比较繁琐和复杂
azkaban:
特点:
1)轻便
2)可以解决复杂的任务调度
基于定时任务的
基于时间间隔的
基于依赖
缺点:
3.0之前的版本 不支持高可用
3.0之后的版本才支持高可用的
共同优点:提供了完善的可视化操作界面
安装步骤:
版本:2.5.0
安装的节点:
azkaban调度的任务类型:
1)hadoop
2)hive
3)java
4)spark
5)shell
。。。。。。
hadoop02上
步骤:
1)上传安装包
azkaban-executor-server-2.5.0.tar.gz azkaban后台执行器的安装包
azkaban-web-server-2.5.0.tar.gz azkaban的web界面的安装
登录界面
用户名 密码 --- 存储在关系型数据库的
azkaban-sql-script-2.5.0.tar.gz azkaban的数据准备脚本
2)解压 三个安装包都需要解压
3)配置环境变量
export AZKABAN_WEB= /home/hadoop/apps/azkaban/azkaban-web-2.5.0
export AZKABAN_EXECUTOR=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$HIVE_HOME/bin:$SQOOP_HOME/bin:$AZKABAN_WEB/bin:$AZKABAN_EXECUTOR/bin
source /etc/profile
4)准备mysql数据
只需要执行在mysql中执行刚才解压的脚本包就可以
create database azkaban;
use azkaban;
source /home/hadoop/apps/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
5)生成数字校验证书
这个命令在哪一个目录下运行 数字证书就会生成在哪一个目录下
运行命令之前先切换目录在 azkaban下
cd /home/hadoop/apps/azkaban
执行数字证书生成命令:
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
6)将数字校验证书移动到web工程下
mv keystore azkaban-web-2.5.0/
7)时区文件
/usr/share/zoneinfo/Asia
cp Shanghai /etc/localtime 测试一下
8)修改azkaban的配置文件
1)azkaban-web-2.5.0
/home/hadoop/apps/azkaban/azkaban-web-2.5.0/conf
1)azkaban.properties
参见文档
2)azkaban-users.xml azkaban的用户管理
<user username="hadoop" password="123456" roles="admin,metrics"/>
2)azkaban-executor-2.5.0
/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf
azkaban.properties
9)启动azkaban
启动web
azkaban-web-start.sh
启动executor:
azkaban-executor-start.sh
访问web:
https://hadoop02:8443
报错:
1)derby的错误
/home/hadoop/apps/jdk1.8.0_73/db/lib
将这个目录下的derby.jar放在
cp derby.jar /home/hadoop/apps/azkaban/azkaban-web-2.5.0/lib/
cp derby.jar /home/hadoop/apps/azkaban/azkaban-executor-2.5.0/lib/
重启web和executor
azkaban的使用
.job文件
#command.job 和文件名一样的
type=command 运行的任务的类型
command=echo 'hello azkaban' >> /home/hadoop/haha.txt