hadoop LocalResource 源码

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

haddop LocalResource 代码

文件路径:/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/LocalResource.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.api.records;

import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Stable;
import org.apache.hadoop.classification.InterfaceStability.Unstable;
import org.apache.hadoop.yarn.api.ContainerManagementProtocol;
import org.apache.hadoop.yarn.util.Records;

/**
 * <p><code>LocalResource</code> represents a local resource required to
 * run a container.</p>
 * 
 * <p>The <code>NodeManager</code> is responsible for localizing the resource 
 * prior to launching the container.</p>
 * 
 * <p>Applications can specify {@link LocalResourceType} and 
 * {@link LocalResourceVisibility}.</p>
 * 
 * @see LocalResourceType
 * @see LocalResourceVisibility
 * @see ContainerLaunchContext
 * @see ApplicationSubmissionContext
 * @see ContainerManagementProtocol#startContainers(org.apache.hadoop.yarn.api.protocolrecords.StartContainersRequest)
 */
@Public
@Stable
public abstract class LocalResource {

  @Public
  @Stable
  public static LocalResource newInstance(URL url, LocalResourceType type,
      LocalResourceVisibility visibility, long size, long timestamp,
      String pattern) {
    return newInstance(url, type, visibility, size, timestamp, pattern, false);
  }

  @Public
  @Unstable
  public static LocalResource newInstance(URL url, LocalResourceType type,
      LocalResourceVisibility visibility, long size, long timestamp,
      String pattern, boolean shouldBeUploadedToSharedCache) {
    LocalResource resource = Records.newRecord(LocalResource.class);
    resource.setResource(url);
    resource.setType(type);
    resource.setVisibility(visibility);
    resource.setSize(size);
    resource.setTimestamp(timestamp);
    resource.setPattern(pattern);
    resource.setShouldBeUploadedToSharedCache(shouldBeUploadedToSharedCache);
    return resource;
  }

  @Public
  @Stable
  public static LocalResource newInstance(URL url, LocalResourceType type,
      LocalResourceVisibility visibility, long size, long timestamp) {
    return newInstance(url, type, visibility, size, timestamp, null);
  }

  @Public
  @Unstable
  public static LocalResource newInstance(URL url, LocalResourceType type,
      LocalResourceVisibility visibility, long size, long timestamp,
      boolean shouldBeUploadedToSharedCache) {
    return newInstance(url, type, visibility, size, timestamp, null,
        shouldBeUploadedToSharedCache);
  }

  /**
   * Get the <em>location</em> of the resource to be localized.
   * @return <em>location</em> of the resource to be localized
   */
  @Public
  @Stable
  public abstract URL getResource();
  
  /**
   * Set <em>location</em> of the resource to be localized.
   * @param resource <em>location</em> of the resource to be localized
   */
  @Public
  @Stable
  public abstract void setResource(URL resource);
  
  /**
   * Get the <em>size</em> of the resource to be localized.
   * @return <em>size</em> of the resource to be localized
   */
  @Public
  @Stable
  public abstract long getSize();
  
  /**
   * Set the <em>size</em> of the resource to be localized.
   * @param size <em>size</em> of the resource to be localized
   */
  @Public
  @Stable
  public abstract void setSize(long size);
  
  /**
   * Get the original <em>timestamp</em> of the resource to be localized, used
   * for verification.
   * @return <em>timestamp</em> of the resource to be localized
   */
  @Public
  @Stable
  public abstract long getTimestamp();
  
  /**
   * Set the <em>timestamp</em> of the resource to be localized, used
   * for verification.
   * @param timestamp <em>timestamp</em> of the resource to be localized
   */
  @Public
  @Stable
  public abstract void setTimestamp(long timestamp);
  
  /**
   * Get the <code>LocalResourceType</code> of the resource to be localized.
   * @return <code>LocalResourceType</code> of the resource to be localized
   */
  @Public
  @Stable
  public abstract LocalResourceType getType();
  
  /**
   * Set the <code>LocalResourceType</code> of the resource to be localized.
   * @param type <code>LocalResourceType</code> of the resource to be localized
   */
  @Public
  @Stable
  public abstract void setType(LocalResourceType type);
  
  /**
   * Get the <code>LocalResourceVisibility</code> of the resource to be 
   * localized.
   * @return <code>LocalResourceVisibility</code> of the resource to be 
   *         localized
   */
  @Public
  @Stable
  public abstract LocalResourceVisibility getVisibility();
  
  /**
   * Set the <code>LocalResourceVisibility</code> of the resource to be 
   * localized.
   * @param visibility <code>LocalResourceVisibility</code> of the resource to be 
   *                   localized
   */
  @Public
  @Stable
  public abstract void setVisibility(LocalResourceVisibility visibility);
  
  /**
   * Get the <em>pattern</em> that should be used to extract entries from the
   * archive (only used when type is <code>PATTERN</code>).
   * @return <em>pattern</em> that should be used to extract entries from the 
   * archive. 
   */
  @Public
  @Stable
  public abstract String getPattern();
  
  /**
   * Set the <em>pattern</em> that should be used to extract entries from the
   * archive (only used when type is <code>PATTERN</code>).
   * @param pattern <em>pattern</em> that should be used to extract entries 
   * from the archive.
   */
  @Public
  @Stable
  public abstract void setPattern(String pattern);

  /**
   * NM uses it to decide whether if it is necessary to upload the resource to
   * the shared cache
   * @return true if it is necessary to upload the resource
   *                 to the shared cache,
   *         false otherwise
   */
  @Public
  @Unstable
  public abstract boolean getShouldBeUploadedToSharedCache();

  /**
   * Inform NM whether upload to SCM is needed.
   *
   * @param shouldBeUploadedToSharedCache <em>shouldBeUploadedToSharedCache</em>
   *          of this request
   */
  @Public
  @Unstable
  public abstract void setShouldBeUploadedToSharedCache(
      boolean shouldBeUploadedToSharedCache);
}

相关信息

hadoop 源码目录

相关文章

hadoop AMCommand 源码

hadoop AllocationTagNamespaceType 源码

hadoop ApplicationAccessType 源码

hadoop ApplicationAttemptId 源码

hadoop ApplicationAttemptReport 源码

hadoop ApplicationId 源码

hadoop ApplicationReport 源码

hadoop ApplicationResourceUsageReport 源码

hadoop ApplicationSubmissionContext 源码

hadoop ApplicationTimeout 源码

0  赞