hadoop2.0(chd4) 通过API获取job信息

hadoop 版本儿:hadoop-2.0-cdh4.3.0

想做一个hive的命令的schedule,所以必须获取正在运行的job的数量。

到网上查了一通,一开始用了JobClient,怎么弄都是Null pointor Exception,非常郁闷,不得已看了代码,发现在jobclient初始化的时候出现了这句话:

setConf(conf);
    String tracker = conf.get("mapred.job.tracker", "local");

可是2.0根本没有job tracker...我又看了hadoop的命令的shell文件,发现调用hadoop job ××的命令都是用的JobClient啊。所以我矛盾了,浪费了好长时间。

然后我看了2.0的源码,发现有一个YarnRunner的类,其初始化和API和JobClient都是差不多的,所以决定用这个试试,

首先是配置Configuration,然后在初始化YarnRunner,直接就能用了!

好了上代码:

Configuration conf = new Configuration();
conf.set(CONF_KEY, CONF_VALUE);
YarnRunner runner = new YARNRunner(conf);        

其中的CONF_KEY是:yarn.resourcemanager.address

value去集群上的yarn-site.xml上面看一下就好了~

希望可以节省同行的时间~

原文地址:https://www.cnblogs.com/fbiswt/p/3469929.html