zeus宙斯Job提交分析--MapReduceJob提交

最近在作Job调度管理的事情,打算利用zeus,因为git上zeus版本久远,目前公司的集群是hadoop2.X的,须要改造,并看了下源码。java

本文主要是从zeus代码里提取出来MapReduceJob的提交YARN集群方式,简化了一些没必要要的过程,模拟了MapReduceJob的提交YARN集群的过程。linux

image

我将简化的工程放到github上,相见git

image

从设计角度出发,要想将保护job做业的jar包提交到集群,须要分离调度,和具体job二部分。因此简化后的工程包括mrjobsubmit和wordcount。github

wordcount是完成对hdfs文件的单词计数的job的简单示例。apache

mrjobsubmit是调度部分windows

从技术角度出发,调度须要使用反射机制来调用可能的JOB,相见mrjobsubmit工程中的MapReduceMain类,并须要经过core-site.xml来传递jar位置(为何能够这样,相见org.apache.hadoop.conf.Configuration源码)服务器

Job部分须要使设置mapred-site.xml和yarn-site.xml的重要配置,相见wordcount工程中的WordCount类maven

接下来讲下工程以后的一些操做过程。函数

1.先maven package一下oop

imageimage

2.将构建好的lib文件夹、MRJobSubmit.jar和WordCount.jar上传到linux服务器上,结构以下:

7BUG@OAQ69}K2A9MI{ROF}N

3.执行下面命令,完成wordcountjob的提交

java -cp '.:./*' com.leju.mrjobsubmit.MapReduceMain /data1/local/wqq/mrjob/WordCount.jar com.leju.wordcount.WordCount

其中com.leju.mrjobsubmit.MapReduceMain是调度主函数

参数1:/data1/local/wqq/mrjob/WordCount.jar 指定运行job的jar路径

参数2:com.leju.wordcount.WordCount 指定job的主函数

成功的console显示

image

集群监控页面能够看到wordcount的job在运行处理

image

image

另外若是在windows下作job的调度与提交,在hadoop2.3的版本上,修改些源码,相见工程中的windows文件夹

参考:

从Java代码远程提交YARN MapReduce任务

http://blog.csdn.net/mercedesqq/article/details/16885115

相关文章
相关标签/搜索