一、Azkaban概述
Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性问题。
我们有需要按顺序运行的工作,从ETL工作到数据分析产品。
特点:
1)给用户提供了一个非常友好的可视化界面->web界面
2)非常方便的上传工作流-》打成压缩包
3)设置任务间的关系
4)权限设置-》删库到跑路
5)模块化
6)随时停止和启动任务
7)可以查看日志记录 二、与Oozie对比
和Oozie相对比,azkaban是一个轻量级调度工具。
企业应用的功能并非小众的功能可以使用Azkaban。
1)功能
两个任务流调度器可以调度使用mr,java,脚本工作流任务
都可以进行定时调度...
2)使用
az直接传参
Oozie直接传参,支持EL表达式...
3)定时
az定时执行任务基于时间
Oozie任务基于时间和数据
4)资源
az有严格的权限控制
Oozie无严格权限控制 三、Azkaban安装部署
1、准备工作
1)快照
2)上传安装包
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 cd /root/hd
mkdir azkaban
上传安装包到/root/hd/azkaban目录下
3)解压重命名
cd /root/hd/azkaban/
解压
tar -zxvf azkaban-web-server-2.5.0.tar.gz
tar -zxvf azkaban-executor-server-2.5.0.tar.gz
tar -zxvf azkaban-sql-script-2.5.0.tar.gz
删除安装包
rm -f azkaban-executor-server-2.5.0.tar.gz
rm -f azkaban-web-server-2.5.0.tar.gz
rm -f azkaban-sql-script-2.5.0.tar.gz
重命名
mv azkaban-executor-2.5.0/ executor
mv azkaban-web-2.5.0/ server
4)mysql中azkaban脚本导入
create database azkaban;
use azkaban;
source /root/hd/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql 2、安装部署
1)创建SSL(安全连接)配置
服务器需要一个证书
cd /root/hd/azkaban/server
keytool -keystore keystore -alias jetty -genkey -keyalg RSA [root@hd09-1 server]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA
输入密钥库口令: 123456(密码是看不见的)
再次输入新口令: 123456
您的名字与姓氏是什么?
[Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的省/市/自治区名称是什么?
[Unknown]:
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN是否正确?
[否]: 是 输入 <jetty> 的密钥口令 123456
(如果和密钥库口令相同, 按回车):
[root@hd09-1 server]# 2)时间同步设置
生成时区文件
tzselect生成
5->9->1->yes 拷贝时区文件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
集群时间同步
crt中开启交互窗口 发送
sudo date -s '2018-11-29 20:22:39' 3)修改配置文件 azkaban.properties
cd /root/hd/azkaban/server/conf
vi 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=/root/hd/azkaban/server/web/ #默认根 web 目录
default.timezone.id=Asia/Shanghai #默认时区,已改为亚洲/上海 默认为美国 #Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager #用户权限管理默认类
user.manager.xml.file=/root/hd/azkaban/server/conf/azkaban-users.xml #用户配置 #Loader for projects # global 配置文件所在位置
executor.global.properties=/root/hd/azkaban/executor/conf/global.properties
azkaban.project.dir=projects database.type=mysql #数据库类型
mysql.port= #端口号
mysql.host=hd09-1 #数据库连接 IP
mysql.database=azkaban #数据库实例名
mysql.user=root #数据库用户名
mysql.password=root #数据库密码
mysql.numconnections=100 #最大连接数 # Velocity dev mode
velocity.dev.mode=false # Jetty 服务器属性 # Azkaban Jetty server properties.
jetty.maxThreads=25 #最大线程数
jetty.ssl.port=8443 #Jetty SSL 端口
jetty.port=8081 #Jetty 端口
jetty.keystore=/root/hd/azkaban/server/keystore #SSL 文件名
jetty.password= #SSL 文件密码
jetty.keypassword= #Jetty 主密码 与 keystore 文件相同
jetty.truststore=/root/hd/azkaban/server/keystore #SSL 文件名
jetty.trustpassword= # SSL 文件密码 # Azkaban Executor settings # 执行服务器属性
executor.port=12321 #执行服务器端口 # mail settings
mail.sender= #发送邮箱
mail.host= #发送邮箱 smtp 地址
job.failure.email= #任务失败时发送邮件的地址
job.success.email= #任务成功时发送邮件的地址 lockdown.create.projects=false cache.directory=cache #缓存目录 4)修改配置文件 azkaban-users.xml
vi 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> 5)修改配置文件 azkaban.properties
cd /root/hd/azkaban/executor/conf
vi azkaban.properties #Azkaban
default.timezone.id=Asia/Shanghai #时区 # Azkaban JobTypes Plugins #插件配置,插件所在位置
azkaban.jobtype.plugin.dir=/root/hd/azkaban/executor/plugins/jobtypes #Loader for projects
executor.global.properties=/root/hd/azkaban/executor/conf/global.properties
azkaban.project.dir=projects
#数据库设置
database.type=mysql #数据库类型(目前只支持 mysql)
mysql.port=3306 #数据库端口号
mysql.host=hd09-1 #数据库 IP 地址
mysql.database=azkaban #数据库实例名
mysql.user=root #数据库用户名
mysql.password=root #数据库密码
mysql.numconnections=100 #最大连接数 # Azkaban Executor settings # 执行服务器配置
executor.maxThreads=50 #最大线程数
executor.port=12321 #端口号(如修改,请与 web 服务中一致)
executor.flow.threads=30 #线程数 6)启动web服务器
cd /root/hd/azkaban/server
bin/azkaban-web-start.sh 7)启动执行器
cd /root/hd/azkaban/executor
bin/azkaban-executor-start.sh 8)访问web
https://hd09-1:8443
打开谷歌或是火狐浏览器输入https://IP:8443,此处测试的地址是https://hd09-1:8443,此时可能会打不开界面,点击高级
点击继续前往hd09-1(不安全)
此时会跳到登录界面,输入在配置文件azkaban-users.xml,中配置的用户名密码admin/admin,点击登录即可 9)配置环境变量
vi /etc/profile 在最后面加上
#Azkaban
export AZKABAN_WEB_HOME=/root/hd/azkaban/server
export AZKABAN_EXE_HOME=/root/hd/azkaban/executor
export PATH=$PATH:$AZKABAN_WEB_HOME/bin:$AZKABAN_EXE_HOME/bin 执行 source /etc/profile 声明环境变量
此时就可以直接输入
azkaban-web-start.sh
azkaban-executor-start.sh
启动azkaban了。 四、应用
下面的#后面的是文件名,把每个任务的文件打成zip压缩包后传到azkaban页面中的project中即可执行任务。
1、command类型单一任务案例
# command.job
type=command
command=echo 'hello world' 2、command类型多个任务案例
# f.job
type=command
command=echo 'hello' # b.job
type=command
dependencies=f
command=echo 'world' 3、azkaban操作HDFS任务
# hdfs.job
type=command
command=/root/hd/hadoop-2.8.4/bin/hdfs dfs -mkdir /azkaban 4、azkaban启动集群任务
# start.job
type=command
command=/root/hd/hadoop-2.8.4/sbin/start-dfs.sh 5、azkaban启动MapReduce程序
# wc.job
type=command
command=/root/hd/hadoop-2.8.4/bin/hadoop jar hadoop-mapreduce-examples-2.8.4.jar wordcount /azwc/in /azwc/out 6、azkaban启动Hive程序
# hive.job
type=command
command=/root/hd/hive/bin/hive -f 'azhive.sql' # azhive.sql
use default;
drop table aztest;
create table aztest(id int,name string) row format delimited fields terminated by ',';
load data inpath '/azdata/user.txt' into table aztest;
create table azres as select * from aztest;
insert overwrite directory '/azdata/userout' select count(1) from aztest;

