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

它具有如下功能特点:

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

一、下载编译软件 gradle

下载解压

  1. $ wget http://services.gradle.org/distributions/gradle-5.4.1-bin.zip
  2. $ unzip gradle-5.4.1-bin.zip -d /opt/
  3. $ cd /opt/gradle-5.4.1/

添加到环境变量

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

验证是否安装成功

  1. $ gradle -v
  2. ------------------------------------------------------------
  3. Gradle 5.4.1
  4. ------------------------------------------------------------
  5. Build time: 2019-04-26 08:14:42 UTC
  6. Revision: 261d171646b36a6a28d5a19a69676cd098a4c19d
  7. Kotlin: 1.3.21
  8. Groovy: 2.5.4
  9. Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
  10. JVM: 1.8.0_211 (Oracle Corporation 25.211-b12)
  11. OS: Linux 3.10.0-957.21.2.el7.x86_64 amd64

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

下载解压

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

编译

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

编译成功后包存在的位置

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

解压

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

修改配置文件

azkaban.properties

  1. # Azkaban Personalization Settings
  2. azkaban.name=xiaoming
  3. azkaban.label=xiaoming Azkaban

azkaban-users.xml

  1. <azkaban-users>
  2. <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  3. <user password="metrics" roles="metrics" username="metrics"/>
  4. <!--新增用户的配置-->
  5. <user password="admin" roles="admin" username="admin"/>
  6. <role name="admin" permissions="ADMIN"/>
  7. <role name="metrics" permissions="METRICS"/>
  8. </azkaban-users>

启动

  1. $ pwd
  2. /home/hadoop/apps/azkaban-solo-server-0.1.0-SNAPSHOT/
  3. $ ./bin/start-solo.sh
  4. $ jps
  5. 4032 AzkabanSingleServer
  6. #查看启动日志
  7. $ pwd
  8. /home/hadoop/apps/azkaban-solo-server-0.1.0-SNAPSHOT/bin/local
  9. $ less azkaban-webserver.log
  10. +0800 INFO [AzkabanWebServer] [Azkaban] Starting Azkaban Server
  11. +0800 INFO [AzkabanServer] [Azkaban] Loading azkaban settings file from ./internal/../../conf
  12. +0800 INFO [AzkabanServer] [Azkaban] Loading azkaban properties file
  13. +0800 INFO [AzkabanDatabaseUpdater] [Azkaban] Use scripting directory sql
  14. +0800 INFO [AzkabanDatabaseUpdater] [Azkaban] Will auto update any changes.
  15. +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

  1. azkaban-flow-version: 2.0

basic.flow

  1. nodes:
  2. - name: jobA
  3. type: command
  4. config:
  5. command: echo "This is an echoed text."

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

basic1.flow

  1. nodes:
  2. - name: jobC
  3. type: noop
  4. # jobC depends on jobA and jobB
  5. dependsOn:
  6. - jobA
  7. - jobB
  8. - name: jobA
  9. type: command
  10. config:
  11. command: echo "This is an echoed text."
  12. - name: jobB
  13. type: command
  14. config:
  15. command: pwd

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

需要关注的点:

四、编写mr-etl调度

flow20.project

  1. azkaban-flow-version: 2.0

mr-etl.flow

  1. nodes:
  2. - name: jobA
  3. type: command
  4. config:
  5. 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. Linux - CentOS 7 通过Yum源安装 MySql 5.7

    添加MySQL Yum存储库 从官网下载最新的mysql源 官网地址:https://dev.mysql.com/downloads/repo/yum/ 选择并下载适用于平台的发行包. 然后,在Lin ...

  2. 制作excel下拉菜单

    1.选中excel中需要制作下拉菜单的单元格/列/行,点击‘数据’——'数据验证': 2.允许选择'序列',来源中手动输入需要的内容,以逗号(,)分割:  3.如下图,此列都具有下拉选择的功能:

  3. Spring Boot Failed to load resource: the server responded with a status of 404 ()

    出现错误: Failed to load resource: the server responded with a status of 404 () 但是其他页面正常显示: 原因: 浏览器看一下:  ...

  4. Retrofit-草稿

    1.GSONFormat 2.动态代理 https://www.cnblogs.com/maohuidong/p/7992894.html  retrofit的核心就是动态代理

  5. SpringAOP中切入点的高级使用

    上一篇 SpringAOP之使用切入点创建通知 SpringAOP中切点的高级使用 一.使用控制流切入点(ControlFlowPointcut) 什么是控制流切入点呢?看下面的代码(为了方便,就写进 ...

  6. 一起学SpringMVC之RequestMapping详解

    本文以一个简单的小例子,简述SpringMVC开发中RequestMapping的相关应用,仅供学习分享使用,如有不足之处,还请指正. 什么是RequestMapping? RequestMappin ...

  7. NET Core 3.0 项目中使用 AutoFac

    .net core 3.1 今天已正式发布,3.1跟3.0差别不是很大,主要是对 3.0一小部分修复和完善,最重要的是.NET Core 3.1是长期支持(LTS)版本,建议大家升级. .net co ...

  8. JS---DOM---为元素绑定事件的引入,为元素绑定多个代码,兼容代码

    1. 为元素绑定事件的引入: 用src直接绑定多个,只实现最后一个(programmer2.js) <input type="button" value="按钮&q ...

  9. 这7个npm命令将帮助您节省时间

    作为JavaScript开发人员,NPM是我们一直使用的东西,并且我们的脚本在终端上连续运行. 如果我们可以节省一些时间呢? 1.直接从npm打开文档 如果我们可以直接使用npm跳转到软件包的文档怎么 ...

  10. python判断文件夹和文件是否存在

    1.os.path.exists()既可以判断文件是否存在,又可以判断文件夹是否存在 2.os.path.isfile()判断文件是否存在 3.os.path.isdir()判断文件夹是否存在