azkaban的部署以及简单使用

1.工作流调度器的介绍

(1)为什么要使用工作流调度器?

?? - 一个完整的数据分析系统通常都是由大量任务单元组成:shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等
?? - 各任务单元之间存在时间先后及前后依赖关系
?? - 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行

(2)常见工作流调度器

??在 hadoop 领域,常见的工作流调度器有 Oozie, Azkaban,Cascading,Hamake 等 。

(3)Oozie与Azkaban的对比

?? 目前企业中最流行的两种调度器是Oozie与Azkaban。总的来说ooize 相比 azkaban 是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器 azkaban 是很不错的候选对象。
二者的区别可以从以下的几个方面进行描述:
?功能
??两者均可以调度 mapreduce,pig,java,脚本工作流任务两者均可以定时执行工作流任务
?工作的定义
?? Azkaban 使用 Properties 文件定义工作流
?? Oozie 使用 XML 文件定义工作流
?工作流传参
?? Azkaban 支持直接传参,例如${input}
?? Oozie 支持参数和 EL 表达式,例如${fs:dirSize(myInputDir)} strust2(ONGL)
?定时执行
?? Azkaban 的定时执行任务是基于时间的
?? Oozie 的定时执行任务基于时间和输入数据
?资源管理
?? Azkaban 有较严格的权限控制,如用户对工作流进行读/写/执行等操作
?? Oozie 暂无严格的权限控制
?工作流执行
?? Azkaban 有两种运行模式,分别是 solo server mode(executor server 和 web server 部署在同一台节点)和 multi server mode(executor server 和 web server 可以部署在不同节点)
?? Oozie 作为工作流服务器运行,支持多用户和多工作流
?工作流管理
?? Azkaban 支持浏览器以及 ajax 方式操作工作流
?? Oozie 支持命令行、HTTP REST、Java API、浏览器操作工作流

2.Azkaban 安装部署

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

  • Web 用户界面
  • 方便上传工作流
  • 方便设置任务之间的关系
  • 调度任务流
  • 认证/授权
  • 能够杀死并重新执行任务
  • 模块化和可插拔的插件机制
  • 工作流和任务的日志记录审计

Azkaban的实战安装
安装包:
Azkaban Web 服务器:azkaban-web-server-2.5.0.tar.gz
Azkaban Excutor 执行服务器:azkaban-executor-server-2.5.0.tar.gz
Azkaban 初始化脚本文件:azkaban-sql-script-2.5.0.tar.gz
下载地址:http://azkaban.github.io/downloads.html
① 解压安装包

[[email protected] ~]# tar -zxvf azkaban-web-server-2.5.0.tar.gz -C apps/ azkaban/
[[email protected] ~]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C apps/ azkaban/
[[email protected] ~]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C apps/ azkaban/ 

②安装 Azkaban 脚本导入

[[email protected] ~]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C apps/ azkaban/
#进入MySQL执行脚本:
mysql> create database azkaban; Query OK, 1 row affected (0.01 sec) 

mysql> use azkaban;
Database changed 

mysql> source /home/hadoop/apps/azkaban/azkaban-script-2.5.0/create-all-sql-2.5.0.sql; 

③创建 SSL 配置

#最好是在azkaban 目录下:
[[email protected] ~]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA 

#此命令执行之后会提示输入当前生成 keystore 的密码及相应信息,输入密码请劳记,信息如下:

然后将在当前目录生成 keystore 证书文件,将 keystore 拷贝到 azkaban web 服务器根目录中.如:

[[email protected] ~]#cp keystore azkaban/azkaban-web-2.5.0

④修改配置文件

#先配置好服务器节点上的时区
先生成时区配置文件 Asia/Shanghai,用交互式命令 tzselect 即可
拷贝该时区文件,覆盖系统本地时区配置
[[email protected] ~]$ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#azkaban web 服务器配置进入 azkaban web 服务器安装目录 conf 目录
[[email protected] ~]$ cd apps/azkaban/azkaban-web-2.5.0/conf/ 

#修改 azkaban.properties 文件

#用户配置,具体配置参加下文
#Loader for projects   # global 配置文件所在位置
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties azkaban.project.dir=projects
  #数据库类型
