官网地址:https://azkaban.readthedocs.io
Azkaban 有三种部署方式:单服务模式、2个服务模式、分布式多服务模式
简单实用仅需单服务模式即可
2个服务模式,需要配置mysql, Azkaban使用MySQL来存储项目和执行

它具有如下功能特点:

1、Web用户界面
2、方便上传工作流
3、方便设置任务之间的关系
4、工作流调度
5、认证/授权
6、能够杀死并重启工作流
7、模块化和可插拔的插件机制
8、项目工作区
9、工作流和任务的日志记录和审计

一、下载编译软件 gradle

下载解压

$ 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/

添加到环境变量

$ export GRADLE_HOME=/opt/gradle-5.4.1
$ export PATH=$GRADLE_HOME/bin:$PATH

验证是否安装成功

$ 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_211 (Oracle Corporation 25.211-b12)
OS: Linux 3.10.0-957.21.2.el7.x86_64 amd64

二、下载Azkaban源码编译包,并编译

下载解压

$ wget https://github.com/azkaban/azkaban/archive/3.57.0.tar.gz
$ tar -xzvf 3.57.0.tar.gz -C /opt/

编译

$ cd /opt/azkaban-3.57.0/
$ ./gradlew build -x test BUILD SUCCESSFUL in 32m 7s
73 actionable tasks: 73 executed

编译成功后包存在的位置

$ pwd
/home/hadoop/softwares/azkaban-3.57.0/azkaban-solo-server/build/distributions

解压

$ tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C ~/apps/

修改配置文件

azkaban.properties

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

azkaban-users.xml

 <azkaban-users>
<user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
<user password="metrics" roles="metrics" username="metrics"/>
<!--新增用户的配置-->
<user password="admin" roles="admin" username="admin"/> <role name="admin" permissions="ADMIN"/>
<role name="metrics" permissions="METRICS"/>
</azkaban-users>

启动

$ pwd
/home/hadoop/apps/azkaban-solo-server-0.1.0-SNAPSHOT/
$ ./bin/start-solo.sh
$ jps
4032 AzkabanSingleServer #查看启动日志
$ pwd
/home/hadoop/apps/azkaban-solo-server-0.1.0-SNAPSHOT/bin/local
$ less azkaban-webserver.log
+0800 INFO [AzkabanWebServer] [Azkaban] Starting Azkaban Server
+0800 INFO [AzkabanServer] [Azkaban] Loading azkaban settings file from ./internal/../../conf
+0800 INFO [AzkabanServer] [Azkaban] Loading azkaban properties file
+0800 INFO [AzkabanDatabaseUpdater] [Azkaban] Use scripting directory sql
+0800 INFO [AzkabanDatabaseUpdater] [Azkaban] Will auto update any changes.
+0800 INFO [DataSourceUtils] [Azkaban] h2 DB path: /home/hadoop/apps/azkaban-solo-server-0.1.0-SNAPSHOT/bin/./h2

注意: 安装完成之后,一定要在bin文件的上一层目录进行启动
./bin/start-web.sh
而不能cd到bin目录里面进行启动,因为该启动脚本中引用到了当前位置目录信息

三、使用Azkaban

WebUI界面登录 http://hadoop000:8081

登录

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

创建后可进行权限分配

Job上传

只支持zip压缩

创建job

flow20.project

azkaban-flow-version: 2.0

basic.flow

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

将 flow20.project和basic.flow放一起,压缩成Archive.zip ,然后上传

basic1.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 echoed text." - name: jobB
type: command
config:
command: pwd

将 flow20.project和basic2.flow放一起,压缩成Archive2.zip ,然后上传

需要关注的点:

四、编写mr-etl调度

flow20.project

azkaban-flow-version: 2.0

mr-etl.flow

nodes:
- name: jobA
type: command
config:
command: "/home/hadoop/apps/hadoop-2.6.0-cdh5.7.0/bin/hadoop jar /home/hadoop/apps/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount hdfs://hadoop000:8020/input/wc/hello.txt hdfs://hadoop000:8020/azkaban/mr/output/wcs"

注意分隔符

查看执行结果:


