Azkaban安装和使用

本文详细介绍了Azkaban的安装步骤,包括Gradle环境搭建、Azkaban编译及部署过程。同时,深入讲解了Azkaban的使用方法,如项目创建、job上传与执行、定时任务配置等,帮助读者快速掌握Azkaban操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Azkaban安装和使用

1.简介

Open-source Workflow Manager(开源的工作流管理器)

Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves the ordering through job dependencies and provides an easy to use web user interface to maintain and track your workflows.

Azkaban是在LinkedIn上创建的批处理工作流作业调度程序,用于运行Hadoop作业。Azkaban通过作业依赖性解决订单,并提供易于使用的Web用户界面来维护和跟踪您的工作流程。

Azkaban:Scheduler调度框架

之前我们跑mapreduce或者hive SQL时,都是在linux服务器上执行shell脚本,shell1 ==> shell2,shell1跟shell2之前有依赖关系,shell1执行完之后才能执行shell2,所以用crontab肯定有风险,我们就需要一种更加安全高效的方法来自动执行我们的job作业.

2.Azakaban安装

1.Gradle安装

gradle也是一个类似于maven的工具,Azkaban需要使用gradle来编译;gradle需要先安装jdk,就不多做赘述(我的安装博客里至少写了3次了)

gradle下载地址:http://services.gradle.org/distributions/

 wget http://services.gradle.org/distributions/gradle-5.4.1-bin.zip
 unzip gradle-5.4.1-bin.zip -d /opt/
 cd /opt/gradle-5.4.1/
 vim ~/.bash_profile
 
 #添加gradle的环境变量
 export GRADLE_HOME=/opt/gradle-5.4.1
 export PATH=$GRADLE_HOME/bin:$PATH
 source ~/.bash_profile
 
 #验证是否安装成功
 gradle -v
------------------------------------------------------------
Gradle 5.4.1
------------------------------------------------------------

Build time:   2019-04-26 08:14:42 UTC
Revision:     261d171646b36a6a28d5a19a69676cd098a4c19d

Kotlin:       1.3.21
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_181 (Oracle Corporation 25.181-b13)
OS:           Linux 3.10.0-862.el7.x86_64 amd64
2.下载地址:

下载是从Github上下载编译的

Azkaban的github地址:https://github.com/azkaban/azkaban

wget https://github.com/azkaban/azkaban/archive/3.57.0.tar.gz
tar -xzvf 3.57.0.tar.gz -C /opt/
3.编译Azkaban
cd /opt/azkaban-3.57.0/
./gradlew build -x test
#编译成功结果
> Task :az-hadoop-jobtype-plugin:compileJava 
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /opt/azkaban-3.57.0/az-hadoop-jobtype-plugin/src/main/java/azkaban/jobtype/HadoopSecureSparkWrapper.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
BUILD SUCCESSFUL in 2m 21s
73 actionable tasks: 73 executed
#编译成功的软件在这个位置
cd azkaban-solo-server/build/distributions/
#解压到指定目录
tar -xzvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C /opt/
# ll
total 8
#启动的脚本文件
drwxr-xr-x 3 root root   67 May 14 15:03 bin
#配置文件
drwxr-xr-x 2 root root   82 May 14 15:03 conf
#依赖的jar包
drwxr-xr-x 2 root root 4096 May 14 15:03 lib
#插件目录
drwxr-xr-x 3 root root   22 May 14 15:03 plugins
drwxr-xr-x 2 root root 4096 May 14 15:03 sql
drwxr-xr-x 6 root root   73 May 14 15:03 web

3.Azkaban的使用

1.配置文件配置

配置文件都在conf目录下

azkaban.properties的修改

# Azkaban Personalization Settings
azkaban.name=BIDATA
azkaban.label=BIDATA Azkaban

azkaban-users.xml的修改

<azkaban-users>
  <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  <user password="metrics" roles="metrics" username="metrics"/>
  <!--新增用户的配置-->  
  <user password="123456" roles="admin" username="admin"/>
  <role name="admin" permissions="ADMIN"/>
  <role name="metrics" permissions="METRICS"/>
</azkaban-users>
2.启动Azkaban
./bin/start-solo.sh
#启动之后Jps能看到服务的进程
Jps
32395 AzkabanSingleServer
#在目录下有一个local文件夹,里边有服务的log日志
cd local/
-rw-r--r-- 1 root root 13650 May 14 16:11 azkaban-webserver.log
3.WEB UI界面使用

服务的默认端口是8081,输入http://xxx.xxx.xxx.xxx:8081就能访问我们搭建的Azkaban,输入我们刚刚在user配置文件配置的用户信息就能登录使用了

3.1创建project

点击右上角的create project按钮创建

创建之后可以进行权限分配

3.2Job上传

右上角蓝色的upload按钮点击之后能上传编写的job文件,并且只支持zip压缩

3.3编写job文件

创建project文件和basic文件

project文件包含内容:

azkaban-flow-version: 2.0

basic文件包含内容:

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

然后将两个文件打在同一个zip包中上传到Azkaban上

3.4运行job

上传完之后能看见我们编写的jobA

然后点击执行按钮,查看执行日志

3.5有依赖的job编写

编写basic文件,做的操作是jobB跟C依赖于A,D依赖于B跟C

nodes:
  - name: jobA
    type: command
    config:
      command: echo "This is an A text."
  - name: jobB
    type: command
    config:
      command: echo "This is an B text."
    dependsOn:
      - jobA
  - name: jobC
    type: command
    config:
      command: echo "This is an C text."
    dependsOn:
      - jobA
  - name: jobD
    type: command
    config:
      command: echo "This is an D text."
    dependsOn:
      - jobB
      - jobC

然后同样的操作,上传并执行.

3.6使用Azkaban执行mapreduce任务

编写basic文件

nodes:
  - name: mr-etl
    type: command
    config:
      command: "su hdfs /opt/cloudera/parcels/CDH/lib/hadoop/bin/hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.13.1.jar wordcount /input/test.txt /azkaban/mr/out"

然后同样的操作,上传并执行.

Tips:在写hadoop命令跟jar目录要把目录写完整,不然有可能会执行失败.

3.7补充

定时任务的配置:

点击execute之后,可以点击左下角Schedule按钮配置定时任务

然后可以在上边菜单栏的Scheduling选项看见我们配置的定时任务,同时还能对定时任务进行邮件告警配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值