database.type=mysql
 #端口号
mysql.port=3306
#数据库连接 IP
mysql.host=hadoop03
 #数据库实例名
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 端口
jetty.ssl.port=8443
 #Jetty 端口
jetty.port=8081
 #SSL 文件名
jetty.keystore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore
#SSL 文件密码
jetty.password=hadoop
 #Jetty 主密码 与 keystore 文件相同
jetty.keypassword=hadoop
 #SSL 文件名
jetty.truststore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore
  # SSL 文件密码
jetty.trustpassword=hadoop                                                 

# 执行服务器属性
executor.port=12321                                    #执行服务器端口 

# 邮件设置(可选项)
[email protected]                  #发送邮箱 

mail.host=smtp.163.com                                #发送邮箱 smtp 地址 

mail.user=xxxxxxxx                                        #发送邮件时显示的名称 

mail.password=**********                                #邮箱密码 

[email protected]             #任务失败时发送邮件的地址
[email protected]     #任务成功时发送邮件的地址
lockdown.create.projects=false
# cache.directory=cache                           #缓存目录

#进入 azkaban web 服务器 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> 

#azkaban 执行服务器 executor 配置,进入执行服务器安装目录 conf,修改 azkaban.properties

#Azkaban
default.timezone.id=Asia/Shanghai                                              #时区 

#Azkaban JobTypes 插件配置,插件所在位置
azkaban.jobtype.plugin.dir=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/plugins/jobtypes 

#Loader for projects
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties azkaban.project.dir=projects 

#数据库设置
 #数据库类型(目前只支持 mysql)
database.type=mysql
#数据库端口号
mysql.port=3306
#数据库 IP  地址
mysql.host=hadoop03
 #数据库实例名
mysql.database=azkaban
#数据库用 户名
mysql.user=root
#数据库密码
mysql.password=root
  #最大连接数
mysql.numconnections=100                                                

#执行服务器配置
#最大线程数
executor.maxThreads=50
#端口号(如修改,请与 web 服务中一致)
executor.port=12321
 #线程数
 executor.flow.threads=30   

⑤配置环境变量

[[email protected] ~]$  vim /etc/profile
#/etc/profile
export AZKABAN_WEB_HOME=/home/hadoop/apps/azkaban/azkaban-web-2.5.0
export AZKABAN_EXE_HOME=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0
export PATH=$PATH:$AZKABAN_WEB_HOME/bin:$AZKABAN_EXE_HOME/bin 

⑥启动
#启动 web 服务器

 nohup azkaban-web-start.sh1>/home/hadoop/azwebstd.out 2>/home/hadoop/azweberr.out & 

#启动执行服务器

nohup azkaban-executor-start.sh 1>/home/hadoop/azexstd.out 2>/home/hadoop/azexerr.out &

⑥验证是否登录成功
在浏览器中输入:https://hadoop03:8443/

看到以上界面表示安装成功!!!!

3.Azkaban 的简单使用

①创建job :command.job

#command.job
type=command
command=echo ‘hello‘ 

②将 job 资源文件打包
[hadoop [email protected]~ ]$ zip command.job
③通过 azkaban web 管理平台创建 project 并上传压缩包






原文地址:http://blog.51cto.com/14048416/2343960

时间: 2024-10-13 21:47:08

azkaban的部署以及简单使用的相关文章

maven安装部署和简单使用

该文主要记录下maven下载安装以及简单使用. 全文目录为: 1.maven下载2.maven安装3.maven简单概念 3.1.maven本地仓库 3.2.maven局域网内私服仓库nexus 3.3.maven第三方仓库 3.4.maven中央仓库4.maven常用命令5.maven+nexus私服简单演示例子 正文内容为: 1.maven下载 从maven官方网站下载tar.gz包解压到本机即可.Maven官方下载地址为:http://maven.apache.org/从maven官方网站

Flume1.5.0的安装、部署、简单应用(含分布式、与hadoop2.2.0、hbase0.96的案例)

