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


Java SwiftProtocolConstants.TOPOLOGY_PATH属性代码示例

本文整理汇总了Java中org.apache.hadoop.fs.swift.http.SwiftProtocolConstants.TOPOLOGY_PATH属性的典型用法代码示例。如果您正苦于以下问题:Java SwiftProtocolConstants.TOPOLOGY_PATH属性的具体用法?Java SwiftProtocolConstants.TOPOLOGY_PATH怎么用?Java SwiftProtocolConstants.TOPOLOGY_PATH使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在org.apache.hadoop.fs.swift.http.SwiftProtocolConstants的用法示例。


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

示例1: getFileBlockLocations

/**
 * Return an array containing hostnames, offset and size of
 * portions of the given file.  For a nonexistent
 * file or regions, null will be returned.
 * <p>
 * This call is most helpful with DFS, where it returns
 * hostnames of machines that contain the given file.
 * <p>
 * The FileSystem will simply return an elt containing 'localhost'.
 */
@Override
public BlockLocation[] getFileBlockLocations(FileStatus file,
                                             long start,
                                             long len) throws IOException {
  //argument checks
  if (file == null) {
    return null;
  }

  if (start < 0 || len < 0) {
    throw new IllegalArgumentException("Negative start or len parameter" +
                                       " to getFileBlockLocations");
  }
  if (file.getLen() <= start) {
    return new BlockLocation[0];
  }

  // Check if requested file in Swift is more than 5Gb. In this case
  // each block has its own location -which may be determinable
  // from the Swift client API, depending on the remote server
  final FileStatus[] listOfFileBlocks = store.listSubPaths(file.getPath(),
                                                           false,
                                                           true);
  List<URI> locations = new ArrayList<URI>();
  if (listOfFileBlocks.length > 1) {
    for (FileStatus fileStatus : listOfFileBlocks) {
      if (SwiftObjectPath.fromPath(uri, fileStatus.getPath())
              .equals(SwiftObjectPath.fromPath(uri, file.getPath()))) {
        continue;
      }
      locations.addAll(store.getObjectLocation(fileStatus.getPath()));
    }
  } else {
    locations = store.getObjectLocation(file.getPath());
  }

  if (locations.isEmpty()) {
    LOG.debug("No locations returned for " + file.getPath());
    //no locations were returned for the object
    //fall back to the superclass

    String[] name = {SwiftProtocolConstants.BLOCK_LOCATION};
    String[] host = { "localhost" };
    String[] topology={SwiftProtocolConstants.TOPOLOGY_PATH};
    return new BlockLocation[] {
      new BlockLocation(name, host, topology,0, file.getLen())
    };
  }

  final String[] names = new String[locations.size()];
  final String[] hosts = new String[locations.size()];
  int i = 0;
  for (URI location : locations) {
    hosts[i] = location.getHost();
    names[i] = location.getAuthority();
    i++;
  }
  return new BlockLocation[]{
          new BlockLocation(names, hosts, 0, file.getLen())
  };
}
 
开发者ID:naver,项目名称:hadoop,代码行数:71,代码来源:SwiftNativeFileSystem.java

示例2: getFileBlockLocations

/**
 * Return an array containing hostnames, offset and size of
 * portions of the given file.  For a nonexistent
 * file or regions, null will be returned.
 * <p/>
 * This call is most helpful with DFS, where it returns
 * hostnames of machines that contain the given file.
 * <p/>
 * The FileSystem will simply return an elt containing 'localhost'.
 */
