当前位置: 首页>>代码示例>>Java>>正文


Java AMRMTokenIdentifier类代码示例

本文整理汇总了Java中org.apache.hadoop.yarn.security.AMRMTokenIdentifier的典型用法代码示例。如果您正苦于以下问题:Java AMRMTokenIdentifier类的具体用法?Java AMRMTokenIdentifier怎么用?Java AMRMTokenIdentifier使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


AMRMTokenIdentifier类属于org.apache.hadoop.yarn.security包,在下文中一共展示了AMRMTokenIdentifier类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createAndGetAMRMToken

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
public Token<AMRMTokenIdentifier> createAndGetAMRMToken(
    ApplicationAttemptId appAttemptId) {
  this.writeLock.lock();
  try {
    LOG.info("Create AMRMToken for ApplicationAttempt: " + appAttemptId);
    AMRMTokenIdentifier identifier =
        new AMRMTokenIdentifier(appAttemptId, getMasterKey().getMasterKey()
          .getKeyId());
    byte[] password = this.createPassword(identifier);
    appAttemptSet.add(appAttemptId);
    return new Token<AMRMTokenIdentifier>(identifier.getBytes(), password,
      identifier.getKind(), new Text());
  } finally {
    this.writeLock.unlock();
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:17,代码来源:AMRMTokenSecretManager.java

示例2: sendAMLaunched

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
public MockAM sendAMLaunched(ApplicationAttemptId appAttemptId)
    throws Exception {
  MockAM am = new MockAM(getRMContext(), masterService, appAttemptId);
  am.waitForState(RMAppAttemptState.ALLOCATED);
  //create and set AMRMToken
  Token<AMRMTokenIdentifier> amrmToken =
      this.rmContext.getAMRMTokenSecretManager().createAndGetAMRMToken(
        appAttemptId);
  ((RMAppAttemptImpl) this.rmContext.getRMApps()
    .get(appAttemptId.getApplicationId()).getRMAppAttempt(appAttemptId))
    .setAMRMToken(amrmToken);
  getRMContext()
      .getDispatcher()
      .getEventHandler()
      .handle(
          new RMAppAttemptEvent(appAttemptId, RMAppAttemptEventType.LAUNCHED));
  return am;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:19,代码来源:MockRM.java

示例3: unregisterAppAttempt

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
public void unregisterAppAttempt(final FinishApplicationMasterRequest req,
    boolean waitForStateRunning) throws Exception {
  if (waitForStateRunning) {
    waitForState(RMAppAttemptState.RUNNING);
  }
  if (ugi == null) {
    ugi =  UserGroupInformation.createRemoteUser(attemptId.toString());
    Token<AMRMTokenIdentifier> token =
        context.getRMApps()
            .get(attemptId.getApplicationId())
            .getRMAppAttempt(attemptId).getAMRMToken();
    ugi.addTokenIdentifier(token.decodeIdentifier());
  }
  try {
    ugi.doAs(new PrivilegedExceptionAction<Object>() {
      @Override
      public Object run() throws Exception {
        amRMProtocol.finishApplicationMaster(req);
        return null;
      }
    });
  } catch (UndeclaredThrowableException e) {
    throw (Exception) e.getCause();
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:26,代码来源:MockAM.java

示例4: storeAttempt

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
protected ContainerId storeAttempt(RMStateStore store,
    ApplicationAttemptId attemptId,
    String containerIdStr, Token<AMRMTokenIdentifier> appToken,
    SecretKey clientTokenMasterKey, TestDispatcher dispatcher)
    throws Exception {

  RMAppAttemptMetrics mockRmAppAttemptMetrics = 
      mock(RMAppAttemptMetrics.class);
  Container container = new ContainerPBImpl();
  container.setId(ConverterUtils.toContainerId(containerIdStr));
  RMAppAttempt mockAttempt = mock(RMAppAttempt.class);
  when(mockAttempt.getAppAttemptId()).thenReturn(attemptId);
  when(mockAttempt.getMasterContainer()).thenReturn(container);
  when(mockAttempt.getAMRMToken()).thenReturn(appToken);
  when(mockAttempt.getClientTokenMasterKey())
      .thenReturn(clientTokenMasterKey);
  when(mockAttempt.getRMAppAttemptMetrics())
      .thenReturn(mockRmAppAttemptMetrics);
  when(mockRmAppAttemptMetrics.getAggregateAppResourceUsage())
      .thenReturn(new AggregateAppResourceUsage(0, 0, 0));
  dispatcher.attemptId = attemptId;
  store.storeNewApplicationAttempt(mockAttempt);
  waitNotify(dispatcher);
  return container.getId();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:26,代码来源:RMStateStoreTestBase.java

示例5: initialize

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
@Before
public void initialize() throws Exception {
  startHACluster(0, false, false, true);
  attemptId = this.cluster.createFakeApplicationAttemptId();
  amClient = ClientRMProxy
      .createRMProxy(this.conf, ApplicationMasterProtocol.class);

  Token<AMRMTokenIdentifier> appToken =
      this.cluster.getResourceManager().getRMContext()
        .getAMRMTokenSecretManager().createAndGetAMRMToken(attemptId);
  appToken.setService(ClientRMProxy.getAMRMTokenService(conf));
  UserGroupInformation.setLoginUser(UserGroupInformation
      .createRemoteUser(UserGroupInformation.getCurrentUser()
          .getUserName()));
  UserGroupInformation.getCurrentUser().addToken(appToken);
  syncToken(appToken);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:18,代码来源:TestApplicationMasterServiceProtocolOnHA.java

示例6: getInterceptorChain

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
private RequestInterceptorChainWrapper getInterceptorChain(
    AMRMTokenIdentifier tokenIdentifier) throws YarnException {
  ApplicationAttemptId appAttemptId =
      tokenIdentifier.getApplicationAttemptId();

  synchronized (this.applPipelineMap) {
    if (!this.applPipelineMap.containsKey(appAttemptId
        .getApplicationId())) {
      throw new YarnException(
          "The AM request processing pipeline is not initialized for app: "
              + appAttemptId.getApplicationId().toString());
    }

    return this.applPipelineMap.get(appAttemptId.getApplicationId());
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:17,代码来源:AMRMProxyService.java

示例7: createAndGetAMRMToken

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
public Token<AMRMTokenIdentifier> createAndGetAMRMToken(
    ApplicationAttemptId appAttemptId) {
  this.writeLock.lock();
  try {
    LOG.info("Create AMRMToken for ApplicationAttempt: " + appAttemptId);
    AMRMTokenIdentifier identifier =
        new AMRMTokenIdentifier(appAttemptId, getMasterKey()
            .getMasterKey().getKeyId());
    byte[] password = this.createPassword(identifier);
    appAttemptSet.add(appAttemptId);
    return new Token<AMRMTokenIdentifier>(identifier.getBytes(),
        password, identifier.getKind(), new Text());
  } finally {
    this.writeLock.unlock();
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:17,代码来源:AMRMProxyTokenSecretManager.java

示例8: storeAttempt

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
protected ContainerId storeAttempt(RMStateStore store,
    ApplicationAttemptId attemptId,
    String containerIdStr, Token<AMRMTokenIdentifier> appToken,
    SecretKey clientTokenMasterKey, TestDispatcher dispatcher)
    throws Exception {

  RMAppAttemptMetrics mockRmAppAttemptMetrics = 
      mock(RMAppAttemptMetrics.class);
  Container container = new ContainerPBImpl();
  container.setId(ConverterUtils.toContainerId(containerIdStr));
  RMAppAttempt mockAttempt = mock(RMAppAttempt.class);
  when(mockAttempt.getAppAttemptId()).thenReturn(attemptId);
  when(mockAttempt.getMasterContainer()).thenReturn(container);
  when(mockAttempt.getAMRMToken()).thenReturn(appToken);
  when(mockAttempt.getClientTokenMasterKey())
      .thenReturn(clientTokenMasterKey);
  when(mockAttempt.getRMAppAttemptMetrics())
      .thenReturn(mockRmAppAttemptMetrics);
  when(mockRmAppAttemptMetrics.getAggregateAppResourceUsage())
      .thenReturn(new AggregateAppResourceUsage(0, 0));
  dispatcher.attemptId = attemptId;
  store.storeNewApplicationAttempt(mockAttempt);
  waitNotify(dispatcher);
  return container.getId();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:26,代码来源:RMStateStoreTestBase.java

示例9: initialize

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
@Before
public void initialize() throws Exception {
  startHACluster(0, false, false, true);
  attemptId = this.cluster.createFakeApplicationAttemptId();

  Token<AMRMTokenIdentifier> appToken =
      this.cluster.getResourceManager().getRMContext()
        .getAMRMTokenSecretManager().createAndGetAMRMToken(attemptId);
  appToken.setService(ClientRMProxy.getAMRMTokenService(this.conf));
  UserGroupInformation.setLoginUser(UserGroupInformation
      .createRemoteUser(UserGroupInformation.getCurrentUser().getUserName()));
  UserGroupInformation.getCurrentUser().addToken(appToken);
  syncToken(appToken);

  amClient = ClientRMProxy
      .createRMProxy(this.conf, ApplicationMasterProtocol.class);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:18,代码来源:TestApplicationMasterServiceProtocolOnHA.java

示例10: getTokens

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
public static ByteBuffer getTokens(UserGroupInformation ugi, Token<StramDelegationTokenIdentifier> delegationToken)
{
  try {
    Collection<Token<? extends TokenIdentifier>> tokens = ugi.getCredentials().getAllTokens();
    Credentials credentials = new Credentials();
    for (Token<? extends TokenIdentifier> token : tokens) {
      if (!token.getKind().equals(AMRMTokenIdentifier.KIND_NAME)) {
        credentials.addToken(token.getService(), token);
        LOG.debug("Passing container token {}", token);
      }
    }
    credentials.addToken(delegationToken.getService(), delegationToken);
    DataOutputBuffer dataOutput = new DataOutputBuffer();
    credentials.writeTokenStorageToStream(dataOutput);
    byte[] tokenBytes = dataOutput.getData();
    ByteBuffer cTokenBuf = ByteBuffer.wrap(tokenBytes);
    return cTokenBuf.duplicate();
  } catch (IOException e) {
    throw new RuntimeException("Error generating delegation token", e);
  }
}
 
开发者ID:apache,项目名称:apex-core,代码行数:22,代码来源:LaunchContainerRunnable.java

示例11: allocate

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
public AllocateResponse allocate(AllocateRequest allocateRequest)
          throws Exception {
  final AllocateRequest req = allocateRequest;
  req.setResponseId(++responseId);

  UserGroupInformation ugi =
      UserGroupInformation.createRemoteUser(attemptId.toString());
  Token<AMRMTokenIdentifier> token =
      context.getRMApps().get(attemptId.getApplicationId())
          .getRMAppAttempt(attemptId).getAMRMToken();
  ugi.addTokenIdentifier(token.decodeIdentifier());
  try {
    return ugi.doAs(new PrivilegedExceptionAction<AllocateResponse>() {
      @Override
      public AllocateResponse run() throws Exception {
        return amRMProtocol.allocate(req);
      }
    });
  } catch (UndeclaredThrowableException e) {
    throw (Exception) e.getCause();
  }
}
 
开发者ID:Nextzero,项目名称:hadoop-2.6.0-cdh5.4.3,代码行数:23,代码来源:MockAM.java

示例12: getSecurityTokens

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
private ByteBuffer getSecurityTokens() throws IOException {
  Credentials credentials = UserGroupInformation.getCurrentUser().getCredentials();
  Closer closer = Closer.create();
  try {
    DataOutputBuffer dataOutputBuffer = closer.register(new DataOutputBuffer());
    credentials.writeTokenStorageToStream(dataOutputBuffer);

    // Remove the AM->RM token so that containers cannot access it
    Iterator<Token<?>> tokenIterator = credentials.getAllTokens().iterator();
    while (tokenIterator.hasNext()) {
      Token<?> token = tokenIterator.next();
      if (token.getKind().equals(AMRMTokenIdentifier.KIND_NAME)) {
        tokenIterator.remove();
      }
    }

    return ByteBuffer.wrap(dataOutputBuffer.getData(), 0, dataOutputBuffer.getLength());
  } catch (Throwable t) {
    throw closer.rethrow(t);
  } finally {
    closer.close();
  }
}
 
开发者ID:Hanmourang,项目名称:Gobblin,代码行数:24,代码来源:YarnService.java

示例13: retrievePassword

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
/**
 * Retrieve the password for the given {@link AMRMTokenIdentifier}.
 * Used by RPC layer to validate a remote {@link AMRMTokenIdentifier}.
 */
@Override
public synchronized byte[] retrievePassword(
    AMRMTokenIdentifier identifier) throws InvalidToken {
  ApplicationAttemptId applicationAttemptId =
      identifier.getApplicationAttemptId();
  if (LOG.isDebugEnabled()) {
    LOG.debug("Trying to retrieve password for " + applicationAttemptId);
  }
  byte[] password = this.passwords.get(applicationAttemptId);
  if (password == null) {
    throw new InvalidToken("Password not found for ApplicationAttempt "
        + applicationAttemptId);
  }
  return password;
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:20,代码来源:AMRMTokenSecretManager.java

示例14: recoverAppAttemptTokens

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
private void recoverAppAttemptTokens(Credentials appAttemptTokens) {
  if (appAttemptTokens == null) {
    return;
  }
  if (UserGroupInformation.isSecurityEnabled()) {

    ClientToAMTokenSelector clientToAMTokenSelector =
        new ClientToAMTokenSelector();
    this.clientToAMToken =
        clientToAMTokenSelector.selectToken(new Text(),
          appAttemptTokens.getAllTokens());
  }

  // Only one AMRMToken is stored per-attempt, so this should be fine. Can't
  // use TokenSelector as service may change - think fail-over.
  this.amrmToken =
      (Token<AMRMTokenIdentifier>) appAttemptTokens
        .getToken(RMStateStore.AM_RM_TOKEN_SERVICE);

  // For now, no need to populate tokens back to AMRMTokenSecretManager,
  // because running attempts are rebooted. Later in work-preserve restart,
  // we'll create NEW->RUNNING transition in which the restored tokens will be
  // added to the secret manager
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:25,代码来源:RMAppAttemptImpl.java

示例15: allocate

import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; //导入依赖的package包/类
public AllocateResponse allocate(
    List<ResourceRequest> resourceRequest, List<ContainerId> releases)
    throws Exception {
  final AllocateRequest req =
      AllocateRequest.newInstance(++responseId, 0F, resourceRequest,
        releases, null);
  UserGroupInformation ugi =
      UserGroupInformation.createRemoteUser(attemptId.toString());
  Token<AMRMTokenIdentifier> token =
      context.getRMApps().get(attemptId.getApplicationId())
        .getRMAppAttempt(attemptId).getAMRMToken();
  ugi.addTokenIdentifier(token.decodeIdentifier());
  try {
    return ugi.doAs(new PrivilegedExceptionAction<AllocateResponse>() {
      @Override
      public AllocateResponse run() throws Exception {
        return amRMProtocol.allocate(req);
      }
    });
  } catch (UndeclaredThrowableException e) {
    throw (Exception) e.getCause();
  }
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:24,代码来源:MockAM.java


注:本文中的org.apache.hadoop.yarn.security.AMRMTokenIdentifier类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。