文档章节

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

强子1985
 强子1985
发布于 2016/04/12 20:02
字数 226
阅读 891
收藏 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 

]"


© 著作权归作者所有

共有 人打赏支持
强子1985

强子1985

粉丝 862
博文 941
码字总数 648349
作品 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 任务调度系统(使用和小技巧)

上节主要介绍了安装搭建和简单的运行一个job,但是真正使用到实际场景还是需要了解更多的知识,比如任务怎么互相依赖,可以选择指定的节点来执行吗等等一些相关的操作会在本节中进行介绍 附上:...

喵了_个咪
07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
5
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部