问题导读:
1、如何远程创建一个Azkaban任务项目?
2、如何删除一个任务项目?
3、如何从流中获取job?
4、如何操作取消流的执行?

Azkaban 外部接口的使用与开发
此文档可用于Azkaban 任务的https调用,提供了查看任务的状态信息、执行情况、任务的创建、上传、触发、取消、调度等功能接口。可以使开发者在编程过程中直接通过https api的调用,来对任务进行控制,开发者可参考azkaban官网提供的api文档

azkaban官网提供的api文档:https://azkaban.github.io/azkaban/docs/latest/#ajax-api

如下是对于Api简单Demo。

使用Hutool工具,直接进行https调用,pom

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.1</version></dependency>

一、认证

获取session.id,在调用接口时,都会进行session.id的认证,获取到的session.id过期时间为24小时。当会话进行退出、机器关机、切换机器、改变浏览器等操作时,session将会失效。若session.id已过期则重新进行获取即可,应为新会话将覆盖老会话。
请求体【请求方式:post】

代码示例:

    String body = HttpRequest.post("https://localhost:8443").body("action=login&username=azkaban&password=azkaban").execute().body();System.out.println(body);

{"status" : "success","session.id" : "c001aba5-a90f-4daf-8f11-62330d034c0a"
}

二、远程创建一个任务项目

在上传任务zip包时,进行远程创建任务姓名。

代码示例:

    String body = HttpRequest.post("https://localhost:8443/manager?action=create").body("session.id=9089beb2-576d-47e3-b040-86dbdc7f523e&name=aaaa&description=11").execute().body();System.out.println(body);

    {"status":"success","path":"manager?project=aaaa","action":"redirect"}

三、删除一个任务项目

代码示例:

    HttpRequest.get("https://localhost:8443/manager").body("session.id=bca1d75d-6bae-4163-a5b0-378a7d7b5a91&delete=true&project=test-delete-project").execute();

四、获取项目中的流

azkaban一个项目中可以创建多个流并且每个流中又含有多个依赖job,在此只能获取流

示例代码:

    String body = HttpRequest.get("https://localhost:8443/manager").body("session.id=6c96e7d8-4df5-470d-88fe-259392c09eea&ajax=fetchprojectflows&project=azkaban-test-project").execute().body();System.out.println(body);

{"project" : "test-azkaban","projectId" : 192,"flows" : [ {"flowId" : "test"}, {"flowId" : "test2"} ]
}

五、从流中获取job

azkaban一个项目中可以创建多个流并且每个流中又含有多个依赖job,在此可以获取流以及所有jobs

示例代码:

    String body = HttpRequest.get("https://localhost:8443/manager").body("session.id=bca1d75d-6bae-4163-a5b0-378a7d7b5a91&ajax=fetchflowgraph&project=texter-1-1&flow=test").execute().body();

{"project" : "azkaban-test-project","nodes" : [ {"id" : "test-final","type" : "command","in" : [ "test-job-3" ]}, {"id" : "test-job-start","type" : "java"}, {"id" : "test-job-3","type" : "java","in" : [ "test-job-2" ]}, {"id" : "test-job-2","type" : "java","in" : [ "test-job-start" ]} ],"flow" : "test","projectId" : 192
}

六、执行流

此api可对流进行执行,也对流中的单独的job进行触发

代码示例:

    String body = HttpRequest.get("https://localhost:8443/executor").body("session.id=189b956b-f39f-421e-9a95-e3117e7543c9&ajax=executeFlow&project=azkaban-test-project&flow=test").execute().body();System.out.println(body);

    {message: "Execution submitted successfully with exec id 295",project: "foo-demo",flow: "test",execid: 295}

七、取消流的执行

若未运行,则返回错误信息,成功则无返回

String body = HttpRequest.get("https://localhost:8443/executor").body("session.id=34ba08fd-5cfa-4b65-94c4-9117aee48dda&ajax=cancelFlow&execid=302").execute().body();System.out.println(body);

注意:
在开发者进行调用时api调用时,Azkaban管理员创建的project其他角色无法访问。

以上是提取了常用的api方法,若需更全的api使用可以查看官网https://azkaban.github.io/azkaban/docs/latest/#ajax-api

作者:数据小二
来源:https://blog.csdn.net/Mirror_w/article/details/117225097

