Example usage for org.apache.hadoop.mapreduce.v2.api.protocolrecords.impl.pb GetDelegationTokenRequestPBImpl GetDelegationTokenRequestPBImpl

List of usage examples for org.apache.hadoop.mapreduce.v2.api.protocolrecords.impl.pb GetDelegationTokenRequestPBImpl GetDelegationTokenRequestPBImpl

Introduction

In this page you can find the example usage for org.apache.hadoop.mapreduce.v2.api.protocolrecords.impl.pb GetDelegationTokenRequestPBImpl GetDelegationTokenRequestPBImpl.

Prototype

public GetDelegationTokenRequestPBImpl() 

Source Link

Usage

From source file:co.cask.cdap.explore.security.JobHistoryServerTokenUtils.java

License:Apache License

/**
 * Gets a JHS delegation token and stores it in the given Credentials.
 *
 * @return the same Credentials instance as the one given in parameter.
 */// w w w .  ja  va 2 s.  c om
public static Credentials obtainToken(Configuration configuration, Credentials credentials) {
    if (!UserGroupInformation.isSecurityEnabled()) {
        return credentials;
    }

    String historyServerAddress = configuration.get("mapreduce.jobhistory.address");
    HostAndPort hostAndPort = HostAndPort.fromString(historyServerAddress);
    try {
        LOG.info("Obtaining delegation token for JHS");

        ResourceMgrDelegate resourceMgrDelegate = new ResourceMgrDelegate(new YarnConfiguration(configuration));
        MRClientCache clientCache = new MRClientCache(configuration, resourceMgrDelegate);
        MRClientProtocol hsProxy = clientCache.getInitializedHSProxy();
        GetDelegationTokenRequest request = new GetDelegationTokenRequestPBImpl();
        request.setRenewer(YarnUtils.getYarnTokenRenewer(configuration));

        InetSocketAddress address = new InetSocketAddress(hostAndPort.getHostText(), hostAndPort.getPort());
        Token<TokenIdentifier> token = ConverterUtils
                .convertFromYarn(hsProxy.getDelegationToken(request).getDelegationToken(), address);

        credentials.addToken(new Text(token.getService()), token);
        return credentials;
    } catch (Exception e) {
        LOG.error("Failed to get secure token for JHS at {}.", hostAndPort, e);
        throw Throwables.propagate(e);
    }
}