天天看点

实战如何玩转azkaban(安装及使用)一、azkaban是什么二、oozie和azkaban的比较:三、常用的调度机制:四、azkaban的安装

一、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的根目录下

继续阅读