千家信息网

azkaban的部署以及简单使用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,1.工作流调度器的介绍(1)为什么要使用工作流调度器?   - 一个完整的数据分析系统通常都是由大量任务单元组成:shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等  
千家信息网最后更新 2026年11月03日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
① 解压安装包

[root@hadoop03 ~]# tar -zxvf azkaban-web-server-2.5.0.tar.gz -C apps/ azkaban/[root@hadoop03 ~]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C apps/ azkaban/[root@hadoop03 ~]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C apps/ azkaban/ 

②安装 Azkaban 脚本导入

[root@hadoop03 ~]# 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 目录下:[root@hadoop03 ~]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA 

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

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

[root@hadoop03 ~]#cp keystore azkaban/azkaban-web-2.5.0

④修改配置文件

#先配置好服务器节点上的时区先生成时区配置文件 Asia/Shanghai,用交互式命令 tzselect 即可拷贝该时区文件,覆盖系统本地时区配置[hadoop@hadoop03 ~]$ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #azkaban web 服务器配置进入 azkaban web 服务器安装目录 conf 目录[hadoop@hadoop03 ~]$ 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       #数据库连接 IPmysql.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                                    #执行服务器端口 # 邮件设置(可选项) 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                           #缓存目录

#进入 azkaban web 服务器 conf 目录,修改 azkaban-users.xml 用户配置

                                               

#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   

⑤配置环境变量

[hadoop@hadoop03 ~]$  vim /etc/profile
#/etc/profileexport 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.sh 1>/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/

看到以上界面表示安装成功!!!!
小编这里建议将Azkaban 的web、executor配置文件,所有的相对路径都换成绝对路径,不然经常会报出文件找不到的问题!!!!

3.Azkaban 安装部署报错解决


原因是:在azkaban的server和executor中缺少一个叫derby.jar的包
解决:在已经安装的JDK中:

cp $JAVA_HOME/db/lib/derby.jar $AZKABAN_WEB_HOME/extlibcp $JAVA_HOME/db/lib/derby.jar $AZKABAN_EXE_HOME/extlib

如果遇到与MySQL的权限问题:
请参考:https://blog.51cto.com/14048416/2344516 文章。

3.Azkaban 的简单使用

①创建job :command.job

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

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






工作 工作流 文件 服务 服务器 配置 任务 数据 数据库 调度 密码 用户 目录 脚本 支持 地址 时区 最大 功能 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会毛军 西安互联网科技 有木互联网科技 菲比寻常互联网科技 互联网高科技企业 成都狮子座互联网科技 互联网科技公司做什么 互联网和高科技公司 受益于互联网科技的高速发展 宜昌元轩互联网科技有限公司 梅州GM互联网络科技有限公司 美国互联网科技公司 福建互联网展示科技馆设计 科技互联网行业投资研究 互联网时代科技型公司的机会 米泉互联网科技专业怎么样 陕西彩京云互联网科技有限公司 北京瑞云互联网科技有限公司 互联网企业和网络科技有限公司 互联网科技快速发展优美句子 科技互联网公司装修 美国互联网黑科技 时间互联网络科技 上海万想互联网科技 互联网科技产品 湖南诚度互联网科技有限公司 翼展科技 首家互联网医院 伊宁互联网科技做什么的 济南小医互联网科技有限公司招聘 互联网时代科技型公司的机会
0