Hadoop学习笔记(23)Azkaban的简介以及安装部署

本文详细介绍了Azkaban的背景、核心组件、执行流程、安装部署步骤,包括配置MySQL、web服务器和executor服务器,以及jobtype插件的安装与配置。重点展示了Azkaban如何管理和调度任务,适合IT专业人士和开发者参考。

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

一、Azkaban的简介

1、简介

Azkaban是由Linkedin开源的一个批量工作流(WorkFlow)任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

Azkaban具有如下功能特点:

  • Web用户界面
  • 方便上传工作流
  • 方便设置任务之间的关系
  • 调度工作流
  • 认证/授权(权限设置)
  • 能够杀死并重新启动工作流
  • 模块化和插件化
  • 项目工作区

简单归纳:

  • Azkaban是一个工作流引擎,主要是解决作业的依赖关系,从ETL到数据分析。同时也可以解决依赖关系的DAG(有限无环图)。
  • Azkaban是一个任务调度器,比如一个shell脚本A可以分为B、C、D、E等4个子任务来执行完成。
    在这里插入图片描述

2、Azkaban的核心组件

Azkaban完成一个作业调度,需要3个核心组件协作。
在这里插入图片描述

  • 关系型数据库(MySQL)
    存储大部分执行流状态,AzkabanWebServer和AzkabanExecutorServer都需要访问数据库。
  • Web服务器:
    AzkabanWebServer是整个Azkaban工作流系统的主要管理者,它用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
  • 执行服务器
    负责具体的工作流的提交、执行,它们通过mysql数据库来协调任务的执行。

3、Azkaban的执行工作步骤

(1)自定义工作流程(WorkFlow),形成配置文件
(2)在Web界面上传工作流程(WorkFlow)文件(上传之后这些文件会存在mysql中)
(3)当执行工作流程(WorkFlow)时,会形成请求并把请求发给Azkaban Executor Server
(4)Executor从MySQL读取相应的工作流程(WorkFlow)配置文件
(5)读取后,Executor会下载工作流,并不断把状态等信息存进MySQL ,Web Server从Mysql中读取信息并展示
在这里插入图片描述

二、Azkaban的安装部署

1、安装部署前先配置mysql

前提条件是已经安装了mysql以及相关配置
(1)使用root账号登录mysql,创建mysql用户“azkaban”

mysql> grant all on *.* to azkaban@'%' identified by 'azkaban';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to azkaban@'master' identified by 'azkaban';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to azkaban@'localhost' identified by 'azkaban';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

mysql> 

(2)使用新建账号“azkaban”登录,并创建一个名称为azkaban_db的数据库

mysql> create database azkaban_db;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| azkaban_db         |
| hive_db            |
| hive_meta          |
| mysql              |
| performance_schema |
| test               |
+--------------------+
7 rows in set (0.01 sec)

mysql> 

2、把安装包上传到linux

在这里插入图片描述

3、解压安装

输入命令开始解压,解压后得到文件夹azkaban-2.5.0

[admin@master ~]$ tar -zxvf azkaban-sql-script-2.5.0.tar.gz

在这里插入图片描述
切换至azkaban-2.5.0目录,可以查看到所有的.sql文件
在这里插入图片描述

4、在新建的azkaban_db库中执行create-all-sql-2.5.0.sql

(1)切换到mysql的azkaban_db库中的命令界面,使用source命令执行.sql文件。
注:source命令是mysql专门用于执行.sql文件的命令

mysql> use azkaban_db
Database changed
mysql> source /home/admin/azkaban-2.5.0/create-all-sql-2.5.0.sql

在这里插入图片描述
(2)执行完毕后,会自动生成一些Web Server和Executor Server的一些表
在这里插入图片描述

5、配置Azkaban Web Server

(1)解压安装azkaban-web-server-2.5.0.tar.gz
注:如果.zip文件,使用unzip命令,unzip是linux系统解压zip文件的命令。

[admin@master ~]$ tar -zxvf azkaban-web-server-2.5.0.tar.gz

在这里插入图片描述
在这里插入图片描述
(2)把mysql驱动mysql-connector-java-5.1.28.jar拷贝到azkaban-web-2.5.0的extlib目录下

[admin@master ~]$ cd azkaban-web-2.5.0
[admin@master azkaban-web-2.5.0]$ ls
azkaban.version  bin  conf  extlib  lib  plugins  web
[admin@master azkaban-web-2.5.0]$ cd extlib
[admin@master extlib]$ ll
总用量 0
[admin@master extlib]$ cp /home/admin/mysql-connector-java-5.1.28.jar ./
[admin@master extlib]$ ls
mysql-connector-java-5.1.28.jar
[admin@master extlib]$ 

