Azkaban介绍

  Azkaban是一个Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。

Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

它有如下功能特点:

  Web用户界面

  方便上传工作流

  方便设置任务之间的关系

  调度工作流

  认证/授权(权限的工作)

  能够杀死并重新启动工作流

  模块化和可插拔的插件机制

  项目工作区

  工作流和任务的日志记录和审计

Azkaban安装部署

  准备工作:需要Azkaban Web服务器、Azkaban执行服务器、Azkaban只支持 mysql,需安装mysql服务器

  Azkaban Web服务器下载路径:https://pan.baidu.com/s/1GScGIxktelBerHGzTdLnvQ

  Azkaban执行服务器下载路径:https://pan.baidu.com/s/1aEh6J9AtFQXy4Cro-Z9ZoQ

  Azkaban脚本导入下载路径:https://pan.baidu.com/s/1yTYVekDFtvrqrZ8xd5LycA

  1.将安装包上传服务器,最好上传到安装 hive、sqoop的机器上,然后进行解压到目录:/usr/local/src/azkaban/

    tar -xzvf azkaban-sql-script-2.5.0.tar.gz  -C /usr/local/src/azkaban/

    然后可以进行重命名:mv azkaban-executor-2.5.0 executor 、 mv azkaban-web-2.5.0 webserver

  2.Azkaban脚本导入:将解压后的mysql 脚本,导入到mysql

    首先进入mysql:mysql -uroot -proot

    

    

  3.(创建SSL配置):因为web访问通过HTTPS协议,因此需要证书,配置如下:

    #keytool -keystore keystore -alias jetty -genkey -keyalg RSA

    在当前目录生成相应证书秘钥文件keystore,将keystore拷贝到 Azkaban web服务器bin目录中:

    如:cp keystore azkaban/server

  4.配置好服务器节点上的时区:    

    1、先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可

    2、拷贝该时区文件,覆盖系统本地时区配置:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

  5.Azkaban Web服务器配置进入Azkaban web服务器安装目录下的conf目录

    1.修改配置文件:vi /usr/local/src/azkaban/webserver/conf/azkaban.properties

#Azkaban Personalization Settings
azkaban.name=Test                           #服务器UI名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban                               #描述
azkaban.color=#FF3601                                        #UI颜色
azkaban.default.servlet.path=/index                       
web.resource.dir=web/                                        #默认根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
executor.global.properties=conf/global.properties    # global配置文件所在位置
azkaban.project.dir=projects                                                #
 
database.type=mysql                                                              #数据库类型
mysql.port=3306                                                                       #端口号
mysql.host=localhost                                                   #数据库连接IP
mysql.database=azkaban                                                       #数据库实例名
mysql.user=root                                                                 #数据库用户名
mysql.password=root                                                          #数据库密码
mysql.numconnections=100                                                  #最大连接数
 
# Velocity dev mode
velocity.dev.mode=false
# Jetty服务器属性.
jetty.maxThreads=25                                                               #最大线程数
jetty.ssl.port=8443                                                                   #Jetty SSL端口
jetty.port=8081                                                                         #Jetty端口
jetty.keystore=keystore                                                          #SSL文件名
jetty.password=123456                                                             #SSL文件密码
jetty.keypassword=123456                                                      #Jetty主密码 与 keystore文件相同
jetty.truststore=keystore                                                                #SSL文件名
jetty.trustpassword=123456                                                   # SSL文件密码
 
# 执行服务器属性
executor.port=12321                                                               #执行服务器端口
 
# 邮件设置
mail.sender=xxxxxxxx@163.com                                       #发送邮箱
mail.host=smtp.163.com                                                       #发送邮箱smtp地址
mail.user=xxxxxxxx                                       #发送邮件时显示的名称
mail.password=**********                                                 #邮箱密码
job.failure.email=xxxxxxxx@163.com                              #任务失败时发送邮件的地址
job.success.email=xxxxxxxx@163.com                            #任务成功时发送邮件的地址
lockdown.create.projects=false                                           #
cache.directory=cache                                                            #缓存目录

    2.修改配置文件:增加管理员用户vi /usr/local/src/azkaban/webserver/conf/azkaban-users.xml

<azkaban-users>
        <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
        <user username="metrics" password="metrics" roles="metrics"/>
        <user username="admin" password="admin" roles="admin,metrics" />
        <role name="admin" permissions="ADMIN" />
        <role name="metrics" permissions="METRICS"/>
</azkaban-users>

  6.Azkaban执行服务器executor配置进入Azkaban executor安装目录下的conf目录  

    1.修改配置文件:vi /usr/local/src/azkaban/executor/conf/azkaban.properties  

#Azkaban
default.timezone.id=Asia/Shanghai                                              #时区
 
# Azkaban JobTypes 插件配置
azkaban.jobtype.plugin.dir=plugins/jobtypes                   #jobtype 插件所在位置
 
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
 
#数据库设置
database.type=mysql                                                                       #数据库类型(目前只支持mysql)
mysql.port=3306                                                                                #数据库端口号
mysql.host=localhost                                                           #数据库IP地址
mysql.database=azkaban                                                                #数据库实例名
mysql.user=root                                                                       #数据库用户名
mysql.password=root #数据库密码
mysql.numconnections=100                                                           #最大连接数
 
# 执行服务器配置
executor.maxThreads=50                                                                #最大线程数
executor.port=12321                                                               #端口号(如修改,请与web服务中一致)
executor.flow.threads=30                                                                #线程数

