Example usage for org.apache.hadoop.yarn.api.records ApplicationReport getOriginalTrackingUrl

List of usage examples for org.apache.hadoop.yarn.api.records ApplicationReport getOriginalTrackingUrl

Introduction

In this page you can find the example usage for org.apache.hadoop.yarn.api.records ApplicationReport getOriginalTrackingUrl.

Prototype

@Private
@Unstable
public abstract String getOriginalTrackingUrl();

Source Link

Document

Get the original not-proxied tracking url for the application.

Usage

From source file:com.cloudera.branchreduce.impl.thrift.Client.java

License:Open Source License

@Override
public int handle(YarnClientService clientService) throws Exception {
    clientService.startAndWait();//from   w  w w .  j  a v  a 2 s  .com
    if (!clientService.isRunning()) {
        LOG.error("BranchReduce job did not start, exiting...");
        return 1;
    }

    Lord.Client client = null;
    while (clientService.isRunning()) {
        ApplicationReport report = clientService.getApplicationReport();
        if (report.getYarnApplicationState() == YarnApplicationState.RUNNING) {
            String originalTrackingUrl = report.getOriginalTrackingUrl();
            if (originalTrackingUrl != null && originalTrackingUrl.contains(":")) {
                System.out.println("Original Tracking URL = " + originalTrackingUrl);
                String[] pieces = originalTrackingUrl.split(":");
                TSocket socket = new TSocket(pieces[0], Integer.valueOf(pieces[1]));
                TProtocol protocol = new TBinaryProtocol(socket);
                client = new Lord.Client(protocol);
                socket.open();
                break;
            }
        }
    }

    if (client == null) {
        LOG.error("Could not connect to thrift service to get status");
        return 1;
    }

    Configuration conf = clientService.getParameters().getConfiguration();
    Class<GlobalState> globalStatusClass = (Class<GlobalState>) conf
            .getClass(BranchReduceConfig.GLOBAL_STATE_CLASS, GlobalState.class);

    boolean finished = false;
    while (!clientService.isApplicationFinished()) {
        if (!finished) {
            GlobalStatusResponse resp = client.getGlobalStatus(new GlobalStatusRequest());
            this.value = Writables.fromByteBuffer(resp.bufferForGlobalState(), globalStatusClass);
            if (resp.isFinished()) {
                LOG.info("Job finished running.");
                finished = true;
            }
            LOG.info(value);
        }
        Thread.sleep(1000);
    }

    clientService.stopAndWait();
    ApplicationReport report = clientService.getFinalReport();
    if (report.getFinalApplicationStatus() == FinalApplicationStatus.SUCCEEDED) {
        System.out.println("Job complete.");
        System.out.println(value);
        return 0;
    } else {
        System.out.println("Final app state: " + report.getFinalApplicationStatus());
        System.out.println("Last global state:");
        System.out.println(value);
        return 1;
    }
}

From source file:org.apache.drill.yarn.client.StatusCommand.java

License:Apache License

public static String getAmUrl(ApplicationReport report) {
    return DoYUtil.unwrapAmUrl(report.getOriginalTrackingUrl());
}

From source file:org.apache.slider.common.tools.SliderUtils.java

License:Apache License

/**
 * convert an AM report to a string for diagnostics
 * @param report the report//from w  ww  .ja  v  a  2s .  c  o m
 * @return the string value
 */
public static String reportToString(ApplicationReport report) {
    if (report == null) {
        return "Null application report";
    }

    return "App " + report.getName() + "/" + report.getApplicationType() + "# " + report.getApplicationId()
            + " user " + report.getUser() + " is in state " + report.getYarnApplicationState() + " RPC: "
            + report.getHost() + ":" + report.getRpcPort() + " URL" + report.getOriginalTrackingUrl();
}

From source file:org.springframework.cloud.dataflow.module.deployer.yarn.YarnCloudAppServiceApplication.java

License:Apache License

