从yarn中获取mapreduce job信息的api

来源:互联网 发布:尼古丁 知乎 编辑:程序博客网 时间:2024/05/01 02:41

方式1:JobHistory

  Configuration conf = new Configuration();  conf.addResource(new Path("/hadoop/etc/hadoop/mapred-site.xml"));  JobHistory his = new JobHistory();  his.init(conf);  Map<JobId, Job> jobs = his.getAllJobs();//获取的job信息是不完整的(PartialJob)  Job fullJob = his.getJob(jobId);//获取的job信息是完整的(CompletedJob)

注1:从JobHistory获取的job是所有完成的job,包括历史job
注2:JobHistory是通过load hdfs上的history file获取job信息
注3:PartialJob中无法获取counters、configuration、task等详细信息


方式1:JobClient

  String conf = "/hadoop/etc/hadoop/mapred-site.xml";  JobClient jobClient = new JobClient(new JobConf(conf));  JobStatus[] jobs = jobClient.getAllJobs();//获取缓存中的job,job信息是完整的

注4:从JobClient中获取job需要连接resourcemanager服务和historyserver服务
注5:从JobClient获取的job是其所属的applicationmaster还存在于resourcemanager的缓存中的
注6:从JobClient获取的job包含所有状态的job

0 0