文档章节

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

强子1985
 强子1985
发布于 2016/04/11 13:41
字数 291
阅读 274
收藏 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);

 

提交任务入执行线程池!


© 著作权归作者所有

共有 人打赏支持
强子1985

强子1985

粉丝 875
博文 1092
码字总数 799704
作品 8
南京
架构师
私信 提问
Azkaban 任务调度系统(安装搭建)

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

喵了_个咪
07/26
0
0
Azkaban的Exec Server分析 28:Execute Server的任务真正执行过程

上节,我们看到了任务放在executor的一个线程池里,下面开始分析真正的执行过程! ================================================================================ jdb azkaban.execapp...

强子哥哥
2016/04/11
287
0
【Azkaban搭建】---Azkaban 3.25.0搭建细则 超实用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LHWorldBlog/article/details/84305321 drop table active_sla;drop table execution_flows;drop table execu......

LHWorldBlog
11/02
0
0
Azkaban-2.5及Plugins的安装配置

Azkaban是由LinkedIn开发的调度工具,可以用于调度Hadoop中的相互依赖的Job。有时候,在Hadoop集群中运行的Job是相互依赖的,某些任务需要顺序的执行,这种场景下使用Azkaban能够很好的解决问...

lulongzhou_llz
04/20
0
0
hadoop工作流引擎azkaban

介绍 Azkaban是twitter出的一个任务调度系统,操作比Oozie要简单很多而且非常直观,提供的功能比较简单。Azkaban以Flow为执行单元进行定时调度,Flow就是预定义好的由一个或多个可存在依赖关...

wayhk
2016/05/13
104
0

没有更多内容

加载失败,请刷新页面

加载更多

Ugly Number(leetcode263)

Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. Example 1: Input: 6Output: true......

woshixin
13分钟前
0
0
深度模型从研者 眼里的 似然估计 & Hessain 海森矩阵 & Fisher Information (费雪信息)

深度模型的训练的基本依据是最小化模型拟合数据的误差。旨在不仅知其然(如何构建和训练一个深度模型),还应知其所以然(为什么这样训练,可以做哪些优化)。我们就会发现,有很多研究者,在...

刘小米_思聪
18分钟前
0
0
阿里巴巴智能监控新场景的探索

摘要: 智能监控是智能运维的子领域,详细分析。 作者简介 王肇刚 阿里巴巴全球运行指挥中心高级技术专家 智能监控是智能运维的子领域,我们说的监控,探讨的更多是在监控策略,因为可能从数...

阿里云官方博客
20分钟前
1
0
【双十二】12 月 12 日 12 点 12 分限量抢福利,云计算不剁手!

活动详情 1.首充豪礼 双十二当日,新用户首充 200 元送 200 元代金券!仅限前 88 名!先到先得!拼手速!(新用户指 12 月 12 日前已完成注册但从未充值过的用户)
 2.超值返券 双十二当日,...

七牛云
46分钟前
3
0
Calculate Linux 发布 18 LXQt是基于Gentoo的发行版

导读 Calculate Linux 是一个基于 Gentoo 并与 Gentoo 完全兼容的滚动更新发行版家族,专为企业环境下的快速部署而优化。其提供多个不同的分支版本,分别适用于桌面、服务器等应用场景。该项...

问题终结者
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部