文档章节

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

强子大叔的码田
 强子大叔的码田
发布于 2016/04/12 20:02
字数 226
阅读 2.5K
收藏 0

码上生花,ECharts 作品展示赛正式启动!>>>

我们知道,在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 

]"


© 著作权归作者所有

强子大叔的码田

强子大叔的码田

粉丝 924
博文 1630
码字总数 1283214
作品 9
南京
架构师
私信 提问
加载中
请先登录后再评论。
Azkaban的Exec Server分析 30:JobRunner如何构造一个Job大揭秘

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

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

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

强子哥哥
2016/04/11
415
0
Oozie和Azkaban的技术选型和对比

原文:http://blog.csdn.net/gaoqida/article/details/52165204 Oozie和Azkaban的技术选型和对比 一.Azkaban和Oozie的工作流程 1.1 Azkaban工作流程 Azkaban将需要操作的信息打包成zip文件发...

u013063153
2017/08/23
0
0
【大数据】Azkaban学习笔记

一 概述 1.1 为什么需要工作流调度系统 1)一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序、hive脚本等 2)各任务单元之间存在时间先后及前后...

osc_vyilg5ji
2018/12/21
8
0
Azkaban-2.5及Plugins的安装配置

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

lulongzhou_llz
2018/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

通过使用模块名称(字符串)来调用模块的功能 - Calling a function of a module by using its name (a string)

问题: What is the best way to go about calling a function given a string with the function's name in a Python program. 在Python程序中,给定带有函数名称的字符串的最佳方法是什么?......

javail
45分钟前
31
0
在JavaScript中生成随机字符串/字符 - Generate random string/characters in JavaScript

问题: I want a 5 character string composed of characters picked randomly from the set [a-zA-Z0-9] . 我想要一个由从[a-zA-Z0-9]随机挑选的字符组成的5个字符串。 What's the best wa......

fyin1314
今天
20
0
在GitHub上将图像添加到README.md - Add images to README.md on GitHub

问题: Recently I joined GitHub . 最近我加入了GitHub 。 I hosted some projects there. 我在那里举办了一些项目。 I need to include some images in my README File. 我需要在README文件......

技术盛宴
今天
17
0
R语言笔记:用R语言绘制条形图

学“统计学”的人对R语言应该不会太陌生,近十年来,随着大数据时代的到来,把统计学和数据分析,R语言都带火了。虽然我本人会用Python的matplotlib和pyecharts,百度的Echarts,微软的Excel...

tengyulong
今天
29
0
字符串中全半角的不同

全角空格 数字表示 12288 半角空格 数字表示 32 一般string类中去掉空格的一般操作都是半角空格 /** * 去除字符串中所包含的空格(包括:空格(全角,半角)、制表符、换页符等) * @param s *...

飞雪无痕
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部