@zhangyy
2020-08-01T03:08:49.000000Z
字数 3158
阅读 370
协作框架
- 一:azkaban的概览
- 二:azkaban的概念
- 三:azkaban的编译
- 四:azkaban的单机版的安装
1、调度系统背景一个完整的大数据分析系统通常都是由大量任务单元组成:shell脚本程序,mapreduce程序、hive脚本、spark程序等。各任务单元之间存在时间先后及前后依赖关系:先后关系、依赖关系、定时执行。为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。2、常见调度系统简单的任务调度:直接使用linux的crontab来定义、shell和python脚本实现现成开源任务调度: ooize、azkaban和airflow等复杂的任务调度:自研调度平台
参考官网:https://azkaban.github.io/


4、特点兼容任何hadoop版本容易使用的web ui简介的web和http工作流的上传项目库工作流调度模块化和插件化授权和验证用户action的跟踪成功和失败的邮件报警SLA警报和自动杀死任务失败作业的重试
azkaban和oozie相对来说是市面上最流行的两种调度器。总体来说,ooize相比azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器azkaban是很不错的候选对象。具体对比如下:功能两者均可以调度mapreduce,pig,java,脚本工作流任务两者均可以定时执行工作流任务工作流定义Azkaban使用Properties文件定义工作流Oozie使用XML文件定义工作流工作流传参Azkaban支持直接传参,例如${input}Oozie支持参数和EL表达式,例如${fs:dirSize(myInputDir)}定时执行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、浏览器操作工作流
wget https://codeload.github.com/azkaban/azkaban/tar.gz/3.90.0tar -zxvf 3.90.0cd azkaban-3.90.0/----改编译源为 阿里云源vim build.gradle----buildscript {repositories {mavenCentral()maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'maven {url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}}}---------./gradlew clean 清空编译


./gradlew installDist 编译并安装插件


编译但不运行测试./gradlew build -x test

编译成功后,在根目录下{azkaban-solo-server、azkaban-web-server、azkaban-execserver}/build/distributions目录下都会生成相应的压缩包,并将其copy到/home/azkaban3.57.0目录下用于安装使用。
mkdir -p /root/azkbancp ./azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz /root/azkabancp ./azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz /root/azkabancp ./azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz /root/azkabancp ./azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz /root/azkaban

cd /root/azkabanlsdu -sh *cd ..tar -zcvf azkaban3.90.tar.gz azkabanscp azkaban3.90.tar.gz root@192.168.11.160:/root登录:192.168.11.160scp azkaban3.90.tar.gz root@192.168.11.161:/rootscp azkaban3.90.tar.gz root@192.168.11.162:/root



登录:192.168.11.162tar -zxvf azkaban3.90.tar.gz

mkdir /opt/azkabancd azkaban/tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gzmv azkaban-solo-server-0.1.0-SNAPSHOT /opt/azkaban/azkaban-soloservercd /opt/azkaban/azkaban-soloserver

cd /opt/azkaban/azkaban-soloserver/confvim azkaban-users.xml---<azkaban-users><user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/><user password="metrics" roles="metrics" username="metrics"/><user password="admin" roles="metrics,admin" username="admin"/> 添加这行<role name="admin" permissions="ADMIN"/><role name="metrics" permissions="METRICS"/></azkaban-users>---
启动solo-azkaban./bin/start-solo.shjps

访问:http://192.168.11.162:8081

用户名:admin密码: admin

1、创建job(注意编码)vim hello.jobtype=commandcommand=echo 'hello_azkaban'
2、将job打包zip并上传hello.zip




1、创建一个shell文件(注意编码)vim shell.sh-------------文件名azshell.sh,内容如下:#!/bin/bashecho hello_azkaban >> /var/log/az.log--------------