Azkaban简介及使用的更多相关文章

  1. Azkaban 简介

    本文简单介绍一下Azkaban及其特点.azkaban是一个开源的任务调度系统,用于负责任务的调度运行(如数据仓库调度),用以替代linux中的crontab. 一.Azkaban是什么? 1.1 A ...

  2. Azkaban简介和使用

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

  3. Azkaban学习之路(一)—— Azkaban 简介

    一.Azkaban 介绍 1.1 背景 一个完整的大数据分析系统,必然由很多任务单元(如数据收集.数据清洗.数据存储.数据分析等)组成,所有的任务单元及其之间的依赖关系组成了复杂的工作流.复杂的工作流 ...

  4. 从源码看Azkaban作业流下发过程

    上一篇零散地罗列了看源码时记录的一些类的信息,这篇完整介绍一个作业流在Azkaban中的执行过程,希望可以帮助刚刚接手Azkaban相关工作的开发.测试. 一.Azkaban简介 Azkaban作为开 ...

  5. Oozie和Azkaban的技术选型和对比

    1 两种调度工具功能对比图 下面的表格对上述2种hadoop工作流调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在区别 特性 ...

  6. Azkaban使用安装文档

    Azkaban使用安装文档 Azkaban简介 Azkaban的是什么 Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程.Az ...

  7. 数据调度组件:基于Azkaban协调时序任务执行

    一.Azkaban概述 1.任务时序 在数据服务的业务场景中,很常见的业务流程就是日志文件经过大数据分析,再向业务输出结果数据:在该过程中会有很多任务需要执行,并且很难精准把握任务执行的结束时间,但是 ...

  8. Azkaban入门(启动一个Simple Example)

    Azkaban简介 azkaban是一个开源的任务调度系统 Azkaban是一套简单的任务调度服务,整体包括三部分webserver.dbserver.executorserver. 开发语言为Jav ...

  9. 【Oozie学习之一】Oozie

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 CM5.4 一.简介Oozie由Cloudera公司贡献给A ...