(3)配置jetty
Jetty和Tomcat为目前全球范围内最著名的两款开源的webserver/servlet容器。 它们的实现都遵循Java Servlet规范,相对Tomcat而言Jetty更轻量级、更灵活。总的来说,Jetty更满足公有云的分布式环境的需求,而Tomcat更符合企业级环境。

jetty已经内嵌到azkaban中。只需通过命令配置,不需要下载安装。

[admin@master ~]$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA

(4)修改azkaban-web-2.5.0目录下conf下的azkaban.properties

[admin@master ~]$ cd azkaban-web-2.5.0
[admin@master azkaban-web-2.5.0]$ ll
总用量 8
-rw-r--r--. 1 admin admin  105 4月  22 2014 azkaban.version
drwxr-xr-x. 2 admin admin  112 4月  22 2014 bin
drwxr-xr-x. 2 admin admin   57 5月  16 23:19 conf
drwxr-xr-x. 2 admin admin   45 5月  16 23:25 extlib
drwxr-xr-x. 2 admin admin 4096 5月  16 23:19 lib
drwxr-xr-x. 2 admin admin    6 4月  22 2014 plugins
drwxr-xr-x. 6 admin admin   73 5月  16 23:19 web
[admin@master azkaban-web-2.5.0]$ cd conf
[admin@master conf]$ ls
azkaban.properties  azkaban-users.xml
[admin@master conf]$ vim azkaban.properties
#Azkaban Personalization Settings
#服务器名称,用于服务器上方显示名称
azkaban.name=Test
#描述
azkaban.label=My Local Azkaban
#颜色
azkaban.color=#FF3601
#默认servlet路径
azkaban.default.servlet.path=/index
#默认web根目录
web.resource.dir=web/
#默认时区
default.timezone.id=Asia/Shanghai

#Azkaban UserManager class
#用户权限管理默认类
user.manager.class=azkaban.user.XmlUserManager
#用户配置
user.manager.xml.file=conf/azkaban-users.xml

#Loader for projects
#global配置文件所在位置
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

#数据库类型
database.type=mysql
#数据库端口号
mysql.port=3306
#数据库连接IP
mysql.host=master
#数据库库名
mysql.database=azkaban_db
#数据库账号密码
mysql.user=azkaban
mysql.password=azkaban
#最大连接数
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
#最大线程数
jetty.maxThreads=25
#jetty ssh端口
jetty.ssl.port=8443
#jetty端口
jetty.port=8081
#ssl文件名
jetty.keystore=keystore
#ssl文件密码
jetty.password=123456
#jetty主密码,与keystore文件密码相同
jetty.keypassword=123456
#ssl文件名
jetty.truststore=keystore
#ssl文件密码
jetty.trustpassword=123456

# 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

(5)完成上述配置后,会自动将当前目录生成keystore证书文件放在/home/admin目录中,然后将keystore拷贝到azkaban web server的根目录中
在这里插入图片描述

[admin@master ~]$ cp ./keystore ~/azkaban-web-2.5.0

6、配置Azkaban Executor Server

(1)解压安装

[admin@master ~]$ tar -zxvf azkaban-executor-server-2.5.0.tar.gz

在这里插入图片描述
(2)进入conf目录,配置azkaban.properties

[admin@master ~]$ cd azkaban-executor-2.5.0
[admin@master azkaban-executor-2.5.0]$ ls
azkaban.version  bin  conf  extlib  lib  plugins
[admin@master azkaban-executor-2.5.0]$ cd conf
[admin@master conf]$ ls
azkaban.private.properties  azkaban.properties  global.properties
[admin@master conf]$ vim azkaban.properties

在这里插入图片描述

7、创建一个azkaban web账号

创建一个azkaban web账号,用于登录前端web界面。
(1)进入azkaban web server的conf目录,修改azkaban-users.xml。

[admin@master ~]$ cd azkaban-web-2.5.0
[admin@master azkaban-web-2.5.0]$ ls
azkaban.version  bin  conf  extlib  lib  plugins  web
[admin@master azkaban-web-2.5.0]$ cd conf
[admin@master conf]$ ls
azkaban.properties  azkaban-users.xml
[admin@master conf]$ vim azkaban-users.xml

(2)创建一个用于登录web的用户admin,并且赋予admin、metrics双重角色。
在这里插入图片描述

8、启动azkaban web server

(1)进入bin目录