启动

  Azkaban web服务器启动:bin/azkaban-web-start.sh

  或者启动到后台:nohup  bin/azkaban-web-start.sh  1>/tmp/azstd.out  2>/tmp/azerr.out &

  Azkaban executor启动:bin/azkaban-executor-start.sh

   启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://shizhan2:8443 ,即可访问azkaban服务了.在登

录中输入刚才新的户用名及密码,点击 login.

  

启动常见问题

1.azkaban-users.xml找不到

  Caused by: java.lang.IllegalArgumentException: User xml file conf/azkaban-users.xml doesn't exist.

    解决:配置文件azkaban.properties里user.manager.xml.file改为绝对路径

2.Keystore找不到

   java.io.FileNotFoundException: /opt/azkaban-web-2.5.0/bin/keystore (No such file or directory)

    解决:复制keystore文件到bin目录下

3.网页登陆显示不正常

  

      解决:修改web.resource.dir为绝对路径web.resource.dir=/opt/azkaban-web-2.5.0/web/

07_Azkaban工作流调度器简介及其安装的更多相关文章

  1. 工作流调度器azkaban2.5.0的安装和使用

    为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后及前后依赖关系 为了很 ...

  2. azkaban工作流调度器及相关工具对比

    本文转载自:工作流调度器azkaban,主要用于架构选型,安装请参考:Azkaban安装与简介,azkaban的简单使用 为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: ...

  3. 工作流调度器azkaban(以及各种工作流调度器比对)

    1:工作流调度系统的作用: (1):一个完整的数据分析系统通常都是由大量任务单元组成:比如,shell脚本程序,java程序,mapreduce程序.hive脚本等:(2):各任务单元之间存在时间先后 ...

  4. Azkaban工作流调度器

    Azkaban工作流调度器 在Hadoop领域常用的工作流调度系统 Oozie,Azkaban,Cascading,Hamake等等. 性能对比: 安装: 创建ssl配置 keytool -keyst ...

  5. 工作流调度器azkaban

    为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后及前后依赖关系 为了很 ...

  6. Azkaban 工作流调度器

    Azkaban 工作流调度器 1 概述 1.1 为什么需要工作流调度系统 a)一个完整的数据分析系统通常都是由大量任务单元组成,shell脚本程序,java程序,mapreduce程序.hive脚本等 ...

  7. 【Hadoop离线基础总结】工作流调度器azkaban

    目录 Azkaban概述 工作流调度系统的作用 工作流调度系统的实现 常见工作流调度工具对比 Azkaban简单介绍 安装部署 Azkaban的编译 azkaban单服务模式安装与使用 azkaban ...

  8. 调度器简介,以及Linux的调度策略

    进程是操作系统虚拟出来的概念,用来组织计算机中的任务.但随着进程被赋予越来越多的任务,进程好像有了真实的生命,它从诞生就随着CPU时间执行,直到最终消失.不过,进程的生命都得到了操作系统内核的关照.就 ...

  9. 调度器简介,以及Linux的调度策略(转)

    进程是操作系统虚拟出来的概念,用来组织计算机中的任务.但随着进程被赋予越来越多的任务,进程好像有了真实的生命,它从诞生就随着CPU时间执行,直到最终消失.不过,进程的生命都得到了操作系统内核的关照.就 ...

随机推荐

  1. 在Eclipse Android中设置模拟器屏幕大小

    在Eclipse Android中设置模拟器屏幕大小是本文要介绍的内容,主要是来了解并学习Eclipse Android中模拟器的设置,具体关于Eclipse Android内容的详解来看本文. 方法 ...

  2. 【c# 学习笔记】显示接口实现方法

    在接口  一张中,使用了隐式的接口实现方式,即在实现代码中没有制定实现那个接口中的CompareTo方法.相应地,自然就有显式的 接口实现方式,它指的是在实现过程中,明确指出实现哪一个接口中的哪一个方 ...

  3. csu 1909: Perfect Chocolate

    1909: Perfect Chocolate Submit Page   Summary   Time Limit: 3 Sec     Memory Limit: 128 Mb     Submi ...

  4. Edit Delete Mysql的主从复制

    参考博客 https://www.cnblogs.com/zhoujie/p/mysql1.html Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上 ...

  5. go打印九九乘法表

    package main import ( "fmt" ) func main() { for i := 1; i < 10; i++ { for j := 1; j < ...

  6. .net和ASP.net,c#的区别

    .NET.C#和ASP.NET三者之间的区别如下: 一.什么是.NET?.NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在 ...

  7. Can you answer these queries III

    Can you answer these queries III 题目:洛谷 SPOJ [题目描述] 给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一: 1.“0 x y”,把A[x]改 ...

  8. Django自定义分页并保存搜索条件

    Django自定义分页并保存搜索条件 1.自定义分页组件pagination.py import copy class Pagination: def __init__(self, current_p ...

  9. c++学习---const 和 string

    当在两个文件定义了同名的const变量时,相对于定义了两个独立的变量 想要在一个文件中定义一个const变量并在其他文件中使用他:不管时声明还是定义,都加上extern关键字 因为const对象一经初 ...

  10. 【SQL Server性能优化】删除大量数据的方法比较

    原文:[SQL Server性能优化]删除大量数据的方法比较 如果你要删除表中的大量数据,这个大量一般是指删除大于10%的记录,那么如何删除,效率才会比较高呢? 而如何删除才会对系统的影响相对较小呢? ...