随机推荐

  1. chrome 插件地址 知乎

    chrome运行内存过大:https://www.zhihu.com/question/20061319 chrome扩展程序:https://www.zhihu.com/question/19594 ...

  2. Cannot proceed with delivery: an existing transporter instance is currently uploading this package

    当使用Xcode的Application Loader上传spa到AppStore的过程中,如果临时中断,当你再次进行上传的过程时,就发发现如下现象: Cannot proceed with deli ...

  3. 基于CSS3 3D百叶窗图像过渡特效

    你可能已经在网上看到过不少使用jQuery制作的百叶窗效果,我们可不可以使用纯CSS来完成这项工作呢?答案是肯定的.我们不仅可以制作出这种百叶窗效果,还可以使它具有响应性. 在线预览   源码下载 要 ...

  4. Docker Swarm学习教程

    原创作品,转载请注明出处:点我 Swarm介绍 Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机 ...

  5. Javascript特效代码大全(420个)(转)

    转载自:Javascript特效代码大全(420个) 收集资料,以便使用+面试+学习  ├ Cookie脚本 ├ 随访问次数变提示 ├ 集成Cookies ├ 使窗口仅弹出一次 ├ 签名提示程序 ├ ...

  6. 【BZOJ】2440: [中山市选2011]完全平方数(莫比乌斯+容斥原理+二分)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2440 我觉得网上很多题解都没说清楚...(还是我太弱了? 首先我们可以将问题转换为判定性问题,即给出 ...

  7. jQuery实现tag便签去重效果的方法

    本文实例讲述了jQuery实现tag便签去重效果的方法.分享给大家供大家参考.具体实现方法如下: html代码如下: <head><script type="text/ja ...

  8. ChemDraw怎么绘制H-点或H-划

    ChemDraw软件是一款全球领先的化学绘图工具,能够绘制各类化学结构图形和化学方程式,在基础化学.有机化学和分析化学等领域得到了广泛的应用.H-点和H-划是日常作图过程中使用频率较高的化学符号,必须 ...

  9. C# winform 中MessageBox用法大全(附效果图)

    我们在程序中经常会用到MessageBox. MessageBox.Show()共有21中重载方法.现将其常见用法总结如下: 1.MessageBox.Show(“Hello~~~~”); 最简单的, ...

  10. __name__

    __name__ 是 python 的一个内置变量,它的值等于 '__main__' ,如下: [root@localhost ~]$ cat talk.py #!/usr/bin/env pytho ...