Azkaban(3.x)编译安装使用的更多相关文章

  1. azkaban编译安装配置文档

    azkaban编译安装配置文档 参考官方文档: http://azkaban.github.io/azkaban/docs/latest/ azkaban的配置文件说明:http://azkaban. ...

  2. 第2节 azkaban调度:16、azkaban的介绍以及azkaban的soloserver的安装使用

    2. 工作流调度器azkaban 2.1 概述 azkaban官网: https://azkaban.github.io/ 2.1.1为什么需要工作流调度系统 l  一个完整的数据分析系统通常都是由大 ...

  3. Azkaban学习之路(二)—— Azkaban 3.x 编译及部署

    一.Azkaban 源码编译 1.1 下载并解压 Azkaban 在3.0版本之后就不提供对应的安装包,需要自己下载源码进行编译. 下载所需版本的源码,Azkaban的源码托管在GitHub上,地址为 ...

  4. Azkaban 3.x 编译及部署

    一.Azkaban 源码编译 1.1 下载并解压 Azkaban 在 3.0 版本之后就不提供对应的安装包,需要自己下载源码进行编译. 下载所需版本的源码,Azkaban 的源码托管在 GitHub ...

  5. Centos6.5下编译安装mysql 5.6

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  6. CENTOS 6.5 平台离线编译安装 PHP5.6.6

    一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...

  7. Linux下编译安装Vim8.0

    什么是Vim? Vim 是经典的 UNIX 编辑器 Vi 的深度改良版本.它增加了许多功能,包括:多级撤销.格式高亮.命令行历史.在线帮助.拼写检查.文件名补完.块操作.脚本支持,等等.除了字符界面版 ...

  8. OpenSUSE下编译安装OpenFoam

    在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1. ...

  9. 不要着急改代码,先想想--centos 6.8下编译安装tmux

    诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...

随机推荐

  1. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU开发那些事 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是恩智浦i.MX RTxxx系列微控制器相关知识. 恩智浦半导体于2018年10月发布的i.MX RTxxx系列开启了ML/AI MCU ...

  2. C# get folder's Md5 generated by file's and filename's md5. get dictionary md5

    C# get dictionary md5 static string GetDicMD5(string dirFullName) { logBuilder = new StringBuilder() ...

  3. IPIP.net识别客户端真实访问地址,具体到国家,省,市

    这个IP库实测还是比较准确的,免费版的可以具体到国内城市,国外只能到国家名称,免费版的自己定期更新Ip数据库即可. 以下为C#调用代码 class Program { static void Main ...

  4. Django Forms ChoiceField 选项更新问题

    今天使用django的forms,发现单选后台新增数据后,前端表单选项不能刷新 class UserForm(forms.Form): name = forms.ChoiceField( choice ...

  5. vue render函数解析

    一.render 函数的作用: 写一些vue.js的template太繁琐,利用render,可以使用js来生成模板,更加灵活和简便. 二.使用render前提: 官网也说了.在深入渲染函数之前推荐阅 ...

  6. iOS-关于自定义分段选择器的一些小事(Segmented)

    系统自带的分段选择就是 UISegmentedControl ,也有一些大佬自定义的 Segmented ,比如Git上的 HMSegmentedControl ,我以前最初的项目中,也有用到过,如果 ...

  7. linux终端 tty pty pts等

    linux终端 tty pty pts等 20140608 Chenxin整理 系统变量TERM不知是用来干什么的?它的值有vt100,vt220等,这些值代表什么意思? 环境变量TERM设置为终端机 ...

  8. hadoop搭建的前期准备

    这个hadoop的搭建是以比赛前的练习为目的的,所以我直接以root用户来搭建hadoop,主要也是方便我自己以后复习用的 需要的软件:vmware15.5,xshell6,xftp6,jdk Lin ...

  9. Tornado—接口调用时方法执行顺序

    import tornado.web # web服务 import tornado.ioloop # I/O 时间循环 class MainHandler(tornado.web.RequestHan ...

  10. 基于django的个人博客网站建立(七)

    基于django的个人博客网站建立(七) 前言 网站效果可点击这里访问 这次在原来的基础上添加或修改一些小功能 具体内容 1.代码高亮 在原来的blog-details.html页面添加下面的代码: ...