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


Java SnapshotManager类代码示例

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


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

示例1: renameSnapshot

import org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager; //导入依赖的package包/类
static void renameSnapshot(FSDirectory fsd, SnapshotManager snapshotManager,
    String path, String snapshotOldName, String snapshotNewName,
    boolean logRetryCache) throws IOException {
  final INodesInPath iip = fsd.getINodesInPath4Write(path);
  if (fsd.isPermissionEnabled()) {
    FSPermissionChecker pc = fsd.getPermissionChecker();
    fsd.checkOwner(pc, iip);
  }
  verifySnapshotName(fsd, snapshotNewName, path);
  fsd.writeLock();
  try {
    snapshotManager.renameSnapshot(iip, path, snapshotOldName,
        snapshotNewName);
  } finally {
    fsd.writeUnlock();
  }
  fsd.getEditLog().logRenameSnapshot(path, snapshotOldName,
      snapshotNewName, logRetryCache);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:20,代码来源:FSDirSnapshotOp.java

示例2: getSnapshotDiffReport

import org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager; //导入依赖的package包/类
static SnapshotDiffReport getSnapshotDiffReport(FSDirectory fsd,
    SnapshotManager snapshotManager, String path,
    String fromSnapshot, String toSnapshot) throws IOException {
  SnapshotDiffReport diffs;
  final FSPermissionChecker pc = fsd.getPermissionChecker();
  fsd.readLock();
  try {
    if (fsd.isPermissionEnabled()) {
      checkSubtreeReadPermission(fsd, pc, path, fromSnapshot);
      checkSubtreeReadPermission(fsd, pc, path, toSnapshot);
    }
    INodesInPath iip = fsd.getINodesInPath(path, true);
    diffs = snapshotManager.diff(iip, path, fromSnapshot, toSnapshot);
  } finally {
    fsd.readUnlock();
  }
  return diffs;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:19,代码来源:FSDirSnapshotOp.java

示例3: allowSnapshot

import org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager; //导入依赖的package包/类
/** Allow snapshot on a directory. */
static void allowSnapshot(FSDirectory fsd, SnapshotManager snapshotManager,
                          String path) throws IOException {
  fsd.writeLock();
  try {
    snapshotManager.setSnapshottable(path, true);
  } finally {
    fsd.writeUnlock();
  }
  fsd.getEditLog().logAllowSnapshot(path);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:12,代码来源:FSDirSnapshotOp.java

示例4: disallowSnapshot

import org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager; //导入依赖的package包/类
static void disallowSnapshot(
    FSDirectory fsd, SnapshotManager snapshotManager,
    String path) throws IOException {
  fsd.writeLock();
  try {
    snapshotManager.resetSnapshottable(path);
  } finally {
    fsd.writeUnlock();
  }
  fsd.getEditLog().logDisallowSnapshot(path);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:12,代码来源:FSDirSnapshotOp.java

示例5: createSnapshot

import org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager; //导入依赖的package包/类
/**
 * Create a snapshot
 * @param snapshotRoot The directory path where the snapshot is taken
 * @param snapshotName The name of the snapshot
 */
static String createSnapshot(
    FSDirectory fsd, SnapshotManager snapshotManager, String snapshotRoot,
    String snapshotName, boolean logRetryCache)
    throws IOException {
  final INodesInPath iip = fsd.getINodesInPath4Write(snapshotRoot);
  if (fsd.isPermissionEnabled()) {
    FSPermissionChecker pc = fsd.getPermissionChecker();
    fsd.checkOwner(pc, iip);
  }

  if (snapshotName == null || snapshotName.isEmpty()) {
    snapshotName = Snapshot.generateDefaultSnapshotName();
  } else if (!DFSUtil.isValidNameForComponent(snapshotName)) {
    throw new InvalidPathException("Invalid snapshot name: " + snapshotName);
  }

  String snapshotPath = null;
  verifySnapshotName(fsd, snapshotName, snapshotRoot);
  fsd.writeLock();
  try {
    snapshotPath = snapshotManager.createSnapshot(iip, snapshotRoot,
        snapshotName);
  } finally {
    fsd.writeUnlock();
  }
  fsd.getEditLog().logCreateSnapshot(snapshotRoot, snapshotName,
      logRetryCache);

  return snapshotPath;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:36,代码来源:FSDirSnapshotOp.java

示例6: getSnapshottableDirListing

import org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager; //导入依赖的package包/类
static SnapshottableDirectoryStatus[] getSnapshottableDirListing(
    FSDirectory fsd, SnapshotManager snapshotManager) throws IOException {
  FSPermissionChecker pc = fsd.getPermissionChecker();
  fsd.readLock();
  try {
    final String user = pc.isSuperUser()? null : pc.getUser();
    return snapshotManager.getSnapshottableDirListing(user);
  } finally {
    fsd.readUnlock();
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:12,代码来源:FSDirSnapshotOp.java

示例7: deleteSnapshot

import org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager; //导入依赖的package包/类
/**
 * Delete a snapshot of a snapshottable directory
 * @param snapshotRoot The snapshottable directory
 * @param snapshotName The name of the to-be-deleted snapshot
 * @throws IOException
 */
static INode.BlocksMapUpdateInfo deleteSnapshot(
    FSDirectory fsd, SnapshotManager snapshotManager, String snapshotRoot,
    String snapshotName, boolean logRetryCache)
    throws IOException {
  final INodesInPath iip = fsd.getINodesInPath4Write(snapshotRoot);
  if (fsd.isPermissionEnabled()) {
    FSPermissionChecker pc = fsd.getPermissionChecker();
    fsd.checkOwner(pc, iip);
  }

  INode.BlocksMapUpdateInfo collectedBlocks = new INode.BlocksMapUpdateInfo();
  ChunkedArrayList<INode> removedINodes = new ChunkedArrayList<INode>();
  fsd.writeLock();
  try {
    snapshotManager.deleteSnapshot(iip, snapshotName, collectedBlocks,
        removedINodes);
    fsd.removeFromInodeMap(removedINodes);
  } finally {
    fsd.writeUnlock();
  }
  removedINodes.clear();
  fsd.getEditLog().logDeleteSnapshot(snapshotRoot, snapshotName,
      logRetryCache);

  return collectedBlocks;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:33,代码来源:FSDirSnapshotOp.java

示例8: deleteSnapshot

import org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager; //导入依赖的package包/类
/**
 * Delete a snapshot of a snapshottable directory
 * @param snapshotRoot The snapshottable directory
 * @param snapshotName The name of the to-be-deleted snapshot
 * @throws IOException
 */
static INode.BlocksMapUpdateInfo deleteSnapshot(
    FSDirectory fsd, SnapshotManager snapshotManager, String snapshotRoot,
    String snapshotName, boolean logRetryCache)
    throws IOException {
  final INodesInPath iip = fsd.getINodesInPath4Write(snapshotRoot);
  if (fsd.isPermissionEnabled()) {
    FSPermissionChecker pc = fsd.getPermissionChecker();
    fsd.checkOwner(pc, iip);
  }

  INode.BlocksMapUpdateInfo collectedBlocks = new INode.BlocksMapUpdateInfo();
  ChunkedArrayList<INode> removedINodes = new ChunkedArrayList<>();
  INode.ReclaimContext context = new INode.ReclaimContext(
      fsd.getBlockStoragePolicySuite(), collectedBlocks, removedINodes, null);
  fsd.writeLock();
  try {
    snapshotManager.deleteSnapshot(iip, snapshotName, context);
    fsd.updateCount(iip, context.quotaDelta(), false);
    fsd.removeFromInodeMap(removedINodes);
    fsd.updateReplicationFactor(context.collectedBlocks()
                                    .toUpdateReplicationInfo());
  } finally {
    fsd.writeUnlock();
  }
  removedINodes.clear();
  fsd.getEditLog().logDeleteSnapshot(snapshotRoot, snapshotName,
      logRetryCache);

  return collectedBlocks;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:37,代码来源:FSDirSnapshotOp.java

示例9: getSnapshotManager

import org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager; //导入依赖的package包/类
public SnapshotManager getSnapshotManager() {
  return snapshotManager;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:4,代码来源:FSNamesystem.java


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