hadoop ConverterUtils 源码

  • 2022-10-20
  • 浏览 (233)

haddop ConverterUtils 代码

文件路径:/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ConverterUtils.java

/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.hadoop.yarn.util;

import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.security.SecurityUtil;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ContainerId;
import org.apache.hadoop.yarn.api.records.NodeId;
import org.apache.hadoop.yarn.api.records.URL;
import org.apache.hadoop.yarn.factories.RecordFactory;


/**
 * This class contains a set of utilities which help converting data structures
 * from/to 'serializableFormat' to/from hadoop/nativejava data structures.
 *
 */
@Public
public class ConverterUtils {

  public static final String APPLICATION_PREFIX = "application";
  public static final String CONTAINER_PREFIX = "container";
  public static final String APPLICATION_ATTEMPT_PREFIX = "appattempt";

  /**
   * return a hadoop path from a given url
   * This method is deprecated, use {@link URL#toPath()} instead.
   * 
   * @param url
   *          url to convert
   * @return path from {@link URL}
   * @throws URISyntaxException
   */
  @Public
  @Deprecated
  public static Path getPathFromYarnURL(URL url) throws URISyntaxException {
    return url.toPath();
  }

  /*
   * This method is deprecated, use {@link URL#fromPath(Path)} instead.
   */
  @Public
  @Deprecated
  public static URL getYarnUrlFromPath(Path path) {
    return URL.fromPath(path);
  }
  
  /*
   * This method is deprecated, use {@link URL#fromURI(URI)} instead.
   */
  @Public
  @Deprecated
  public static URL getYarnUrlFromURI(URI uri) {
    return URL.fromURI(uri);
  }

  /*
   * This method is deprecated, use {@link ApplicationId#toString()} instead.
   */
  @Public
  @Deprecated
  public static String toString(ApplicationId appId) {
    return appId.toString();
  }

  /*
   * This method is deprecated, use {@link ApplicationId#fromString(String)}
   * instead.
   */
  @Public
  @Deprecated
  public static ApplicationId toApplicationId(RecordFactory recordFactory,
      String applicationIdStr) {
    return ApplicationId.fromString(applicationIdStr);
  }

  /*
   * This method is deprecated, use {@link ContainerId#toString()} instead.
   */
  @Public
  @Deprecated
  public static String toString(ContainerId cId) {
    return cId == null ? null : cId.toString();
  }

  @Private
  @InterfaceStability.Unstable
  public static NodeId toNodeIdWithDefaultPort(String nodeIdStr) {
    if (nodeIdStr.indexOf(":") < 0) {
      return NodeId.fromString(nodeIdStr + ":0");
    }
    return NodeId.fromString(nodeIdStr);
  }

  /*
   * This method is deprecated, use {@link NodeId#fromString(String)} instead.
   */
  @Public
  @Deprecated
  public static NodeId toNodeId(String nodeIdStr) {
    return NodeId.fromString(nodeIdStr);
  }

  /*
   * This method is deprecated, use {@link ContainerId#fromString(String)}
   * instead.
   */
  @Public
  @Deprecated
  public static ContainerId toContainerId(String containerIdStr) {
    return ContainerId.fromString(containerIdStr);
  }
  
  /*
   * This method is deprecated, use {@link ApplicationAttemptId#toString()}
   * instead.
   */
  @Public
  @Deprecated
  public static ApplicationAttemptId toApplicationAttemptId(
      String applicationAttemptIdStr) {
    return ApplicationAttemptId.fromString(applicationAttemptIdStr);
  }
  
  /*
   * This method is deprecated, use {@link ApplicationId#fromString(String)}
   * instead.
   */
  @Public
  @Deprecated
  public static ApplicationId toApplicationId(
      String appIdStr) {
    return ApplicationId.fromString(appIdStr);
  }

  /**
   * Convert a protobuf token into a rpc token and set its service. Supposed
   * to be used for tokens other than RMDelegationToken. For
   * RMDelegationToken, use
   * {@link #convertFromYarn(org.apache.hadoop.yarn.api.records.Token,
   * org.apache.hadoop.io.Text)} instead.
   *
   * @param protoToken the yarn token
   * @param serviceAddr the connect address for the service
   * @return rpc token
   */
  public static <T extends TokenIdentifier> Token<T> convertFromYarn(
      org.apache.hadoop.yarn.api.records.Token protoToken,
      InetSocketAddress serviceAddr) {
    Token<T> token = new Token<T>(protoToken.getIdentifier().array(),
                                  protoToken.getPassword().array(),
                                  new Text(protoToken.getKind()),
                                  new Text(protoToken.getService()));
    if (serviceAddr != null) {
      SecurityUtil.setTokenService(token, serviceAddr);
    }
    return token;
  }

  /**
   * Convert a protobuf token into a rpc token and set its service.
   *
   * @param protoToken the yarn token
   * @param service the service for the token
   */
  public static <T extends TokenIdentifier> Token<T> convertFromYarn(
      org.apache.hadoop.yarn.api.records.Token protoToken,
      Text service) {
    Token<T> token = new Token<T>(protoToken.getIdentifier().array(),
        protoToken.getPassword().array(),
        new Text(protoToken.getKind()),
        new Text(protoToken.getService()));

    if (service != null) {
      token.setService(service);
    }
    return token;
  }
}

相关信息

hadoop 源码目录

相关文章

hadoop AbstractLivelinessMonitor 源码

hadoop AdHocLogDumper 源码

hadoop ApplicationClassLoader 源码

hadoop Apps 源码

hadoop AsyncCallback 源码

hadoop AuxiliaryServiceHelper 源码

hadoop BoundedAppender 源码

hadoop Clock 源码

hadoop DockerClientConfigHandler 源码

hadoop FSDownload 源码

0  赞