文档章节

Azkaban的Exec Server分析 27:Execute Server接收任务的过程分析

强子大叔的码田
 强子大叔的码田
发布于 2016/04/11 13:41
字数 291
阅读 335
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

之前,我们说过,web server分发任务,是通过如下的URL来的

uri = "http://x.x.x.x:port/executor?action=execute&execid=12&user"

// 构造URI

URI uri = ExecutorApiClient.buildUri(hostportpathtrueparamList.toArray(new Pair[0])); 

return apiclient.httpGet(urinull);

也就是说,web server发出这样的GET请求给execute server,那么下面就来分析execute server是如何处理这个连接的!

========================================================================================

root.addServlet(new ServletHolder(new ExecutorServlet()), "/executor");

========================================================================================

jdb azkaban.execapp.AzkabanExecutorServer  -conf  /root/azkb/azkaban_3.0.0_debug/conf

stop in azkaban.execapp.ExecutorServlet.init

stop in azkaban.execapp.ExecutorServlet.doGet

stop in azkaban.execapp.FlowRunnerManager.submitFlow

run

========================================================================================

private void handleAjaxExecute(HttpServletRequest req, Map<String, Object> respMap, int execId)

throws ServletException {

// 看到这里了

try {

// 交给本地的manager来处理

flowRunnerManager.submitFlow(execId);

} catch (ExecutorManagerException e) {

e.printStackTrace();

logger.error(e);

respMap.put(RESPONSE_ERROR, e.getMessage());

}

}


先从数据库中执行如下语句:

private static String FETCH_EXECUTABLE_FLOW = "SELECT exec_id, enc_type, flow_data FROM execution_flows "

+ "WHERE exec_id=?";

查处flowData后,-》取出projectId,+Version.

然后以此去查ProjectVersions得到数据

再去project_files拿下数据。

其实你知道是拿下了你上传的压缩包就行了,然后解压缩到本地的projects文件夹中!

========================================================================

这期间会创建一个软连接

ln -s /root/azkb/azkaban_3.0.0_debug/projects/9.15/* .;

实际效果如下:

=================================================================================

Future<?> future = executorService.submit(runner);

 

提交任务入执行线程池!


© 著作权归作者所有

强子大叔的码田

强子大叔的码田

粉丝 923
博文 1630
码字总数 1283214
作品 9
南京
架构师
私信 提问
加载中

评论(0)

[Azkaban]-源码编译&部署

1.准备   https://downloads.gradle.org/distributions/gradle-4.1-all.zip   #unzip /home/hadoop/software/azkaban-3.47.0.zip -d /home/hadoop/source/ 2.编译   首先设置gradle本地......

osc_271igh42
2018/06/20
3
0
第2节 azkaban调度:16、azkaban的介绍以及azkaban的soloserver的安装使用

工作流调度器azkaban 2.1 概述 azkaban官网: https://azkaban.github.io/ 2.1.1为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,...

osc_xuustnyu
2019/06/25
10
0
第2节 azkaban调度:17、azkaban的两个服务模式的安装

2.3.3、azkaban两个服务模式安装 1、确认所需软件: Azkaban Web服务安装包 azkaban-web-server-0.1.0-SNAPSHOT.tar.gz Azkaban执行服务安装包 azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz ...

osc_xuustnyu
2019/06/25
4
0
Azkaban 任务调度系统(安装搭建)

无论是在业务开发还是在大数据开发中,脚本都是必不可少的存在,在初期我们会使用crontab来解决问题,那么当发现规模变大监控需求可视化需求的到来Crontab已经显然满足不了需求,抱着一颗解决大数...

喵了_个咪
2018/07/26
1.9K
2
Azkaban3.X的安装(2018年8月19日最新版本)

###参考文章: 1.http://azkaban.github.io/azkaban/docs/latest/ 2.http://blog.csdn.net/gaoqida/article/details/72288900 3.http://blog.csdn.net/huohuotu/article/details/77487007 4......

osc_qbaf64b6
2018/03/16
2
0

没有更多内容

加载失败,请刷新页面

加载更多

Python笔记:批量提取PDF表格数据(每页都含有相同表头的)

现在有一份PDF数据,里面有两页,每页都有相同的数据结构但数据内容不同的数据表(每页都有相同的表头),现在需要使用Python将它批量提取出来。 我们需要使用pdfplumber模块(因为有墙的原因...

tengyulong
24分钟前
16
0
一个 TCP 连接可以发多少个 HTTP 请求?

曾经有这么一道面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么? 相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什...

onedotdot
34分钟前
21
0
javafx+springboot+mybatis异常

1:实验目录结构: 2:主要代码: @SpringBootApplication@MapperScan("com.joe.naautotest.Mapper")public class NaautotestApplication extends AbstractJavaFxApplicationSupport ......

whoisliang
50分钟前
24
0
Spring Boot接口幂等性封装

Spring Boot接口幂等性封装 封装思路 接口幂等性后端的处理方式,就是通过redis来验证表单提交时申请的token有效性。因此,我们可以利用Spring Boot的自动装配特性,针对此功能封装一个可用的...

旺仔没馒头
今天
20
0
使用“ for”循环遍历字典 - Iterating over dictionaries using 'for' loops

问题: I am a bit puzzled by the following code: 以下代码使我有些困惑: d = {'x': 1, 'y': 2, 'z': 3} for key in d: print key, 'corresponds to', d[key] What I don't unders......

技术盛宴
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部