Azkaban 外部接口的使用与开发相关推荐

  1. mockito 外部接口_【IDEA开发SpringBoot2.0】使用Mockito进行常规接口测试#05

    文章目录 前言[^1] 什么是Mockito? 什么是Mock? 为什么要使用Mock? 用PostMan与用Mock有什么区别? 正题 使用Mockito做一个模拟测试 编写代码 开始测试 代码讲解 ...

  2. 【大数据】Azkaban 看这一篇就够了!任务调度平台的搭建,使用,以及API开发

    目录大纲 0 写在前面的话 1.1 初识Azkaban 1.2 为什么需要任务调度器 1.3 常见几种任务调度器 1.4 Azkaban和Hadoop的关系 1.5 Azkaban 底层原理 2 Az ...

  3. java调用一个外部url_Spring Boot :访问外部接口

    原标题:Spring Boot :访问外部接口 在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求, 比如调用外部的地图API或者天气API. 方案一: ...

  4. 提效 24.3%,看 OA 预算管理系统的低代码开发实践

    导读 经历 2 个月的紧张研发,某运营商的 OA 预算管理系统于 2021 年 12 月 30 日正式上线.经过近 3 个月相关业务部门系统试运行,目前系统整体运行情况良好,系统稳定,业务部门整体使用 ...

  5. Azkaban登录分析

    分析意义:目前azkaban采用的是azkaban-users.xml配置文件的方式,配置登录用户.如果公司需要二次开发,增加安全性和便捷性,想从数据库取值呢,该如何着手开发呢?本文分析登录过程,便于 ...

  6. BEP 7:CUDA外部内存管理插件(下)

    BEP 7:CUDA外部内存管理插件(下) Numba依赖 向库中添加EMM插件的实现自然会使Numba成为库的依赖项,而以前可能没有.为了使依赖关系可选,如果需要的话,可以有条件地实例化并注册EMM ...

  7. 用友BQ商业智能设计模式——概述

    用友BQ商业智能设计模式--概述 概述 一个完整的商业智能平台应该包括用户视角和开发者视角:对用友BQ商业智能平台而言,开发者视角就是设计模式. 开发者视角应该包括相应的安全管理.数据源连接.任务计划 ...

  8. Postman入门到精通01

    1.什么是接口? 电脑:USB,投影仪  作用:数据传输 软件:API(application Program Interface),微信提现和充值接口,支付宝支付,银联支付接口(鉴权码,token, ...

  9. (软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算

    文章目录 一:软件项目管理综述 (1)管理 (2)软件项目管理 二:估算软件规模 (1)代码行技术 A:定义 B:方法 C:优缺点 (2)功能点技术 A:定义 B:信息域特性 C:估算功能点的步骤 ① ...

最新文章

  1. Github标星57k+,热榜第一,用Python实现所有算法
  2. 分析并写出下列程序的运行结果_知到APP2020分析化学(福州大学)章节答案
  3. python写错了怎么更改-Python中如何修改文件?Python文件修改方法
  4. android-async-http 源码分析
  5. oracle date类型,oracle 日期时间数据类型
  6. 在Eclipse中运行hadoop程序
  7. Linux|麒麟操作系统实现多路RTMP|RTSP播放
  8. vue和小程序哪个好学一点_litemall,Spring Boot后端,微信小程序用户前端 + Vue用户移动端...
  9. ActiveMq工作笔记001---Windows10下安装ActiveMq
  10. 【测绘程序设计】Excel度(°)转换度分秒(° ‘ “)模板附代码超实用版
  11. 电力电子课设日志(已完结)
  12. 如何彻底卸载AutoCAD 2018版
  13. MySql必知必会学习
  14. 商业仲裁与诉讼律师Katherine Cheung加入德汇香港担任合伙人
  15. wps自动插入文献_WPS参考文献自动生成方法教程
  16. 熊猫数据集_使用大数据的熊猫
  17. 乐乐课堂_leleketang.com
  18. 打造百亿量级、亿级日活SDK的十大关键要点
  19. 自定义 rest_framework 响应返回格式
  20. 一步一步教你将java代码打成jar包用bat批处理命令运行

热门文章

  1. linux进程文件描述符 vnode,从flock引发的一个bug谈起(1) 进程的文件描述符
  2. python自动化测试环境搭建_(一)Python+Appium自动化测试环境搭建
  3. python解释器把python代码一次性翻译成目标代码_Python语言程序设计----【第1周 Python基本语法元素】之1.1 程序设计基本方法...
  4. 鸿蒙正式版什么时候上线,终于来了!华为鸿蒙正式版6月2日上线,EMUI时代落幕...
  5. oracle能不能改外键属性,CSS_小议Oracle外键约束修改行为(五), Oracle的外键用来限制子表 - phpStudy...
  6. vue2.0-基于elementui换肤[自定义主题]
  7. 企业云桌面-01-安装第1台域控制器和第1台DNS服务器-011-DC01
  8. HTTP协议学习---(三)摘要认证
  9. java对象转json格式
  10. 【Linux】排序命令sort