org.apache.hadoop.yarn.api.records.Token类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(10.4k)|赞(0)|评价(0)|浏览(87)

本文整理了Java中org.apache.hadoop.yarn.api.records.Token类的一些代码示例,展示了Token类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Token类的具体详情如下:
包路径:org.apache.hadoop.yarn.api.records.Token
类名称:Token

Token介绍

[英]Token is the security entity used by the framework to verify authenticity of any resource.
[中]Token是框架用来验证任何资源真实性的安全实体。

代码示例

代码示例来源:origin: Qihoo360/XLearning

@Override
public CancelDelegationTokenResponse cancelDelegationToken(
  CancelDelegationTokenRequest request) throws IOException {
 if (!isAllowedDelegationTokenOp()) {
  throw new IOException(
    "Delegation Token can be cancelled only with kerberos authentication");
 }
 org.apache.hadoop.yarn.api.records.Token protoToken = request.getDelegationToken();
 Token<MRDelegationTokenIdentifier> token =
   new Token<MRDelegationTokenIdentifier>(
     protoToken.getIdentifier().array(), protoToken.getPassword()
     .array(), new Text(protoToken.getKind()), new Text(
     protoToken.getService()));
 String user = UserGroupInformation.getCurrentUser().getUserName();
 jhsDTSecretManager.cancelToken(token, user);
 return Records.newRecord(CancelDelegationTokenResponse.class);
}

代码示例来源:origin: Qihoo360/XLearning

@Override
public GetDelegationTokenResponse getDelegationToken(
  GetDelegationTokenRequest request) throws IOException {
 UserGroupInformation ugi = UserGroupInformation.getCurrentUser();
 // Verify that the connection is kerberos authenticated
 if (!isAllowedDelegationTokenOp()) {
  throw new IOException(
    "Delegation Token can be issued only with kerberos authentication");
 }
 GetDelegationTokenResponse response = recordFactory.newRecordInstance(
   GetDelegationTokenResponse.class);
 String user = ugi.getUserName();
 Text owner = new Text(user);
 Text realUser = null;
 if (ugi.getRealUser() != null) {
  realUser = new Text(ugi.getRealUser().getUserName());
 }
 MRDelegationTokenIdentifier tokenIdentifier =
   new MRDelegationTokenIdentifier(owner, new Text(
     request.getRenewer()), realUser);
 Token<MRDelegationTokenIdentifier> realJHSToken =
   new Token<MRDelegationTokenIdentifier>(tokenIdentifier,
     jhsDTSecretManager);
 org.apache.hadoop.yarn.api.records.Token mrDToken =
   org.apache.hadoop.yarn.api.records.Token.newInstance(
     realJHSToken.getIdentifier(), realJHSToken.getKind().toString(),
     realJHSToken.getPassword(), realJHSToken.getService().toString());
 response.setDelegationToken(mrDToken);
 return response;
}

代码示例来源:origin: org.apache.apex/apex-engine

