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


Java EnumCounters类代码示例

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


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

示例1: verifyQuotaByStorageType

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
private void verifyQuotaByStorageType(EnumCounters<StorageType> typeDelta)
    throws QuotaByStorageTypeExceededException {
  if (!isQuotaByStorageTypeSet()) {
    return;
  }
  for (StorageType t: StorageType.getTypesSupportingQuota()) {
    if (!isQuotaByStorageTypeSet(t)) {
      continue;
    }
    if (Quota.isViolated(quota.getTypeSpace(t), usage.getTypeSpace(t),
        typeDelta.get(t))) {
      throw new QuotaByStorageTypeExceededException(
        quota.getTypeSpace(t), usage.getTypeSpace(t) + typeDelta.get(t), t);
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:17,代码来源:DirectoryWithQuotaFeature.java

示例2: loadRootINode

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
private void loadRootINode(INodeSection.INode p) {
  INodeDirectory root = loadINodeDirectory(p, parent.getLoaderContext());
  final QuotaCounts q = root.getQuotaCounts();
  final long nsQuota = q.getNameSpace();
  final long dsQuota = q.getStorageSpace();
  if (nsQuota != -1 || dsQuota != -1) {
    dir.rootDir.getDirectoryWithQuotaFeature().setQuota(nsQuota, dsQuota);
  }
  final EnumCounters<StorageType> typeQuotas = q.getTypeSpaces();
  if (typeQuotas.anyGreaterOrEqual(0)) {
    dir.rootDir.getDirectoryWithQuotaFeature().setQuota(typeQuotas);
  }
  dir.rootDir.cloneModificationTime(root);
  dir.rootDir.clonePermissionStatus(root);
  // root dir supports having extended attributes according to POSIX
  final XAttrFeature f = root.getXAttrFeature();
  if (f != null) {
    dir.rootDir.addXAttrFeature(f);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:21,代码来源:FSImageFormatPBINode.java

示例3: loadRootINode

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
private void loadRootINode(INodeSection.INode p) {
  INodeDirectory root = loadINodeDirectory(p, parent.getLoaderContext());
  final QuotaCounts q = root.getQuotaCounts();
  final long nsQuota = q.getNameSpace();
  final long dsQuota = q.getStorageSpace();
  if (nsQuota != -1 || dsQuota != -1) {
    dir.rootDir.getDirectoryWithQuotaFeature().setQuota(nsQuota, dsQuota);
  }
  final EnumCounters<StorageType> typeQuotas = q.getTypeSpaces();
  if (typeQuotas.anyGreaterOrEqual(0)) {
    dir.rootDir.getDirectoryWithQuotaFeature().setQuota(typeQuotas);
  }
  dir.rootDir.cloneModificationTime(root);
  dir.rootDir.clonePermissionStatus(root);
  final AclFeature af = root.getFeature(AclFeature.class);
  if (af != null) {
    dir.rootDir.addAclFeature(af);
  }
  // root dir supports having extended attributes according to POSIX
  final XAttrFeature f = root.getXAttrFeature();
  if (f != null) {
    dir.rootDir.addXAttrFeature(f);
  }
  dir.addRootDirToEncryptionZone(f);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:26,代码来源:FSImageFormatPBINode.java

示例4: CopyWithQuota

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
public CopyWithQuota(byte[] name, PermissionStatus permissions,
    AclFeature aclFeature, long modificationTime, long nsQuota,
    long dsQuota, EnumCounters<StorageType> typeQuotas, XAttrFeature xAttrsFeature) {
  super(name, permissions, aclFeature, modificationTime, xAttrsFeature);
  this.quota = new QuotaCounts.Builder().nameSpace(nsQuota).
      storageSpace(dsQuota).typeSpaces(typeQuotas).build();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:8,代码来源:INodeDirectoryAttributes.java

示例5: updateCount

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
/**
 * Update usage count without replication factor change
 */
void updateCount(INodesInPath iip, long nsDelta, long ssDelta, short replication,
    boolean checkQuota) throws QuotaExceededException {
  final INodeFile fileINode = iip.getLastINode().asFile();
  EnumCounters<StorageType> typeSpaceDeltas =
    getStorageTypeDeltas(fileINode.getStoragePolicyID(), ssDelta,
        replication, replication);;
  updateCount(iip, iip.length() - 1,
    new QuotaCounts.Builder().nameSpace(nsDelta).storageSpace(ssDelta * replication).
        typeSpaces(typeSpaceDeltas).build(),
      checkQuota);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:15,代码来源:FSDirectory.java

示例6: updateCount

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
/**
 * Update usage count without replication factor change
 */
void updateCount(INodesInPath iip, long nsDelta, long ssDelta, short replication,
    boolean checkQuota) throws QuotaExceededException {
  final INodeFile fileINode = iip.getLastINode().asFile();
  EnumCounters<StorageType> typeSpaceDeltas =
    getStorageTypeDeltas(fileINode.getStoragePolicyID(), ssDelta,
        replication, replication);
  updateCount(iip, iip.length() - 1,
    new QuotaCounts.Builder().nameSpace(nsDelta).storageSpace(ssDelta * replication).
        typeSpaces(typeSpaceDeltas).build(),
      checkQuota);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:15,代码来源:FSDirectory.java

示例7: Builder

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
public Builder() {
  this.nsSsCounts = new EnumCounters<Quota>(Quota.class);
  this.tsCounts = new EnumCounters<StorageType>(StorageType.class);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:5,代码来源:QuotaCounts.java

示例8: typeSpaces

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
public Builder typeSpaces(EnumCounters<StorageType> val) {
  if (val != null) {
    this.tsCounts.set(val);
  }
  return this;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:7,代码来源:QuotaCounts.java

示例9: getTypeSpaces

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
public EnumCounters<StorageType> getTypeSpaces() {
  EnumCounters<StorageType> ret =
      new EnumCounters<StorageType>(StorageType.class);
  ret.set(tsCounts);
  return ret;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:7,代码来源:QuotaCounts.java

示例10: setTypeSpaces

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
void setTypeSpaces(EnumCounters<StorageType> that) {
  if (that != null) {
    this.tsCounts.set(that);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:6,代码来源:QuotaCounts.java

示例11: updateCountForQuotaRecursively

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
private static void updateCountForQuotaRecursively(BlockStoragePolicySuite bsps,
    byte blockStoragePolicyId, INodeDirectory dir, QuotaCounts counts) {
  final long parentNamespace = counts.getNameSpace();
  final long parentStoragespace = counts.getStorageSpace();
  final EnumCounters<StorageType> parentTypeSpaces = counts.getTypeSpaces();

  dir.computeQuotaUsage4CurrentDirectory(bsps, blockStoragePolicyId, counts);
  
  for (INode child : dir.getChildrenList(Snapshot.CURRENT_STATE_ID)) {
    final byte childPolicyId = child.getStoragePolicyIDForQuota(blockStoragePolicyId);
    if (child.isDirectory()) {
      updateCountForQuotaRecursively(bsps, childPolicyId,
          child.asDirectory(), counts);
    } else {
      // file or symlink: count here to reduce recursive calls.
      child.computeQuotaUsage(bsps, childPolicyId, counts, false,
          Snapshot.CURRENT_STATE_ID);
    }
  }
    
  if (dir.isQuotaSet()) {
    // check if quota is violated. It indicates a software bug.
    final QuotaCounts q = dir.getQuotaCounts();

    final long namespace = counts.getNameSpace() - parentNamespace;
    final long nsQuota = q.getNameSpace();
    if (Quota.isViolated(nsQuota, namespace)) {
      LOG.warn("Namespace quota violation in image for "
          + dir.getFullPathName()
          + " quota = " + nsQuota + " < consumed = " + namespace);
    }

    final long ssConsumed = counts.getStorageSpace() - parentStoragespace;
    final long ssQuota = q.getStorageSpace();
    if (Quota.isViolated(ssQuota, ssConsumed)) {
      LOG.warn("Storagespace quota violation in image for "
          + dir.getFullPathName()
          + " quota = " + ssQuota + " < consumed = " + ssConsumed);
    }

    final EnumCounters<StorageType> typeSpaces =
        new EnumCounters<StorageType>(StorageType.class);
    for (StorageType t : StorageType.getTypesSupportingQuota()) {
      final long typeSpace = counts.getTypeSpaces().get(t) -
          parentTypeSpaces.get(t);
      final long typeQuota = q.getTypeSpaces().get(t);
      if (Quota.isViolated(typeQuota, typeSpace)) {
        LOG.warn("Storage type quota violation in image for "
            + dir.getFullPathName()
            + " type = " + t.toString() + " quota = "
            + typeQuota + " < consumed " + typeSpace);
      }
    }

    dir.getDirectoryWithQuotaFeature().setSpaceConsumed(namespace, ssConsumed,
        typeSpaces);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:59,代码来源:FSImage.java

示例12: Builder

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
public Builder() {
  contents = new EnumCounters<Content>(Content.class);
  types = new EnumCounters<StorageType>(StorageType.class);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:5,代码来源:ContentCounts.java

示例13: ContentCounts

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
private ContentCounts(EnumCounters<Content> contents,
    EnumCounters<StorageType> types) {
  this.contents = contents;
  this.types = types;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:6,代码来源:ContentCounts.java

示例14: addTypeSpaces

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
public void addTypeSpaces(EnumCounters<StorageType> that) {
  this.types.add(that);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:4,代码来源:ContentCounts.java

示例15: compute

import org.apache.hadoop.hdfs.util.EnumCounters; //导入依赖的package包/类
public void compute() {
  QuotaCounts myCounts =  new QuotaCounts.Builder().build();
  dir.computeQuotaUsage4CurrentDirectory(bsps, blockStoragePolicyId,
      myCounts);

  ReadOnlyList<INode> children =
      dir.getChildrenList(CURRENT_STATE_ID);

  if (children.size() > 0) {
    List<InitQuotaTask> subtasks = new ArrayList<InitQuotaTask>();
    for (INode child : children) {
      final byte childPolicyId =
          child.getStoragePolicyIDForQuota(blockStoragePolicyId);
      if (child.isDirectory()) {
        subtasks.add(new InitQuotaTask(bsps, childPolicyId,
            child.asDirectory(), myCounts));
      } else {
        // file or symlink. count using the local counts variable
        myCounts.add(child.computeQuotaUsage(bsps, childPolicyId, false,
            CURRENT_STATE_ID));
      }
    }
    // invoke and wait for completion
    invokeAll(subtasks);
  }

  if (dir.isQuotaSet()) {
    // check if quota is violated. It indicates a software bug.
    final QuotaCounts q = dir.getQuotaCounts();

    final long nsConsumed = myCounts.getNameSpace();
    final long nsQuota = q.getNameSpace();
    if (Quota.isViolated(nsQuota, nsConsumed)) {
      LOG.warn("Namespace quota violation in image for "
          + dir.getFullPathName()
          + " quota = " + nsQuota + " < consumed = " + nsConsumed);
    }

    final long ssConsumed = myCounts.getStorageSpace();
    final long ssQuota = q.getStorageSpace();
    if (Quota.isViolated(ssQuota, ssConsumed)) {
      LOG.warn("Storagespace quota violation in image for "
          + dir.getFullPathName()
          + " quota = " + ssQuota + " < consumed = " + ssConsumed);
    }

    final EnumCounters<StorageType> tsConsumed = myCounts.getTypeSpaces();
    for (StorageType t : StorageType.getTypesSupportingQuota()) {
      final long typeSpace = tsConsumed.get(t);
      final long typeQuota = q.getTypeSpaces().get(t);
      if (Quota.isViolated(typeQuota, typeSpace)) {
        LOG.warn("Storage type quota violation in image for "
            + dir.getFullPathName()
            + " type = " + t.toString() + " quota = "
            + typeQuota + " < consumed " + typeSpace);
      }
    }
    if (LOG.isDebugEnabled()) {
      LOG.debug("Setting quota for " + dir + "\n" + myCounts);
    }
    dir.getDirectoryWithQuotaFeature().setSpaceConsumed(nsConsumed,
        ssConsumed, tsConsumed);
  }

  synchronized(counts) {
    counts.add(myCounts);
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:69,代码来源:FSDirectory.java


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