Azkaban的简介与使用教程说明

一、Azkaban的简介

提示:这里可以添加技术概要

Azkaban是由LinkedIn公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以特定顺序运行一组工作和流程,它的配置是通过简单的key:value对的方式,通过配置其中dependencies来设置依赖关系。azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪工作流。


二、Azkaban的特点

  • 兼容任何版本的hadoop
  • 易于使用的web界面
  • 简单的工作流的上传
  • 方便设置任务之间的关系(dependencies)
  • 调度工作流

三、Azkaban的架构

1. azkabanWebServer

是整个azkaban工作流系统的主要管理者,用户登录认证,负责project管理,定时执行工作流,跟踪工作流执行进度等。

2. azkabanExecutorServer

负责具体的azkabanExecutorServer工作流的提交,执行,通过MySQL数据来协调任务的执行。

3. 关系型数据库(MySQL)

存储大部分执行流状态,azkabanWebServer和azkabanExecutorServer都需要访问数据库。


四、虚拟屏screen的安装与使用

1. 安装虚拟屏screen

首先进入超级管理员root用户,在管理员端安装虚拟屏软件。

su root    #切换用户至root
------------------------------------------
yum -y install screen   #安装虚拟屏软件screen
------------------------------------------
su 普通用户名  #切换为普通用户

2. 虚拟屏的常用指令

screen -S 名称    --创建虚拟屏
screen -r 名称    --进入虚拟屏
screen -R 名称    --先试图恢复离线作业,若找不到离线作业,即创建新的screen作业
screen -wipe     --清除dead 状态screen
screen -ls       --查看所有的screen作业
-------------------------------------------------
Ctrl+a+d         --退出虚拟屏
-------------------------------------------------
kill -9 虚拟屏作业编号  --杀死screen作业

五、Azkaban的启动

1. 启动azkabanExecutorServer

  1. 创建虚拟屏screen -S azkaban-executor
  2. 进入根目录cd /opt/module/azkaban-2.5.0/azkaban-executor-2.5.0/bin/
    进入根目录后使用ls查看当前目录拥有文件
    在这里插入图片描述
  3. 运行启动脚本./azkaban-executor-start.sh
    出现如下截图结果,则说明启动成功。但不能结束或关闭该窗口,因此才需要使用到虚拟屏screen。保持该进程持续运行。
    在这里插入图片描述
    如若出现地址已在使用,要么之前启动了没有关闭,要么被其他进程占用端口,导致出现启动异常,解决办法见后面。
    在这里插入图片描述
  4. 退出虚拟屏Ctrl+A+D

2. 启动azkabanWebServer

  1. 创建虚拟屏screen -S azkaban-web
  2. 进入根目录cd /opt/module/azkaban-2.5.0/azkaban-web-2.5.0/bin/
    进入根目录后使用ls查看当前目录拥有文件
    在这里插入图片描述
  3. 运行启动脚本./azkaban-web-start.sh
    结果跟启动azkabanExecutorServer,出现异常的解决办法也形同。不同之处在于端口号port 8443
  4. 退出虚拟屏Ctrl+A+D

3. 浏览器进入web管理页面

  1. 在浏览器中输入网址:https://192.168.5.100:8443
    网址根据自己虚拟机配置的ip地址决定。加上端口号8443即可。
  2. 输入用户名和密码
    username:azkaban
    password:azkaban
    在这里插入图片描述
  3. 点击Login 登录成功
    在这里插入图片描述

特殊异常处理【端口号被占用】

异常一:启动azkabanExecutorServer地址在使用。

地址已在使用,是因为端口12321被占用,出现在启动服务的时候报错如截图
在这里插入图片描述

解决办法
  1. 执行netstat -alnp | grep 12321 查看端口进程
    在这里插入图片描述
  2. 执行kill -9 进程号 如上图所示,杀死端口被占用的进程即可。
  3. 在azkaban根目录/bin重新运行脚本启动 ./azkaban-executor-start.sh 即可

异常二:启动azkabanWebServer地址在使用。

解决办法

解决办法与上述解决办法类似,不同之处在于被占用的端口号不同,为8443,找到相应的端口被占用的进程,在杀死进程即可,最后重启服务。

六、示例一:创建单工作流任务

步骤一:编辑job文件

编辑job文件,文件以.job结尾,注意编码格式为utf-8,command行最后不能有空格。
文件名:hello.job
文件内容:

#hello.job
type=command
command=/home/hadoop/123/azkaban-hello.sh

说明:

  • #hello.job 注明文件名
  • type 键指定任务类型
  • command 键指定需要执行的脚本文件的绝对路径

步骤二:在Linux中编辑被调度的shell脚本并赋予执行权限

被调度的shell脚本名:azkaban-hello.sh
使用vim 创建执行脚本azkaban-hello.sh

vim azkaban-hello.sh

被调度的shell脚本内容:

#!/bin/bash
echo "hello azkaban 666! how are you! i am fine." > /home/hadoop/123/azkaban-first-job.txt

说明:

  • #!/bin/bash shell脚本正常声明
  • echo "hello azkaban!" echo为shell脚本的打印语句
  • >在此处为重定向的作用,用以将打印的内容重定向写入到文件azkaban-first-job.txt中,如果文件存在则覆盖文件内容,不存在则自动创建该文件并保存写入的内容。

脚本azkaban-hello.sh内容编辑保存退出后,指向chmod语句,为脚本赋予可执行权限

chmod a+x azkaban-hello.sh

步骤三:将job文件压缩为zip压缩包并上传azkaban的web端

将hello.job打包为zip压缩包
在这里插入图片描述

步骤四:在azkaban的web端创建project

在这里插入图片描述
在创建的project中upload压缩包
在这里插入图片描述
点击Execute Flow 或者 un Job
在这里插入图片描述
再次点击Execute 执行job,若hell变成绿色背景,则说明执行成功,出现红色背景则说明执行失败。
在这里插入图片描述

步骤五:回到虚拟机执行终端,查看文件

使用 ls 指令 查看文件azkaban-first-job.txt是否被创建
使用cat 指令 查看azkaban-first-job.txt文件内容

cat azkaban-first-job.txt

在这里插入图片描述

七、示例二:创建前后依赖的工作流任务

后续补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值