一、azkaban是什么
Azkaban是一个批处理工作流作业调度程序,在LinkedIn上创建,用于运行Hadoop作业。Azkaban通过作业依赖项解决排序问题,并提供一个易于使用的web用户界面来维护和跟踪工作流。
二、oozie和azkaban的比较:
1、共同优点:
都提供优美的可视化操作界面,工具实现托拉拽
2、oozie和azkaban的区别:
oozie:
权限控制不好 没有
重 配置比较繁琐的
调度机制比较完善的
配置 xml
支持高可用
azkaban:
有完善的权限控制
相对来说 轻
调度机制没有oozie完善的 90%
配置 properties
azkaban 3.0之前 不支持高可用的 3.0之后的版本支持的
三、常用的调度机制:
基于时间定时
基于时间间隔
基于事件驱动
四、azkaban的安装
4.1安装准备:
azkaban:能够调度的任务类型 shell jar war hive sqoop mapreduce spark ...
保证需要调度的任务类型的环境都是正常的
hadoop
jdk
sqoop
hive
4.2安装版本:
2.5
4.3安装节点:
安装一个节点
这个节点 可以访问 hive hadoop sqoop的客户端的
hadoop03 节点
4.4安装步骤:
azkaban-executor… azkaban的核心驱动包 驱动任务执行的
azkaban-web… 优美界面 便于用户操作的 配置任务 新建任务 添加任务的依赖关系
azkaban-sql… azkaban的sql脚本 创建关系型数据库对应的表和库的
1)上传
2)解压
tar -xvzf azkaban-executor-server-2.5.0.tar.gz
tar -xvzf azkaban-web-server-2.5.0.tar.gz
tar -xvzf azkaban-sql-script-2.5.0.tar.gz
3)配置环境变量
export AZKABAN_WEB=/home/hadoop/apps/azkaban/azkaban-web-2.5.0
export AZKABAN_EXE=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0
export PATH=
P
A
T
H
:
PATH:
PATH:AZKABAN_WEB/bin:$AZKABAN_EXE/bin
source /etc/profile
4)生成数字校验证书
jetty 验证的
命令:在哪一个目录 在哪一个目录生成数字证书 当前目录下生成的
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
切换到 azkaban-web-2.5.0 目录下
执行上面的命令
5)检查时区
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
6)准备azkaban 调度的关系型数据库中的表
在mysql中 执行 azkaban中的sql脚本
创建一个azkaban数据 库
create database azkaban;
切换数据库
use azkaban;
执行sql脚本
source /home/hadoop/apps/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;
7)修改azkaban的配置文件
1–》executor的相关配置文件
/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf
azkaban.properties
#Azkaban
default.timezone.id=Asia/Shanghai
#Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/plugins/jobtypes
#Loader for projects
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/projects
database.type=mysql
mysql.port=3306
mysql.host=hdp03
mysql.database=azkaban
mysql.user=root
mysql.password=123456
mysql.numconnections=100
#Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
2–》web的相关配置文件
/home/hadoop/apps/azkaban/azkaban-web-2.5.0/conf
azkaban.properties
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/web/
default.timezone.id=Asia/Shanghai
#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/conf/azkaban-users.xml
#Loader for projects
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/projects
database.type=mysql
mysql.port=3306
mysql.host=hdp03
mysql.database=azkaban
mysql.user=root
mysql.password=123456
mysql.numconnections=100
#Velocity dev mode
velocity.dev.mode=false
#Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore
jetty.password=hadoop123
jetty.keypassword=hadoop123
jetty.truststore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore
jetty.trustpassword=hadoop123
#Azkaban Executor settings
executor.port=12321
#mail settings
mail.sender=
mail.host=
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
azkaban-users.xml
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
8)启动azkaban
azkaban-executor-start.sh
azkaban-web-start.sh
报错:
Could not initialize class org.apache.derby.jdbc.AutoloadedDriver40 缺少derby依赖
将derby.jar 拷贝到 azkaban-executor-2.5.0/lib azkaban-web-2.5.0/lib
cd /home/hadoop/apps/jdk1.8.0_73/db/lib
cp derby.jar /home/hadoop/apps/azkaban/azkaban-executor-2.5.0/lib/
cp derby.jar /home/hadoop/apps/azkaban/azkaban-web-2.5.0/lib/
9)页面访问
https://hadoop03:8443
添加任务 本地写好
调度任务 .job结尾的文件
#command.job
type=command
command= echo “hello”
任务上传的时候必须打成zip的包,job文件必须在zip的根目录下