使用azkaban调度spark任务

一. 简介
该部份内容可参考官方文档:http://azkaban.github.io/azkaban/docs/latest/#overviewgithub

azkaban由三部分构成:

Relational Database(Mysql)
Azkaban Web Server
Azkaban Executor Server


Relational Database(Mysql)
azkaban将大多数状态信息都存于Mysql中,Azkaban Web Server 和 Azkaban Executor Server也需要访问DB。

Azkaban Web Server
提供了Web UI,是azkaband的主要管理者,包括 project 的管理,认证,调度,对工作流执行过程的监控等。大数据培训

Azkaban Executor Server
调度工作流和任务,记录工作流任务的日志,因此将AzkabanWebServer和AzkabanExecutorServer分开,主要是由于在某个任务流失败后,能够更方便的将重新执行。并且也更有利于Azkaban系统的升级。

可调度任务类型
linux命令
脚本
java程序
hadoop MR
spark
flink
hive
建立工做
建立工做任务
建立.job为后缀的文件,type是工做任务类型执行会输出 Hello World

vim hello.job
type=command
command=echo "Hello World"

建立工作流
两个工做任务,经过dependencies进行关联

vim foo.job
type=command
command=echo foo

vim bar.job
type=command
dependencies=foo
command=echo bar

工作流如下:
将会先调用foo再调用bar。

二. 调度Spark任务Demo
建立一个新的project

编写代码 写一段简单的Spark代码,将程序打包

package com.zxl
import org.apache.spark.{SparkConf, SparkContext}

object AzkabanTest extends App{
  val conf = new SparkConf()
  .setMaster("local[2]")
  .setAppName("azkabanTest")
  val sc = new SparkContext(conf)

  val data = sc.parallelize(1 to 10)
  data.map{_ * 2}.foreach(println)
}

编写调度命令

vim test.job
type=command
command=/usr/install/spark/bin/spark-submit --class com.zxl.AzkabanTest test-1.0-SNAPSHOT.jar

将这两个文件以zip的形式打包在一块儿

zip -r xxx.zip azkabanTest    

上传工程

目前azkaban只支持zip包,其中要包括.job文件以及一些需要的工程和文件。


设置离线任务执行周期

 

若是需要的话能够设置离线任务的执行周期(相似于cron的功能)

 

任务通知

 

能够设置任务完成或失败进行邮箱通知等操作。

一些界面

主界面

任务log详情

 定时任务调用状况图

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值