private Token<RMDelegationTokenIdentifier> getRMHAToken(org.apache.hadoop.yarn.api.records.Token rmDelegationToken)
{
 // Build a list of service addresses to form the service name
 ArrayList<String> services = new ArrayList<>();
 for (String rmId : ConfigUtils.getRMHAIds(conf)) {
  LOG.info("Yarn Resource Manager id: {}", rmId);
  // Set RM_ID to get the corresponding RM_ADDRESS
  services.add(SecurityUtil.buildTokenService(getRMHAAddress(rmId)).toString());
 }
 Text rmTokenService = new Text(Joiner.on(',').join(services));
 return new Token<>(
   rmDelegationToken.getIdentifier().array(),
   rmDelegationToken.getPassword().array(),
   new Text(rmDelegationToken.getKind()),
   rmTokenService);
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-nodemanager

Token currentToken = rcs.getStartRequest().getContainerToken();
Token updatedToken = Token
  .newInstance(tokenIdentifierProto.toByteArray(),
    ContainerTokenIdentifier.KIND.toString(),
    currentToken.getPassword().array(), currentToken.getService());
rcs.startRequest.setContainerToken(updatedToken);
rcs.capability = new ResourcePBImpl(tokenIdentifierProto.getResource());

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-server-common

public static <T extends Token> T newToken(Class<T> tokenClass,
  byte[] identifier, String kind, byte[] password, String service) {
 T token = recordFactory.newRecordInstance(tokenClass);
 token.setIdentifier(ByteBuffer.wrap(identifier));
 token.setKind(kind);
 token.setPassword(ByteBuffer.wrap(password));
 token.setService(service);
 return token;
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-client

&& !proxy.token.getIdentifier().equals(
   nmTokenCache.getToken(containerManagerBindAddr).getIdentifier())) {
LOG.info("Refreshing proxy as NMToken got updated for node : "
  + containerManagerBindAddr);

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-common

@Test
public void testResourceIncreaseContext() {
 byte[] identifier = new byte[] { 1, 2, 3, 4 };
 Token token = Token.newInstance(identifier, "", "".getBytes(), "");
 ContainerId containerId = ContainerId
   .newContainerId(ApplicationAttemptId.newInstance(
     ApplicationId.newInstance(1234, 3), 3), 7);
 Resource resource = Resource.newInstance(1023, 3);
 ContainerResourceIncrease ctx = ContainerResourceIncrease.newInstance(
   containerId, resource, token);
 // get proto and recover to ctx
 ContainerResourceIncreaseProto proto = 
   ((ContainerResourceIncreasePBImpl) ctx).getProto();
 ctx = new ContainerResourceIncreasePBImpl(proto);
 // check values
 Assert.assertEquals(ctx.getCapability(), resource);
 Assert.assertEquals(ctx.getContainerId(), containerId);
 Assert.assertTrue(Arrays.equals(ctx.getContainerToken().getIdentifier()
   .array(), identifier));
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-nodemanager

protected ContainerTokenIdentifier verifyAndGetContainerTokenIdentifier(
  org.apache.hadoop.yarn.api.records.Token token,
  ContainerTokenIdentifier containerTokenIdentifier) throws YarnException,
  InvalidToken {
 byte[] password =
   context.getContainerTokenSecretManager().retrievePassword(
    containerTokenIdentifier);
 byte[] tokenPass = token.getPassword().array();
 if (password == null || tokenPass == null
   || !Arrays.equals(password, tokenPass)) {
  throw new InvalidToken(
   "Invalid container token used for starting container on : "
     + context.getNodeId().toString());
 }
 return containerTokenIdentifier;
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

response.getAMRMToken().getService()));

代码示例来源:origin: io.hops/hadoop-yarn-server-common

public static <T extends Token> T newToken(Class<T> tokenClass,
  byte[] identifier, String kind, byte[] password, String service) {
 T token = recordFactory.newRecordInstance(tokenClass);
 token.setIdentifier(ByteBuffer.wrap(identifier));
 token.setKind(kind);
 token.setPassword(ByteBuffer.wrap(password));
 token.setService(service);
 return token;
}

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-client

&& !proxy.token.getIdentifier().equals(
   nmTokenCache.getToken(containerManagerBindAddr).getIdentifier())) {
LOG.info("Refreshing proxy as NMToken got updated for node : "
  + containerManagerBindAddr);

代码示例来源:origin: io.hops/hadoop-yarn-server-nodemanager

protected ContainerTokenIdentifier verifyAndGetContainerTokenIdentifier(
  org.apache.hadoop.yarn.api.records.Token token,
  ContainerTokenIdentifier containerTokenIdentifier) throws YarnException,
  InvalidToken {
 byte[] password =
   context.getContainerTokenSecretManager().retrievePassword(
     containerTokenIdentifier);
 byte[] tokenPass = token.getPassword().array();
 if (password == null || tokenPass == null
   || !Arrays.equals(password, tokenPass)) {
  throw new InvalidToken(
   "Invalid container token used for starting container on : "
     + context.getNodeId().toString());
 }
 return containerTokenIdentifier;
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

response.getAMRMToken().getService()));

代码示例来源:origin: Qihoo360/XLearning

@Override
public RenewDelegationTokenResponse renewDelegationToken(
  RenewDelegationTokenRequest request) throws IOException {
 if (!isAllowedDelegationTokenOp()) {
  throw new IOException(
    "Delegation Token can be renewed only with kerberos authentication");
 }
 org.apache.hadoop.yarn.api.records.Token protoToken = request.getDelegationToken();
 Token<MRDelegationTokenIdentifier> token =
   new Token<MRDelegationTokenIdentifier>(
     protoToken.getIdentifier().array(), protoToken.getPassword()
     .array(), new Text(protoToken.getKind()), new Text(
     protoToken.getService()));
 String user = UserGroupInformation.getCurrentUser().getShortUserName();
 long nextExpTime = jhsDTSecretManager.renewToken(token, user);
 RenewDelegationTokenResponse renewResponse = Records
   .newRecord(RenewDelegationTokenResponse.class);
 renewResponse.setNextExpirationTime(nextExpTime);
 return renewResponse;
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-common

private static org.apache.hadoop.yarn.api.records.Token
   convertToProtoToken(Token<?> token) {
  return org.apache.hadoop.yarn.api.records.Token.newInstance(
   token.getIdentifier(), token.getKind().toString(), token.getPassword(),
   token.getService().toString());
 }
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-common

public static <T extends Token> T newToken(Class<T> tokenClass,
  byte[] identifier, String kind, byte[] password, String service) {
 T token = recordFactory.newRecordInstance(tokenClass);
 token.setIdentifier(ByteBuffer.wrap(identifier));
 token.setKind(kind);
 token.setPassword(ByteBuffer.wrap(password));
 token.setService(service);
 return token;
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-tests

private ContainerTokenIdentifier getContainerTokenIdentifierFromToken(
  Token containerToken) throws IOException {
 ContainerTokenIdentifier containerTokenIdentifier;
 containerTokenIdentifier = new ContainerTokenIdentifier();
 byte[] tokenIdentifierContent = containerToken.getIdentifier().array();
 DataInputBuffer dib = new DataInputBuffer();
 dib.reset(tokenIdentifierContent, tokenIdentifierContent.length);
 containerTokenIdentifier.readFields(dib);
 return containerTokenIdentifier;
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-nodemanager

protected ContainerTokenIdentifier verifyAndGetContainerTokenIdentifier(
  org.apache.hadoop.yarn.api.records.Token token,
  ContainerTokenIdentifier containerTokenIdentifier) throws YarnException,
  InvalidToken {
 byte[] password =
   context.getContainerTokenSecretManager().retrievePassword(
     containerTokenIdentifier);
 byte[] tokenPass = token.getPassword().array();
 if (password == null || tokenPass == null
   || !Arrays.equals(password, tokenPass)) {
  throw new InvalidToken(
   "Invalid container token used for starting container on : "
     + context.getNodeId().toString());
 }
 return containerTokenIdentifier;
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-common

public static ContainerTokenIdentifier newContainerTokenIdentifier(
  Token containerToken) throws IOException {
 org.apache.hadoop.security.token.Token<ContainerTokenIdentifier> token =
   new org.apache.hadoop.security.token.Token<ContainerTokenIdentifier>(
     containerToken.getIdentifier()
       .array(), containerToken.getPassword().array(), new Text(
       containerToken.getKind()),
     new Text(containerToken.getService()));
 return token.decodeIdentifier();
}

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-common

private static org.apache.hadoop.yarn.api.records.Token
   convertToProtoToken(Token<?> token) {
  return org.apache.hadoop.yarn.api.records.Token.newInstance(
   token.getIdentifier(), token.getKind().toString(), token.getPassword(),
   token.getService().toString());
 }
}

相关文章