@Override
public BlockLocation[] getFileBlockLocations(FileStatus file,
                                             long start,
                                             long len) throws IOException {
  //argument checks
  if (file == null) {
    return null;
  }

  if (start < 0 || len < 0) {
    throw new IllegalArgumentException("Negative start or len parameter" +
                                       " to getFileBlockLocations");
  }
  if (file.getLen() <= start) {
    return new BlockLocation[0];
  }

  // Check if requested file in Swift is more than 5Gb. In this case
  // each block has its own location -which may be determinable
  // from the Swift client API, depending on the remote server
  final FileStatus[] listOfFileBlocks = store.listSubPaths(file.getPath(),
                                                           false,
                                                           true);
  List<URI> locations = new ArrayList<URI>();
  if (listOfFileBlocks.length > 1) {
    for (FileStatus fileStatus : listOfFileBlocks) {
      if (SwiftObjectPath.fromPath(uri, fileStatus.getPath())
              .equals(SwiftObjectPath.fromPath(uri, file.getPath()))) {
        continue;
      }
      locations.addAll(store.getObjectLocation(fileStatus.getPath()));
    }
  } else {
    locations = store.getObjectLocation(file.getPath());
  }

  if (locations.isEmpty()) {
    LOG.debug("No locations returned for " + file.getPath());
    //no locations were returned for the object
    //fall back to the superclass

    String[] name = {SwiftProtocolConstants.BLOCK_LOCATION};
    String[] host = { "localhost" };
    String[] topology={SwiftProtocolConstants.TOPOLOGY_PATH};
    return new BlockLocation[] {
      new BlockLocation(name, host, topology,0, file.getLen())
    };
  }

  final String[] names = new String[locations.size()];
  final String[] hosts = new String[locations.size()];
  int i = 0;
  for (URI location : locations) {
    hosts[i] = location.getHost();
    names[i] = location.getAuthority();
    i++;
  }
  return new BlockLocation[]{
          new BlockLocation(names, hosts, 0, file.getLen())
  };
}
 
开发者ID:Nextzero,项目名称:hadoop-2.6.0-cdh5.4.3,代码行数:71,代码来源:SwiftNativeFileSystem.java

示例3: getFileBlockLocations

/**
 * Return an array containing hostnames, offset and size of
 * portions of the given file.  For a nonexistent
 * file or regions, null will be returned.
 * <p/>
 * This call is most helpful with DFS, where it returns
 * hostnames of machines that contain the given file.
 * <p/>
 * The FileSystem will simply return an elt containing 'localhost'.
 */
@Override
public BlockLocation[] getFileBlockLocations(FileStatus file,
                                             long start,
                                             long len) throws IOException {
  //argument checks
  if (file == null) {
    return null;
  }
  if (file.isDir()) {
    return new BlockLocation[0];
  }

  if (start < 0 || len < 0) {
    throw new IllegalArgumentException("Negative start or len parameter" +
                                       " to getFileBlockLocations");
  }
  if (file.getLen() <= start) {
    return new BlockLocation[0];
  }

  // Check if requested file in Swift is more than 5Gb. In this case
  // each block has its own location -which may be determinable
  // from the Swift client API, depending on the remote server
  final FileStatus[] listOfFileBlocks;
  if (file instanceof SwiftFileStatus && ((SwiftFileStatus)file).isDLO()) {
    listOfFileBlocks = store.listSegments(file, true);
  } else {
    listOfFileBlocks = null;
  }

  List<URI> locations = new ArrayList<URI>();
  if (listOfFileBlocks != null && listOfFileBlocks.length > 1) {
    for (FileStatus fileStatus : listOfFileBlocks) {
      if (SwiftObjectPath.fromPath(uri, fileStatus.getPath())
              .equals(SwiftObjectPath.fromPath(uri, file.getPath()))) {
        continue;
      }
      locations.addAll(store.getObjectLocation(fileStatus.getPath()));
    }
  } else {
    locations = store.getObjectLocation(file.getPath());
  }

  if (locations.isEmpty()) {
    LOG.debug("No locations returned for " + file.getPath());
    //no locations were returned for the object
    //fall back to the superclass

    String[] name = {SwiftProtocolConstants.BLOCK_LOCATION};
    String[] host = { "localhost" };
    String[] topology={SwiftProtocolConstants.TOPOLOGY_PATH};
    return new BlockLocation[] {
      new BlockLocation(name, host, topology,0, file.getLen())
    };
  }

  final String[] names = new String[locations.size()];
  final String[] hosts = new String[locations.size()];
  int i = 0;
  for (URI location : locations) {
    hosts[i] = location.getHost();
    names[i] = location.getAuthority();
    i++;
  }
  return new BlockLocation[]{
          new BlockLocation(names, hosts, 0, file.getLen())
  };
}
 
开发者ID:openstack,项目名称:sahara-extra,代码行数:78,代码来源:SwiftNativeFileSystem.java


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