天天看点

Azkaban安装和简单使用

文章目录

    • 1、Azkaban介绍和安装
      • 1.1 介绍
      • 1.2 下载安装包
      • 1.3 配置和编译
      • 1.4 配置Azkaban
      • 1.5 Web登陆Azkaban
    • 2、Azkaban简单操作
      • 2.1 编辑两个文件
      • 2.2 创建项目和上传zip包
      • 2.3 Job之间的Dependency测试
      • 2.4 Job调度,在规定时间执行

1、Azkaban介绍和安装

1.1 介绍

Azkzban是一款轻量级的调度工具,提供了一个良好的Web操作界面;

首先它不是apache项目,但属于开源项目,官网地址 :https://azkaban.github.io/

两种部署模式:无论哪一种部署模式都会包含所有的特性

solo-server mode :单机模式,内置了H2数据库,web和executor服务运行在一个进程上,可用于测试,本次测试部署的是单机模式。

multiple-executor mode:集群模式,DB使用的是有主备的mysql,升级维护不影响使用,用于生产

1.2 下载安装包

安装包:

azkaban-3.57.0.tar.gz

下载地址:https://github.com/azkaban/azkaban/releases/tag/3.57.0

需要有jdk1.8、gradle、git环境,gradle类似于maven

Azkaban安装和简单使用

下载gradle: https://gradle.org/releases/,我这里下载的是4.6版本

Azkaban安装和简单使用

1.3 配置和编译

下载完成后,上传到software目录下,并解压

azkaban-3.57.0.tar.gz

到source目录

[[email protected] software]$ pwd
/home/hadoop/software

[[email protected] software]$ ll
...
-rw-r--r--. 1 hadoop hadoop  19048383 Aug 22 19:38 azkaban-3.57.0.tar.gz
-rw-r--r--. 1 hadoop hadoop 106724289 Aug 22 19:39 gradle-4.6-all.zip

[[email protected] software]$ tar -zxvf azkaban-3.57.0.tar.gz -C ../source
           

gradle-4.6-all.zip

包拷贝到

azkaban-3.57.0/gradle/wrapper/

目录下

[[email protected] software]$ cp gradle-4.6-all.zip ../source/azkaban-3.57.0/gradle/wrapper
[[email protected] software]$ cd ../source/azkaban-3.57.0/gradle/wrapper
[[email protected] wrapper]$ ll
total 104284
-rw-r--r--. 1 hadoop hadoop 106724289 May  2 19:49 gradle-4.6-all.zip
-rw-rw-r--. 1 hadoop hadoop     54708 Sep  5  2018 gradle-wrapper.jar
-rw-rw-r--. 1 hadoop hadoop       736 May  2 19:47 gradle-wrapper.properties
           

修改配置

[[email protected] wrapper]$ vi gradle-wrapper.properties 
#修改该选项
distributionUrl=gradle-4.6-all.zip
           

安装git

注意这里是root用户

[[email protected] ~]$ yum install git
[[email protected] ~]# git --version
git version 1.8.3.1
           

开始漫长的编译。

如果中间因为网络原因出现jar包下载失败,编译会退出,但是没关系,再次重新编译即可,之前下载的jar包会缓存在本地,不会再次下载的。本人中间重编译了3次才成功的。

[[email protected] ~]# cd /home/hadoop/source/azkaban-3.57.0
[[email protected] azkaban-3.57.0]# ./gradlew build installDist -x test
           

1.4 配置Azkaban

编译成功后,会在

azkaban-solo-server/build/distributions/

路径下生成对应的包,有两个都可以,我们选择tar包解压安装

[[email protected] azkaban-3.57.0]$ cd azkaban-solo-server/build/distributions/
[[email protected] distributions]$ ll
total 46752
-rw-rw-r--. 1 hadoop hadoop 23870855 May  2 20:10 azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
-rw-rw-r--. 1 hadoop hadoop 24001502 May  2 20:10 azkaban-solo-server-0.1.0-SNAPSHOT.zip

[[email protected] distributions]$ tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C ~/app
           

修改配置文件

[[email protected] conf]$ pwd
/home/hadoop/app/azkaban-solo-server-0.1.0-SNAPSHOT/conf

[[email protected] conf]$ vi azkaban.properties
#修改这两个选项
azkaban.name=RUOZEDATA
azkaban.label=Ruozedata Azkaban

[[email protected] conf]$ vi azkaban-users.xml
#添加该行,web登陆Azkaban的用户和密码
<user password="000000" roles="admin" username="ruozedata" />
           

启动Azkaban

[[email protected] azkaban-solo-server-0.1.0-SNAPSHOT]$ bin/start-solo.sh
[[email protected] azkaban-solo-server-0.1.0-SNAPSHOT]$ jps
19345 AzkabanSingleServer #进程

#关闭
[[email protected] azkaban-solo-server-0.1.0-SNAPSHOT]$ bin/shutdown-solo.sh
           

1.5 Web登陆Azkaban

Azkaban安装和简单使用

2、Azkaban简单操作

2.1 编辑两个文件

创建一个first目录,下面存放两个两个文件,也是Azkaban需要的两个文件:

basic.flow

flow20.project

Azkaban安装和简单使用

flow20.project的文件内容:

azkaban-flow-version: 2.0
           

basic.flow的文件内容:

name:作业名

type:命令类型,比如comand

commond:这里输出了一句话

This is an echoed text

nodes:
  - name: jobA
    type: command
    config:
      command: echo "This is an echoed text."
           

将first目录打成zip包

Azkaban安装和简单使用

2.2 创建项目和上传zip包

创建项目,名字:ruozedata-azkaban-helloworld

Azkaban安装和简单使用

上传zip包,左边能看到你的base信息,jobA表示成功

然后Excutor Flow执行

后面的一些运行log日志,自己去点一点,看一看,这里不演示了。

Azkaban安装和简单使用

2.3 Job之间的Dependency测试

老样子,新建一个dependency目录,下面两个文件,主要编辑basic.flow文件

Azkaban安装和简单使用

basic.flow文件内容:

nodes:
  - name: jobC
    type: noop
    # jobC depends on jobA and jobB
    dependsOn:
      - jobA
      - jobB

  - name: jobA
    type: command
    config:
      command: echo "This is an A text."

  - name: jobB
    type: command
    config:
      command: echo "This is an B text."
           

然后把dependency打成zip包,上传到Azkaban,执行

新建项目,ruozedata-azkanban-dependency

上传zip包,看到左边的JobA/B/C信息,然后点击Excutor Flow执行

Azkaban安装和简单使用

2.4 Job调度,在规定时间执行

选择你的项目,点击进去

Azkaban安装和简单使用

在右上角可以看到调度选项,点击进去

Azkaban安装和简单使用
Azkaban安装和简单使用
Azkaban安装和简单使用

设置完成,可以查看到你的调度时间

Azkaban安装和简单使用