目录: 一.什么是Flume? 1)flume的特点 2)flume的可靠性 3)flume的可恢复性 4)flume 的 一些核心概念 二.flume的官方网站在哪里? 三.在哪里下载? 四.如何安装? 五.flume的案例 1)案例1:Avro 2)案例2:Spool 3)案例3:Exec 4)案例4:Syslogtcp 5)案例5:JSONHandler 6)案例6:Hadoop sink 7)案例7:File Roll Sink 8)案例8:Replicating Channel Sel

虚拟化技术之KVM平台部署及简单应用

前言  KVM即Kernel Virtual Machine,最初是由以色列公司Qumranet开发.2007年2月被导入Linux 2.6.20核心中,成为内核源代码的一部分.2008年9月4日,Redhat收购了Qumranet,至此Redhat拥有了自己的虚拟化解决方案,之后便舍弃Xen开始全面扶持KVM,从RHEL6开始KVM便被默认内置于内核中.本文介绍KVM虚拟化平台部署及管理. KVM简介KVM特点  KVM必须在具备Intel VT或AMD-V功能的x86平台上运行.KVM包含一

azkaban的部署

随着平台上的任务越来越多,且部分任务相互依赖,目前使用的crontab定时调度已经无法满足使用需求.急需一个任务依赖调度系统,笔者以前使用过oozie,但是oozie配置过多,而且维护繁琐,属于重量级系统.所以最终我选择使用azkaban.网上关于oozie和azkaban比较的文章很多,有兴趣可以自行百度.接下来说说azkaban的部署. 一.部署模式 单机模式(solo) 单机集群(1个webServer,1个execServer) 集群模式(1个webServer,多个execServer

SVN部署与简单使用

原文发表于cu:2016-05-24 参考文档: http://www.tuicool.com/articles/Yv2iyu7 http://www.centoscn.com/CentosServer/ftp/2013/1217/2244.html http://sxlkk.iteye.com/blog/2264819 http://blog.csdn.net/fax5201314/article/details/38020547 svn服务器有2种运行方式: 独立服务器: (例如:svn:/

Linux中java项目环境部署,简单记录一下

这里只是简单的记录一下linux环境下面如何快速的搭配好环境,使你的项目能在linux环境上面运行. 很多时候,我们都是用windows环境进行配置调试的,而真正很多服务器都是在linux服务器上面的. 下面我就引用一些别人的网页,然后简单的描述记录一下,如何才能快速的配置好环境.至于很多细节的处理,我就点到为止了. 首先记录一下配置,我用得linux是contentOS,服务器用的是阿里云. 下面是记录: 大致安装流程:http://www.cnblogs.com/ada-zheng/p/37

WinForm 应用程序的打包和部署_简单版(图文)(转)

开发好了一个 WinForm 系统,如何使之可以平稳的运行在没有安装 .NET Framework 的操作系统上?这就涉及到打包和部署的内容,通过打包和部署形成安装程序,实现 WinForm 应用软件正常的安装在客户的操作系统上.另一方面同时需要考虑通过打包和部署形成卸载程序,将该应用软件卸载掉,达到方便客户使用的目的. (一) 创建部署项目 在 VS 环境下,单击“文件” → “新建” → “项目”,打开“新建项目”对话框,从“项目类型”列表中选择“安装和部署项目”,在对话框右边的“模板”列表

saltstack安装部署以及简单实用

一,saltstack简介:     SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位. SaltStack提供了一个动态基础设施通信总线用于编排,远程执行.配置管理等等.SaltStack基于python开发,项目于2011年启动,年增长速度较快,五年期 固定基础设施编制和配置管理的开源项目.SaltStack社区致力于保持盐项目集中.友好.健康.开放. (网上摘抄的,说白了saltStack就是一

自动化运维工具---SaltStack安装部署及简单案例

SaltStack原理 SaltStack由Master(服务端)和Minion(客户端)组成,Master和Minion之间通过ZeroMQ(消息队列)进行通讯,Master和Minion分别监听4505与4506端口,4505为master与minion认证通信端口,4506为master用来发送或者接受minion的命令执行返回信息. 当客户端启动后,会主动链接master端注册,然后一直保持该TCP连接,而master通过这条TCP连接对客户端进行控制,如果连接断开,master将对客户