文档章节

Azkaban的任务类型分析35:JavaProcessJob的执行

强子哥哥
 强子哥哥
发布于 2016/04/12 20:02
字数 226
阅读 830
收藏 0
点赞 1
评论 0

我们知道,在azkaban内部有好几种调度程序,那么一个java程序怎么被执行的呢?

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

其实更完整的是

下面我们来探索JavaProcessJob类型job的执行过程!

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

stop in azkaban.jobExecutor.JavaProcessJob.HelloWorld

run

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

private void loadDefaultTypes(JobTypePluginSet plugins) throws JobTypeManagerException {

logger.info("Loading plugin default job types");

plugins.addPluginClass("command", ProcessJob.class);

plugins.addPluginClass("javaprocess", JavaProcessJob.class);

plugins.addPluginClass("noop", NoopJob.class);

plugins.addPluginClass("python", PythonJob.class);

plugins.addPluginClass("ruby", RubyJob.class);

plugins.addPluginClass("script", ScriptJob.class);

}


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

关于classPath的路径

protected List<String> getClassPaths() {

//

List<String> classPaths = getJobProps().getStringList(CLASSPATH, null, ",");

 

ArrayList<String> classpathList = new ArrayList<String>();

// Adding global properties used system wide.

//

if (getJobProps().containsKey(GLOBAL_CLASSPATH)) {

List<String> globalClasspath = getJobProps().getStringList(GLOBAL_CLASSPATH);

for (String global : globalClasspath) {

getLog().info("Adding to global classpath:" + global);

classpathList.add(global);

}

}

//

if (classPaths == null) {

File path = new File(getPath());

// File parent = path.getParentFile();

getLog().info("No classpath specified. Trying to load classes from " + path);

 

if (path != null) {

for (File file : path.listFiles()) {

if (file.getName().endsWith(".jar")) {

// log.info("Adding to classpath:" + file.getName());

classpathList.add(file.getName());

}

}

}

} else {

classpathList.addAll(classPaths);

}

 

return classpathList;

}

一个可用的是

 commands = "

[

   java -Dazkaban.flowid=javaprocess -Dazkaban.execid=193 -Dazkaban.jobid=javaprocess -Xms64M -Xmx256M -cp javaProcessTest.jar javaProcessTest.test 

]"


© 著作权归作者所有

共有 人打赏支持
强子哥哥

强子哥哥

粉丝 859
博文 551
码字总数 640910
作品 8
南京
架构师
Azkaban的Exec Server分析 30:JobRunner如何构造一个Job大揭秘

重点来了,JobRunner对象是有了,下面就真的要生成一个Job了,如何生成?本节揭秘! =========================================================================================== String...

强子哥哥
2016/04/11
341
0
Azkaban的Exec Server分析 29:JobRunner的真正执行过程(前奏)

重点来了,现在看看Job Runner的运行过程! ========================================================================================== jdb azkaban.execapp.AzkabanExecutorServer -co......

强子哥哥
2016/04/11
270
0
强子哥哥/MyAzkaban

#MyAzkaban Azkaban是由Linkedin开源的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。 Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一...

强子哥哥
2016/04/15
0
0
Azkaban-2.5及Plugins的安装配置

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

lulongzhou_llz
04/20
0
0
Azkaban 工作流调度器

1、Azkaban是什么 我们在工作中应该都遇到过这样的场景:有一个任务,这个任务可以划分成多个较小的任务完成,之所以进行划分是因为小任务之间可以并发的进行,例如是一个shell脚本执行的命令...

张欢19933
2016/11/23
63
0
Azkaban的线程系列 37:QueueProcessor线程的任务处理&executor存活监控

有个线程,AzkabanWebServer-QueueProcessor-Thread. 下面分析下这个线程到底干嘛的!!! ==================================================================================== stop in......

强子哥哥
2016/04/13
286
0
工作流调度器Azkaban的安装配置

Azkaban安装部署 准备工作 Azkaban Web服务器 azkaban-web-server-2.5.0.tar.gz Azkaban执行服务器 azkaban-executor-server-2.5.0.tar.gz MySQL 目前azkaban只支持 mysql,需安装mysql服务器......

ChinaUnicom110
2017/09/29
0
0
Azkaban的定时调度任务分析34:定时执行下文

下面说线程azkaban.trigger.TriggerManager.TriggerScannerThread是如何运作的 1)初始化 stop in azkaban.trigger.TriggerManager$TriggerScannerThread.xxx run 初始化的上下文是: java.l......

强子哥哥
2016/04/12
189
0
Azkaban的Exec Server分析 28:Execute Server的任务真正执行过程

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

强子哥哥
2016/04/11
287
0
Azkaban二次开发3-Hadoop任务提交方式改造

一、需求说明 原生的Azkaban系统提交HadoopMR任务的时候,是通过在run方法中编写以下代码进行任务的提交 能不能简化这种重复的工作呢?根据《Azkaban源码分析2》中对azkaban-plugins模块的代...

王彦鸿
2016/09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0
[机器学习]回归--Decision Tree Regression

CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值;当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很...

wangxuwei
昨天
1
0
Redis做分布式无锁CAS的问题

因为Redis本身是单线程的,具备原子性,所以可以用来做分布式无锁的操作,但会有一点小问题。 public interface OrderService { public String getOrderNo();} public class OrderRe...

算法之名
昨天
9
0
143. Reorder List - LeetCode

Question 143. Reorder List Solution 题目大意:给一个链表,将这个列表分成前后两部分,后半部分反转,再将这两分链表的节点交替连接成一个新的链表 思路 :先将链表分成前后两部分,将后部...

yysue
昨天
1
0
数据结构与算法1

第一个代码,描述一个被称为BankAccount的类,该类模拟了银行中的账户操作。程序建立了一个开户金额,显示金额,存款,取款并显示余额。 主要的知识点联系为类的含义,构造函数,公有和私有。...

沉迷于编程的小菜菜
昨天
1
0
从为什么别的队伍总比你的快说起

在机场候检排队的时候,大多数情况下,别的队伍都要比自己所在的队伍快,并常常懊悔当初怎么没去那个队。 其实,最快的队伍只能有一个,而排队之前并不知道那个队快。所以,如果有六个队伍你...

我是菜鸟我骄傲
昨天
1
0
分布式事务常见的解决方案

随着互联网的发展,越来越多的多服务相互之间的调用,这时候就产生了一个问题,在单项目情况下很容易实现的事务控制(通过数据库的acid控制),变得不那么容易。 这时候就产生了多种方案: ...

小海bug
昨天
3
0
python从零学——scrapy初体验

python从零学——scrapy初体验 近日因为一些事情,需要从网上爬取一些东西,故而想通过使用爬虫来顺便学习下强大的python。现将一些学习中遇到的问题记录下来,以便日后查询 1. 开发环境的准...

咾咔叽
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部