public Collection<CloudAppInstanceInfo> getSubmittedApplications() {
    List<CloudAppInstanceInfo> appIds = new ArrayList<CloudAppInstanceInfo>();
    for (ApplicationReport report : yarnClient.listApplications("DATAFLOW")) {
        appIds.add(new CloudAppInstanceInfo(report.getApplicationId().toString(), report.getName(),
                report.getYarnApplicationState().toString(), report.getOriginalTrackingUrl()));
    }/*from w  w w. jav  a  2 s.co m*/
    return appIds;
}

From source file:org.springframework.cloud.dataflow.module.deployer.yarn.YarnCloudAppServiceApplication.java

License:Apache License

private synchronized YarnContainerClusterOperations buildClusterOperations(RestTemplate restTemplate,
        YarnClient client, ApplicationId applicationId) {
    String key = applicationId.toString();
    YarnContainerClusterOperations operations = operationsCache.get(key);
    if (operations == null) {
        ApplicationReport report = client.getApplicationReport(applicationId);
        String trackingUrl = report.getOriginalTrackingUrl();
        operations = new YarnContainerClusterTemplate(
                trackingUrl + "/" + YarnContainerClusterEndpoint.ENDPOINT_ID, restTemplate);
        operationsCache.put(key, operations);
    }//from   w  w  w  .ja  v a 2s . c  om
    return operations;
}

From source file:org.springframework.cloud.deployer.spi.yarn.YarnCloudAppServiceApplication.java

License:Apache License

public Collection<CloudAppInstanceInfo> getSubmittedApplications(String yarnApplicationId) {
    List<CloudAppInstanceInfo> appIds = new ArrayList<CloudAppInstanceInfo>();
    for (ApplicationReport report : yarnClient.listApplications("DATAFLOW")) {
        if (report.getApplicationId().toString().equals(yarnApplicationId)) {
            appIds.add(new CloudAppInstanceInfo(report.getApplicationId().toString(), report.getName(),
                    report.getYarnApplicationState().toString(), report.getOriginalTrackingUrl()));
        }//ww  w .j a  va 2s. com
    }
    return appIds;
}

From source file:org.springframework.yarn.boot.app.YarnContainerClusterApplication.java

License:Apache License

private YarnContainerClusterOperations buildClusterOperations(RestTemplate restTemplate, YarnClient client,
        ApplicationId applicationId) {/*w  w  w. j  av  a2s .c  o m*/
    ApplicationReport report = client.getApplicationReport(applicationId);
    String trackingUrl = report.getOriginalTrackingUrl();
    return new YarnContainerClusterTemplate(trackingUrl + "/" + YarnContainerClusterEndpoint.ENDPOINT_ID,
            restTemplate);
}

From source file:org.springframework.yarn.boot.app.YarnShutdownApplication.java

License:Apache License

@Override
public String run(String... args) {
    SpringApplicationBuilder builder = new SpringApplicationBuilder();
    builder.web(false);//from   ww w.  j a  v  a2 s .  co  m
    builder.sources(YarnShutdownApplication.class, OperationProperties.class);
    SpringYarnBootUtils.addSources(builder, sources.toArray(new Object[0]));
    SpringYarnBootUtils.addProfiles(builder, profiles.toArray(new String[0]));
    SpringYarnBootUtils.addApplicationListener(builder, appProperties);

    SpringApplicationTemplate template = new SpringApplicationTemplate(builder);
    return template.execute(new SpringApplicationCallback<String>() {

        @Override
        public String runWithSpringApplication(ApplicationContext context) throws Exception {
            OperationProperties operationProperties = context.getBean(OperationProperties.class);
            ApplicationId applicationId = ConverterUtils
                    .toApplicationId(operationProperties.getApplicationId());
            YarnClient client = context.getBean(YarnClient.class);
            ApplicationReport report = client.getApplicationReport(applicationId);
            String trackingUrl = report.getOriginalTrackingUrl();

            RestTemplate restTemplate = context.getBean(YarnSystemConstants.DEFAULT_ID_RESTTEMPLATE,
                    RestTemplate.class);
            restTemplate.postForObject(trackingUrl + "/shutdown", null, Void.class);
            return "shutdown requested";
        }

    }, args);

}