1、通过hadoop -jar命令提交一个job,并且解析提交的各个参数,保存对应的属性或内容到configuration;
优化点:这里可以通过修改GenerticOptionPaser类,来解析自定义的属性,比如public jar包更新等。
2、调用waitForCompletion提交job并轮询job运行状态;
优化点:这里的job状态轮询在ResourceManager返回app finish后回去查询historyserver,查询historyserver失败的话会默认重试三次,由于historyserver是单点并且无状态的,可以启用备用节点,当主节点挂掉或阻塞超时,就去查询备用节点,从而实现historyserver的高可用。
3、在提交job前根据configuration属性构建job提交时需要的ApplicationSubmissionContext,其中比较重要的就是LocalResource资源的封装。这里会包含job运行时需要的配置文件及依赖的jar包在hdfs上的路径等。其中jar包属性分为application、private、public三种,这些资源在container运行时都会去hdfs上下载,不同属性的jar包处理方式有所不同,具体可参照下一篇文章。
优化点:支持public jar包更新,hadoop默认的客户端貌似还不支持提交public类型的jar包,可以通过修改客户端job提交流程来实现,最终效果就是能减少nodemanager端container下载jar包的次数(本地缓存),从而减少namenode的rpc请求压力,同时提高mapreduce job运行速度
4、调用YarnClientImpl.submitApplication提交job,其实现是通过调用rpc服务来提交的,具体对应代码为:ApplicationClientProtocolPBServiceImpl.submitApplication(),这样就完成了客户端job提交;
5、ResourceManager对应的服务端响应方法为:ClientRMService.submitApplication();
整个流程如下图所示:
下一篇:http://rainforc.iteye.com/blog/2286335
相关推荐
当当elastic-job控制台jar包,elastic-job-lite-console-3.0.0.M1-SNAPSHOT,本人从git下载源码后编译生成的jar。 $ 解压 elastic-job-lite-console-3.0.0.M1-SNAPSHOT.rar $ cd elastic-job-lite-console-3.0.0.M1-...
elastic-job-lite-console-2.1.4.tar.gz,可以在windows或者linux环境部署。控制台和Elastic Job并无直接关系,是通过读取Elastic Job的注册中心数据展现作业状态,或更新注册中心数据修改全局配置。
基于shardingsphere-elasticjob-ui 的3.1.0版本打出来的elasticjob-lite软件包,可以解压后直接使用. 登录地址:ip:8088,登录账号/密码:root/root 在软件包中的conf/application.properties 文件中可以直接修改...
xxl-job-admin-2.4.1-SNAPSHOT之oracle版
elastic-job-lite-console-2.1.5.tar.gz elastic-job web console
xxl-job-admin 作为调度中心,有可视化的web管理界面,可将其作为一个模块以源码的方式引入到我们的项目中,我们可对其进行自定义的修改,但一般不需要;xxl-job-core 是 XXL-JOB的核心,绝大多数情况下我们不用对其...
赠送jar包:xxl-job-core-2.3.0.jar; 赠送原API文档:xxl-job-core-2.3.0-javadoc.jar; 赠送源代码:xxl-job-core-2.3.0-sources.jar; 赠送Maven依赖信息文件:xxl-job-core-2.3.0.pom; 包含翻译后的API文档:...
赠送jar包:xxl-job-core-2.3.0.jar 赠送原API文档:xxl-job-core-2.3.0-javadoc.jar 赠送源代码:xxl-job-core-2.3.0-sources.jar 包含翻译后的API文档:xxl-job-core-2.3.0-javadoc-API文档-中文(简体)版.zip ...
elastic-job-lite-console-2.1.5.zip[支持Windows/Os/Linux]
elastic-job控制管理台-console-2.1.4,elastic-job控制管理台-console-2.1.4. 下载后,直接解压缩使用。
依赖 <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core <version>2.2.0-SNAPSHOT </dependency>
elastic-job-lite-console 控制面板
xxl-job可直接运行其中的jar文件,注意配置一下数据库即可
elastic-job 的可视化管理界面,支持以下功能 查看作业以及服务器状态 快捷的修改以及删除作业设置 启用和禁用作业 跨注册中心查看作业 查看作业运行轨迹和运行状态
xxl-job官网只提供了mysql相关的脚步和mapper文件支持,如果需要在postgresql在执行则需要单独改造,这套资源包括全套脚本+mapper文件,直接替换即可完美在postgresql数据库下运行
1.xxl-job-2.2.0-pg集成nacos配置管理,可直接运行 2.集成assembly规范打包bin、log、conf、lib文件
Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务;Job-Cloud采用...
1.每个复杂的项目都存在大量重要的定时调度任务,引入一个好用的分布式调度任务框架是 非常重要的。elastic job是当当网开源的基于quartz的分布式调度框架,通过zookeeper实 现分布式协调,加上支持分片、日志...