[admin@master ~]$ cd azkaban-web-2.5.0
[admin@master azkaban-web-2.5.0]$ ls
azkaban.version  bin  conf  extlib  lib  plugins  web
[admin@master azkaban-web-2.5.0]$ cd bin
[admin@master bin]$ ls
azkaban-web-shutdown.sh  azkaban-web-start.sh  schedule2trigger.sh  start-web.sh
[admin@master bin]$ 

(2)当看到绿色说明有执行权限。当白色时则说明无执行权限。可以在当前目录输入命令:chmod 777 ./* 赋予权限。
在这里插入图片描述
(3)开始启动。返回azkaban-web-2.5.0根目录,执行azkaban-web-start.sh

[admin@master azkaban-web-2.5.0]$ bin/azkaban-web-start.sh

在这里插入图片描述

9、登录azkaban web

(1)浏览器输入 https://master:8443/ 登录azkaban web界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10、启动azkaban executor server

(1)启动之前,查看下进程。可以看到azkaban web server已经正常启动。
在这里插入图片描述
(2)启动execytor与启动web类似。进入到bin目录下

[admin@master ~]$ cd azkaban-executor-2.5.0/
[admin@master azkaban-executor-2.5.0]$ ls
azkaban.version  bin  conf  extlib  lib  plugins
[admin@master azkaban-executor-2.5.0]$ cd bin
[admin@master bin]$ ls
azkaban-executor-shutdown.sh  azkaban-executor-start.sh  start-exec.sh
[admin@master bin]$ 

(3)返回azkaban-executor-2.5.0根目录,执行azkaban-executor-start.sh

[admin@master azkaban-executor-2.5.0]$ bin/azkaban-executor-start.sh

在这里插入图片描述
(4)查看进程
在这里插入图片描述

三、Azkaban的jobtype插件安装以及配置

Azkaban 支持的plugin类型有:

  • command:Linux shell命令行任务
  • gobblin:通用数据采集工具
  • hadoopJava:运行hadoopMR任务
  • java:原生java任务
  • hive:支持执行hiveSQL
  • pig:pig脚本任务
  • spark:spark任务
  • hdfsToTeradata:把数据从hdfs导入Teradata
  • teradataToHdfs:把数据从Teradata导入hdfs
    Azkaban支持的比较常用的四种类型:java、hadoopJava、hive、spark。
    Azkaban调度MR或者Hive时,需要安装插件(plugins)之一的jobtype,并且进行配置。

1、下载插件(plugins)安装包

(1)进入azkaban官网下载插件
在这里插入图片描述
在这里插入图片描述
(2)把下载好的安装包上传至linux系统,并拷贝到azkaban-executor-2.5.0的plugins目录中

[admin@master ~]$ cd azkaban-executor-2.5.0/
[admin@master azkaban-executor-2.5.0]$ ls
azkaban-access.log  azkaban.version  azkaban-webserver.log  bin  conf  currentpid  executions  extlib  lib  plugins  projects  temp
[admin@master azkaban-executor-2.5.0]$ cd plugins
[admin@master plugins]$ cp /home/admin/azkaban-plugins-release-2.5.zip ./
[admin@master plugins]$ ls
azkaban-plugins-release-2.5.zip

(3)解压安装

[admin@master plugins]$ unzip azkaban-plugins-release-2.5.zip

在这里插入图片描述

2、jobtype配置

(1)进入到jobtype目录中

[admin@master plugins]$ ls
azkaban-plugins-release-2.5  azkaban-plugins-release-2.5.zip
[admin@master plugins]$ cd azkaban-plugins-release-2.5/
[admin@master azkaban-plugins-release-2.5]$ ls
build.properties  build.xml  extlib  INSTALL  LICENSE  NOTICE  plugins  README.md
[admin@master azkaban-plugins-release-2.5]$ cd plugins
[admin@master plugins]$ ls
hadoopsecuritymanager  hadoopsecuritymanager-yarn  hdfsviewer  javaviewer  jobsummary  jobtype  pigvisualizer  reportal
[admin@master plugins]$ cd jobtype
[admin@master jobtype]$ ls
build.properties  build.xml  examples  jobtypes  lib  src
[admin@master jobtype]$ cd jobtypes
[admin@master jobtypes]$ ls
commonprivate.properties  common.properties  hadoopJava  hive  hive-0.8.1  java  pig-0.10.0  pig-0.10.1  pig-0.11.0  pig-0.12.0  pig-0.9.2

(2)配置common.properties文件。分别配置hadoop和hive的安装路径,配置完成后,azkaban即可对hadoop或者hive进行调度。

[admin@master jobtypes]$ vim common.properties

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值