yarn编码获取application列表
来源:互联网 发布:云计算峰会的会议主题 编辑:程序博客网 时间:2024/06/04 00:47
1、 新建maven工程
3、pom.xml
2、 编写代码
package Yarn.Yarn;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.PrintStream;import java.io.PrintWriter;import java.nio.charset.Charset;import java.text.DecimalFormat;import java.util.EnumSet;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.mapred.JobClient;import org.apache.hadoop.mapred.JobConf;import org.apache.hadoop.mapred.JobID;import org.apache.hadoop.mapred.TaskReport;import org.apache.hadoop.mapred.JobStatus;import org.apache.hadoop.yarn.api.records.ApplicationId;import org.apache.hadoop.yarn.api.records.ApplicationReport;import org.apache.hadoop.yarn.api.records.YarnApplicationState;import org.apache.hadoop.yarn.api.records.impl.pb.ApplicationReportPBImpl;import org.apache.hadoop.yarn.client.api.YarnClient;import org.apache.hadoop.yarn.client.cli.ApplicationCLI;import org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException;import org.apache.hadoop.yarn.exceptions.YarnException;import org.apache.hadoop.yarn.util.ConverterUtils;public class YarnAppManager {private YarnClient client;protected PrintStream sysout = System.out;private static final String APPLICATIONS_PATTERN = "%30s\t%20s\t%20s\t%10s\t%10s\t%18s\t%18s\t%15s\t%35s"+ System.getProperty("line.separator");public static void main(String[] args) {// TODO Auto-generated method stubtry {YarnAppManager app = new YarnAppManager();app.testAppState();} catch (Exception ex) {ex.printStackTrace();}}private void getJobState(){Configuration conf = new Configuration();client = YarnClient.createYarnClient();client.init(conf);client.start();}private void testAppState() throws YarnException, IOException, InterruptedException, ClassNotFoundException {Configuration conf = new Configuration();client = YarnClient.createYarnClient();client.init(conf);client.start();EnumSet<YarnApplicationState> appStates = EnumSet.noneOf(YarnApplicationState.class);if (appStates.isEmpty()) {appStates.add(YarnApplicationState.RUNNING);appStates.add(YarnApplicationState.ACCEPTED);appStates.add(YarnApplicationState.SUBMITTED);}List<ApplicationReport> appsReport = client.getApplications(appStates);PrintWriter writer = new PrintWriter(new OutputStreamWriter(sysout, Charset.forName("UTF-8")));for (ApplicationReport appReport : appsReport) {ApplicationReportPBImpl app = (ApplicationReportPBImpl) appReport;DecimalFormat formatter = new DecimalFormat("###.##%");String progress = formatter.format(appReport.getProgress());writer.printf(APPLICATIONS_PATTERN, appReport.getApplicationId(), appReport.getName(),appReport.getApplicationType(), appReport.getUser(), appReport.getQueue(),appReport.getYarnApplicationState(), appReport.getFinalApplicationStatus(), progress,appReport.getOriginalTrackingUrl());}writer.flush();for (ApplicationReport appReport : appsReport) {String type = appReport.getApplicationType();if(type.equalsIgnoreCase("spark")){continue;}getStatusByAppId(appReport);}}private void getStatusByAppId(ApplicationReport app){String user = app.getUser();ApplicationId id = app.getApplicationId();String appId = app.getApplicationId().toString();System.out.println(appId);}private void killApplication(String applicationId) throws YarnException, IOException{ApplicationId appId = ConverterUtils.toApplicationId(applicationId); ApplicationReport appReport = null; try { appReport = client.getApplicationReport(appId); } catch (ApplicationNotFoundException e) { sysout.println("Application with id '" + applicationId + "' doesn't exist in RM."); throw e; } if (appReport.getYarnApplicationState() == YarnApplicationState.FINISHED || appReport.getYarnApplicationState() == YarnApplicationState.KILLED || appReport.getYarnApplicationState() == YarnApplicationState.FAILED) { sysout.println("Application " + applicationId + " has already finished "); } else { sysout.println("Killing application " + applicationId); client.killApplication(appId); }}private void getAppState() throws Exception {String[] args = { "-list" };ApplicationCLI.main(args);}}
3、pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>YarnManager</groupId><artifactId>Yarn</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>Yarn</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>2.3.0</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-jobclient</artifactId><version>2.3.0</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.3.0</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.3.0</version></dependency><dependency><groupId>jdk.tools</groupId><artifactId>jdk.tools</artifactId><version>1.6</version><scope>system</scope><systemPath>C:/Program Files/Java/jdk1.8.0_73/lib/tools.jar</systemPath></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-yarn-common</artifactId><version>2.3.0</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-yarn-client</artifactId><version>2.3.0</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-yarn-server-resourcemanager</artifactId><version>2.3.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><mainClass>YarnManager.Yarn.YarnAppManager</mainClass></manifest></archive></configuration></plugin></plugins></build></project>
0 0
- yarn编码获取application列表
- yarn 命令学习:yarn application
- 怎样yarn application -kill jobid
- 通过编写一个YARN Application 来了解Hadoop YARN
- 基于YARN集群构建运行PySpark Application
- 基于YARN集群构建运行PySpark Application
- Yarn作业信息的获取
- 查看yarn当前运行任务列表
- 查看yarn当前运行任务列表
- Yarn application has already exited with state FINISHED
- 获取application debuggable模式
- Java获取application
- 获取Application的context
- android 获取 Application context
- 反射获取 application对象
- 获取Application的Context
- jsp application获取全局变量
- AMR 编码方式列表
- html表单总结小笔记
- javaScript与app交互
- 小知识点
- AsyncSocket使用心得和一些需要注意的地方
- Redis实战:如何构建类微博的亿级社交平台
- yarn编码获取application列表
- Android_OutOfMemoryError
- 练习4-13 编写一个递归版本的reverse(s)函数,以将字符串s倒置
- yii2.0自定义rule来验证多个属性
- 常用加密算法上
- 源值1.5已过时,将在未来所有版本中删除
- 单行函数(转换函数,特有的函数)
- 输入ip访问tomcat首页
- rownum,rowid,row_number() over等区分