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


Java INodeDirectory.getId方法代码示例

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


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

示例1: getSnapshottableDirListing

import org.apache.hadoop.hdfs.server.namenode.INodeDirectory; //导入方法依赖的package包/类
/**
 * List all the snapshottable directories that are owned by the current user.
 * @param userName Current user name.
 * @return Snapshottable directories that are owned by the current user,
 *         represented as an array of {@link SnapshottableDirectoryStatus}. If
 *         {@code userName} is null, return all the snapshottable dirs.
 */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing(
    String userName) {
  if (snapshottables.isEmpty()) {
    return null;
  }
  
  List<SnapshottableDirectoryStatus> statusList = 
      new ArrayList<SnapshottableDirectoryStatus>();
  for (INodeDirectory dir : snapshottables.values()) {
    if (userName == null || userName.equals(dir.getUserName())) {
      SnapshottableDirectoryStatus status = new SnapshottableDirectoryStatus(
          dir.getModificationTime(), dir.getAccessTime(),
          dir.getFsPermission(), dir.getUserName(), dir.getGroupName(),
          dir.getLocalNameBytes(), dir.getId(), 
          dir.getChildrenNum(Snapshot.CURRENT_STATE_ID),
          dir.getDirectorySnapshottableFeature().getNumSnapshots(),
          dir.getDirectorySnapshottableFeature().getSnapshotQuota(),
          dir.getParent() == null ? DFSUtil.EMPTY_BYTES :
              DFSUtil.string2Bytes(dir.getParent().getFullPathName()));
      statusList.add(status);
    }
  }
  Collections.sort(statusList, SnapshottableDirectoryStatus.COMPARATOR);
  return statusList.toArray(
      new SnapshottableDirectoryStatus[statusList.size()]);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:34,代码来源:SnapshotManager.java

示例2: testRenameAndUpdateSnapshottableDirs

import org.apache.hadoop.hdfs.server.namenode.INodeDirectory; //导入方法依赖的package包/类
/**
 * Test rename where the src/dst directories are both snapshottable 
 * directories without snapshots. In such case we need to update the 
 * snapshottable dir list in SnapshotManager.
 */
@Test (timeout=60000)
public void testRenameAndUpdateSnapshottableDirs() throws Exception {
  final Path sdir1 = new Path("/dir1");
  final Path sdir2 = new Path("/dir2");
  final Path foo = new Path(sdir1, "foo");
  final Path bar = new Path(sdir2, "bar");
  hdfs.mkdirs(foo);
  hdfs.mkdirs(bar);
  
  hdfs.allowSnapshot(foo);
  SnapshotTestHelper.createSnapshot(hdfs, bar, snap1);
  assertEquals(2, fsn.getSnapshottableDirListing().length);
  
  INodeDirectory fooNode = fsdir.getINode4Write(foo.toString()).asDirectory();
  long fooId = fooNode.getId();
  
  try {
    hdfs.rename(foo, bar, Rename.OVERWRITE);
    fail("Expect exception since " + bar
        + " is snapshottable and already has snapshots");
  } catch (IOException e) {
    GenericTestUtils.assertExceptionContains(bar.toString()
        + " is snapshottable and already has snapshots", e);
  }
  
  hdfs.deleteSnapshot(bar, snap1);
  hdfs.rename(foo, bar, Rename.OVERWRITE);
  SnapshottableDirectoryStatus[] dirs = fsn.getSnapshottableDirListing();
  assertEquals(1, dirs.length);
  assertEquals(bar, dirs[0].getFullPath());
  assertEquals(fooId, dirs[0].getDirStatus().getFileId());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:38,代码来源:TestRenameWithSnapshots.java

示例3: getSnapshottableDirListing

import org.apache.hadoop.hdfs.server.namenode.INodeDirectory; //导入方法依赖的package包/类
/**
 * List all the snapshottable directories that are owned by the current user.
 * @param userName Current user name.
 * @return Snapshottable directories that are owned by the current user,
 *         represented as an array of {@link SnapshottableDirectoryStatus}. If
 *         {@code userName} is null, return all the snapshottable dirs.
 */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing(
    String userName) {
  if (snapshottables.isEmpty()) {
    return null;
  }
  
  List<SnapshottableDirectoryStatus> statusList = 
      new ArrayList<SnapshottableDirectoryStatus>();
  for (INodeDirectory dir : snapshottables.values()) {
    if (userName == null || userName.equals(dir.getUserName())) {
      SnapshottableDirectoryStatus status = new SnapshottableDirectoryStatus(
          dir.getModificationTime(), dir.getAccessTime(),
          dir.getFsPermission(), dir.getUserName(), dir.getGroupName(),
          dir.getLocalNameBytes(), dir.getId(), 
          dir.getChildrenNum(Snapshot.CURRENT_STATE_ID),
          dir.getDirectorySnapshottableFeature().getNumSnapshots(),
          dir.getDirectorySnapshottableFeature().getSnapshotQuota(),
          dir.getParent() == null ? DFSUtilClient.EMPTY_BYTES :
              DFSUtil.string2Bytes(dir.getParent().getFullPathName()));
      statusList.add(status);
    }
  }
  Collections.sort(statusList, SnapshottableDirectoryStatus.COMPARATOR);
  return statusList.toArray(
      new SnapshottableDirectoryStatus[statusList.size()]);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:34,代码来源:SnapshotManager.java


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