7 Azkaban开荒

1 背景

Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key:value对的方式,通过配置中的dependencies 来设置依赖关系。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

1.1 Azkaban的特点

  • 兼容任何版本的Hadoop
  • 易上手的web页面
  • 简单的工作流上传
  • 方便设置任务之间的关系
  • 调度工作流
  • 模块化和可插插拔的插拔机制
  • 认证/授权
  • 可以杀死并重启工作流
  • 失败和成功的电子邮件提醒

1.2 Azkaban的架构

在这里插入图片描述

  1. WebServer:整个Azkaban工作流系统的主要管理者,它用户登录认证、负责project管理、定时执行工作流、追踪工作流执行进度等一些列任务
  2. ExecutorServer: 负责具体的工作流的提交、执行,通过MySQL来协调任务的执行
  3. 关系型数据库(MySQL) : 存储大部分执行流状态,WebServer 和 ExecutorServer都需要访问数据库

2 Azkaban安装准备

下载地址

在这里插入图片描述
unzip

[root@ifeng software]# unzip -o -d /home/ifeng/sourcecode/ azkaban-3.90.0.zip

chown

[root@ifeng sourcecode]# chown ifeng:ifeng azkaban-3.90.0/ -R

2.1 编译

# Build and install distributions
# ./gradlew installDist

# Build without running tests
./gradlew build installDist -x test

在这里插入图片描述
会去下载一个https://services.gradle.org/distributions/gradle-4.6-all.zip

但是由于网络原因,可能会下载失败
可以去, 手动下载并修改如下properties 文件
[root@ifeng wrapper]# pwd
/home/ifeng/sourcecode/azkaban-3.90.0/gradle/wrapper

[root@ifeng wrapper]# vi gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

在这里插入图片描述

等待编译20分钟吧…

2.2 安装包分析

会产生如下三个安装包

单机版:azkaban-solo-server 
生产版:azkaban-web-server  azkaban-exec-server

单机版安装包位置
在这里插入图片描述

2.3 安装启动

安装

tar -xzvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C ~/app/

Start the solo server:

cd /home/ifeng/sourcecode/azkaban-3.90.0/azkaban-solo-server/build/install/azkaban-solo-server
bin/start-solo.sh

一定不要进入bin下启动

Azkaban solo server should be all set, by listening to 8081 port at default to accept incoming network
 request. So, open a web browser and check out http://localhost:8081/ . The default login username and 
 password for the solo server are both azkaban which is configured in conf/azkaban-users.xml in the 
 resources folder of the solo server.

在这里插入图片描述
修改时区

/home/ifeng/app/azkaban/conf/azkaban.properties

default.timezone.id=Asia/Shanghai

修改用户

[ifeng@ifeng conf]$ cat azkaban-users.xml
<azkaban-users>
  <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  <user password="metrics" roles="metrics" username="metrics"/>
  <user password="000000" roles="admin" username="ifeng"/>
  <role name="admin" permissions="ADMIN"/>
  <role name="metrics" permissions="METRICS"/>
</azkaban-users>
[ifeng@ifeng conf]$

3 创建Flow

官网介绍

  1. 创建 flow20.project. 里面写入以下版本信息
azkaban-flow-version: 2.0
  1. 创建 basic.flow. 写入以下格式内容

nodes:

  • name: jobA
    type: command
    config:
    command: echo “Hello Azkaban”
  1. 压缩并上传

Select the two files you’ve already created and right click to compress them into a zip file called Archive.zip. You can also create a new directory with these two files and then cd into the new directory and compress: zip -r Archive.zip . Please do not zip the new directory directly.

Make sure you have already created a project on Azkaban ( See Create Projects ). You can then upload Archive.zip to your project through Web UI ( See Upload Projects ).

Now you can click Execute Flow to test your first Flow 2.0 Azkaban project!
在这里插入图片描述
直接在本目录压缩 , 否则可能会造成路径问题

在这里插入图片描述
上传,JobA为上面Note中的名字

在这里插入图片描述
具体的log可以在Job List中的log查看

3.2 多个job依赖

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

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

  - name: jobB
    type: command
    config:
      command: pwd

3.3 Hive脚本

command = hive
怎么都没成功,放一放

4 Azkaban Plugins

plugins下载地址

编译

前提条件 :

安装ant
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven
yum -y install ant
yum install ant*

在这里插入图片描述

nodejs
sudo yum install epel-release
sudo yum install nodejs

在这里插入图片描述

git
yum -y install git
dustjs-linkedin
npm install -g less dustjs-linkedin
移动到
tar开

[root@ifeng software]# tar -xzvf  azkaban-plugins-\$\{git.tag\}.tar.gz -C /home/ifeng/app/azkaban/plugins/


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oifengo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值