Java 类org.apache.hadoop.hdfs.server.namenode.LeaseManager.Lease 实例源码

项目:hadoop-EAR    文件:FSDirectory.java   
/**
 * Retrieves a list of random files with some information.
 *
 * @param percent
 *          the percent of files to return
 * @return the list of files
 */
public List<FileStatusExtended> getRandomFileStats(double percent) {
  readLock();
  try {
    List<FileStatusExtended> stats = new LinkedList<FileStatusExtended>();
    for (INodeFile file : getRandomFiles(percent)) {
      try {
        String path = file.getFullPathName();
        FileStatus stat = createFileStatus(path, file);
        Lease lease = this.getFSNamesystem().leaseManager.getLeaseByPath(path);
        String holder = (lease == null) ? null : lease.getHolder();
        long hardlinkId = (file instanceof INodeHardLinkFile) ? ((INodeHardLinkFile) file)
            .getHardLinkID() : -1;
            stats.add(new FileStatusExtended(stat, file.getBlocks(), holder,
                hardlinkId));
      } catch (IOException ioe) {
        // the file has already been deleted; ingore it
      }
    }
    return stats;
  } finally {
    readUnlock();
  }
}
项目:hadoop-EAR    文件:FSNamesystem.java   
/**
 * This is invoked when a lease expires. On lease expiry, 
 * all the files that were written from that dfsclient should be
 * recovered.
 */
void internalReleaseLease(Lease lease, String src,
    INodeFileUnderConstruction pendingFile) throws IOException {
  if (lease.hasPath()) {
    // make a copy of the paths because internalReleaseLeaseOne removes
    // pathnames from the lease record.
    String[] leasePaths = new String[lease.getPaths().size()];
    lease.getPaths().toArray(leasePaths);
    LOG.info("Recovering lease: " + lease + " for paths "
        + Arrays.toString(leasePaths));
    for (String p: leasePaths) {
      internalReleaseLeaseOne(lease, p);
    }
  } else {
    internalReleaseLeaseOne(lease, src, pendingFile, false);
  }
}
项目:hadoop-on-lustre    文件:FSNamesystem.java   
/**
 * Serializes leases. 
 */
void saveFilesUnderConstruction(DataOutputStream out) throws IOException {
  synchronized (leaseManager) {
    out.writeInt(leaseManager.countPath()); // write the size

    for (Lease lease : leaseManager.getSortedLeases()) {
      for(String path : lease.getPaths()) {
        // verify that path exists in namespace
        INode node = dir.getFileINode(path);
        if (node == null) {
          throw new IOException("saveLeases found path " + path +
                                " but no matching entry in namespace.");
        }
        if (!node.isUnderConstruction()) {
          throw new IOException("saveLeases found path " + path +
                                " but is not under construction.");
        }
        INodeFileUnderConstruction cons = (INodeFileUnderConstruction) node;
        FSImage.writeINodeUnderConstruction(out, cons, path);
      }
    }
  }
}
项目:RDFS    文件:FSDirectory.java   
/**
 * Retrieves a list of random files with some information.
 * 
 * @param maxFiles
 *          the maximum number of files to return
 * @return the list of files
 */
public List<FileStatusExtended> getRandomFileStats(int maxFiles) {
  readLock();
  try {
    List<FileStatusExtended> stats = new LinkedList<FileStatusExtended>();
    for (INodeFile file : getRandomFiles(maxFiles)) {
      String path = file.getFullPathName();
      FileStatus stat = createFileStatus(path, file);
      Lease lease = this.getFSNamesystem().leaseManager.getLeaseByPath(path);
      String holder = (lease == null) ? null : lease.getHolder();
      stats.add(new FileStatusExtended(stat, file.getBlocks(), holder));
    }
    return stats;
  } finally {
    readUnlock();
  }
}
项目:RDFS    文件:FSNamesystem.java   
/**
 * This is invoked when a lease expires. On lease expiry, 
 * all the files that were written from that dfsclient should be
 * recovered.
 */
void internalReleaseLease(Lease lease, String src,
    INodeFileUnderConstruction pendingFile) throws IOException {
  if (lease.hasPath()) {
    // make a copy of the paths because internalReleaseLeaseOne removes
    // pathnames from the lease record.
    String[] leasePaths = new String[lease.getPaths().size()];
    lease.getPaths().toArray(leasePaths);
    LOG.info("Recovering lease: " + lease + " for paths "
        + Arrays.toString(leasePaths));
    for (String p: leasePaths) {
      internalReleaseLeaseOne(lease, p);
    }
  } else {
    internalReleaseLeaseOne(lease, src, pendingFile, false);
  }
}
项目:hadoop-0.20    文件:FSNamesystem.java   
/**
 * Serializes leases. 
 */
void saveFilesUnderConstruction(DataOutputStream out) throws IOException {
  synchronized (leaseManager) {
    out.writeInt(leaseManager.countPath()); // write the size

    for (Lease lease : leaseManager.getSortedLeases()) {
      for(String path : lease.getPaths()) {
        // verify that path exists in namespace
        INode node = dir.getFileINode(path);
        if (node == null) {
          throw new IOException("saveLeases found path " + path +
                                " but no matching entry in namespace.");
        }
        if (!node.isUnderConstruction()) {
          throw new IOException("saveLeases found path " + path +
                                " but is not under construction.");
        }
        INodeFileUnderConstruction cons = (INodeFileUnderConstruction) node;
        FSImage.writeINodeUnderConstruction(out, cons, path);
      }
    }
  }
}
项目:hortonworks-extension    文件:FSNamesystem.java   
/**
 * Serializes leases. 
 */
void saveFilesUnderConstruction(DataOutputStream out) throws IOException {
  synchronized (leaseManager) {
    out.writeInt(leaseManager.countPath()); // write the size

    for (Lease lease : leaseManager.getSortedLeases()) {
      for(String path : lease.getPaths()) {
        // verify that path exists in namespace
        INode node = dir.getFileINode(path);
        if (node == null) {
          throw new IOException("saveLeases found path " + path +
                                " but no matching entry in namespace.");
        }
        if (!node.isUnderConstruction()) {
          throw new IOException("saveLeases found path " + path +
                                " but is not under construction.");
        }
        INodeFileUnderConstruction cons = (INodeFileUnderConstruction) node;
        FSImage.writeINodeUnderConstruction(out, cons, path);
      }
    }
  }
}
项目:hortonworks-extension    文件:FSNamesystem.java   
/**
 * Serializes leases. 
 */
void saveFilesUnderConstruction(DataOutputStream out) throws IOException {
  synchronized (leaseManager) {
    out.writeInt(leaseManager.countPath()); // write the size

    for (Lease lease : leaseManager.getSortedLeases()) {
      for(String path : lease.getPaths()) {
        // verify that path exists in namespace
        INode node = dir.getFileINode(path);
        if (node == null) {
          throw new IOException("saveLeases found path " + path +
                                " but no matching entry in namespace.");
        }
        if (!node.isUnderConstruction()) {
          throw new IOException("saveLeases found path " + path +
                                " but is not under construction.");
        }
        INodeFileUnderConstruction cons = (INodeFileUnderConstruction) node;
        FSImage.writeINodeUnderConstruction(out, cons, path);
      }
    }
  }
}
项目:hadoop-gpu    文件:FSNamesystem.java   
/**
 * Serializes leases. 
 */
void saveFilesUnderConstruction(DataOutputStream out) throws IOException {
  synchronized (leaseManager) {
    out.writeInt(leaseManager.countPath()); // write the size

    for (Lease lease : leaseManager.getSortedLeases()) {
      for(String path : lease.getPaths()) {
        // verify that path exists in namespace
        INode node = dir.getFileINode(path);
        if (node == null) {
          throw new IOException("saveLeases found path " + path +
                                " but no matching entry in namespace.");
        }
        if (!node.isUnderConstruction()) {
          throw new IOException("saveLeases found path " + path +
                                " but is not under construction.");
        }
        INodeFileUnderConstruction cons = (INodeFileUnderConstruction) node;
        FSImage.writeINodeUnderConstruction(out, cons, path);
      }
    }
  }
}
项目:hadoop    文件:NameNodeAdapter.java   
/**
 * @return the timestamp of the last renewal of the given lease,
 *   or -1 in the case that the lease doesn't exist.
 */
public static long getLeaseRenewalTime(NameNode nn, String path) {
  LeaseManager lm = nn.getNamesystem().leaseManager;
  Lease l = lm.getLeaseByPath(path);
  if (l == null) {
    return -1;
  }
  return l.getLastUpdate();
}
项目:aliyun-oss-hadoop-fs    文件:NameNodeAdapter.java   
public static Lease getLeaseForPath(NameNode nn, String path) {
  final FSNamesystem fsn = nn.getNamesystem();
  INode inode;
  try {
    inode = fsn.getFSDirectory().getINode(path, false);
  } catch (UnresolvedLinkException e) {
    throw new RuntimeException("Lease manager should not support symlinks");
  }
  return inode == null ? null : fsn.leaseManager.getLease((INodeFile) inode);
}
项目:big-c    文件:NameNodeAdapter.java   
/**
 * @return the timestamp of the last renewal of the given lease,
 *   or -1 in the case that the lease doesn't exist.
 */
public static long getLeaseRenewalTime(NameNode nn, String path) {
  LeaseManager lm = nn.getNamesystem().leaseManager;
  Lease l = lm.getLeaseByPath(path);
  if (l == null) {
    return -1;
  }
  return l.getLastUpdate();
}
项目:hadoop-2.6.0-cdh5.4.3    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
    INodeFile pendingFile) {
  assert hasWriteLock();
  if(newHolder == null)
    return lease;
  // The following transaction is not synced. Make sure it's sync'ed later.
  logReassignLease(lease.getHolder(), src, newHolder);
  return reassignLeaseInternal(lease, src, newHolder, pendingFile);
}
项目:hadoop-2.6.0-cdh5.4.3    文件:NameNodeAdapter.java   
/**
 * @return the timestamp of the last renewal of the given lease,
 *   or -1 in the case that the lease doesn't exist.
 */
public static long getLeaseRenewalTime(NameNode nn, String path) {
  LeaseManager lm = nn.getNamesystem().leaseManager;
  Lease l = lm.getLeaseByPath(path);
  if (l == null) {
    return -1;
  }
  return l.getLastUpdate();
}
项目:hadoop-EAR    文件:FSNamesystem.java   
public OpenFilesInfo getOpenFiles() throws IOException {
  List <FileStatusExtended> openFiles = new ArrayList <FileStatusExtended>();
  for (Lease lease : leaseManager.getSortedLeases()) {
    for (String path : lease.getPaths()) {
      FileStatusExtended stat = this.getFileInfoExtended(path,
          lease.getHolder());
      if (stat != null) {
        openFiles.add(stat);
      }
    }
  }
  return new OpenFilesInfo(openFiles, this.getGenerationStamp());
}
项目:hadoop-EAR    文件:FSNamesystem.java   
Lease reassignLease(Lease lease, String src, String newHolder,
                    INodeFileUnderConstruction pendingFile) {
  if(newHolder == null)
    return lease;
  pendingFile.setClientName(newHolder);
  return leaseManager.reassignLease(lease, src, newHolder);
}
项目:hadoop-plus    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
    INodeFileUnderConstruction pendingFile) {
  assert hasWriteLock();
  if(newHolder == null)
    return lease;
  // The following transaction is not synced. Make sure it's sync'ed later.
  logReassignLease(lease.getHolder(), src, newHolder);
  return reassignLeaseInternal(lease, src, newHolder, pendingFile);
}
项目:hadoop-plus    文件:NameNodeAdapter.java   
/**
 * @return the timestamp of the last renewal of the given lease,
 *   or -1 in the case that the lease doesn't exist.
 */
public static long getLeaseRenewalTime(NameNode nn, String path) {
  LeaseManager lm = nn.getNamesystem().leaseManager;
  Lease l = lm.getLeaseByPath(path);
  if (l == null) {
    return -1;
  }
  return l.getLastUpdate();
}
项目:FlexMap    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
    INodeFile pendingFile) {
  assert hasWriteLock();
  if(newHolder == null)
    return lease;
  // The following transaction is not synced. Make sure it's sync'ed later.
  logReassignLease(lease.getHolder(), src, newHolder);
  return reassignLeaseInternal(lease, src, newHolder, pendingFile);
}
项目:FlexMap    文件:FSNamesystem.java   
/**
 * Get the total number of COMPLETE blocks in the system.
 * For safe mode only complete blocks are counted.
 */
private long getCompleteBlocksTotal() {
  // Calculate number of blocks under construction
  long numUCBlocks = 0;
  readLock();
  try {
    for (Lease lease : leaseManager.getSortedLeases()) {
      for (String path : lease.getPaths()) {
        final INodeFile cons;
        try {
          cons = dir.getINode(path).asFile();
          Preconditions.checkState(cons.isUnderConstruction());
        } catch (UnresolvedLinkException e) {
          throw new AssertionError("Lease files should reside on this FS");
        }
        BlockInfo[] blocks = cons.getBlocks();
        if(blocks == null)
          continue;
        for(BlockInfo b : blocks) {
          if(!b.isComplete())
            numUCBlocks++;
        }
      }
    }
    LOG.info("Number of blocks under construction: " + numUCBlocks);
    return getBlocksTotal() - numUCBlocks;
  } finally {
    readUnlock();
  }
}
项目:FlexMap    文件:NameNodeAdapter.java   
/**
 * @return the timestamp of the last renewal of the given lease,
 *   or -1 in the case that the lease doesn't exist.
 */
public static long getLeaseRenewalTime(NameNode nn, String path) {
  LeaseManager lm = nn.getNamesystem().leaseManager;
  Lease l = lm.getLeaseByPath(path);
  if (l == null) {
    return -1;
  }
  return l.getLastUpdate();
}
项目:hadoop-TCP    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
    INodeFileUnderConstruction pendingFile) {
  assert hasWriteLock();
  if(newHolder == null)
    return lease;
  // The following transaction is not synced. Make sure it's sync'ed later.
  logReassignLease(lease.getHolder(), src, newHolder);
  return reassignLeaseInternal(lease, src, newHolder, pendingFile);
}
项目:hadoop-TCP    文件:NameNodeAdapter.java   
/**
 * @return the timestamp of the last renewal of the given lease,
 *   or -1 in the case that the lease doesn't exist.
 */
public static long getLeaseRenewalTime(NameNode nn, String path) {
  LeaseManager lm = nn.getNamesystem().leaseManager;
  Lease l = lm.getLeaseByPath(path);
  if (l == null) {
    return -1;
  }
  return l.getLastUpdate();
}
项目:hadoop-on-lustre    文件:FSNamesystem.java   
/**
 * This is invoked when a lease expires. On lease expiry, 
 * all the files that were written from that dfsclient should be
 * recovered.
 */
void internalReleaseLease(Lease lease, String src) throws IOException {
  if (lease.hasPath()) {
    // make a copy of the paths because internalReleaseLeaseOne removes
    // pathnames from the lease record.
    String[] leasePaths = new String[lease.getPaths().size()];
    lease.getPaths().toArray(leasePaths);
    for (String p: leasePaths) {
      internalReleaseLeaseOne(lease, p);
    }
  } else {
    internalReleaseLeaseOne(lease, src);
  }
}
项目:hadoop-on-lustre    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
                    INodeFileUnderConstruction pendingFile) {
  if(newHolder == null)
    return lease;
  pendingFile.setClientName(newHolder);
  return leaseManager.reassignLease(lease, src, newHolder);
}
项目:hardfs    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
    INodeFileUnderConstruction pendingFile) {
  assert hasWriteLock();
  if(newHolder == null)
    return lease;
  // The following transaction is not synced. Make sure it's sync'ed later.
  logReassignLease(lease.getHolder(), src, newHolder);
  return reassignLeaseInternal(lease, src, newHolder, pendingFile);
}
项目:hardfs    文件:NameNodeAdapter.java   
/**
 * @return the timestamp of the last renewal of the given lease,
 *   or -1 in the case that the lease doesn't exist.
 */
public static long getLeaseRenewalTime(NameNode nn, String path) {
  LeaseManager lm = nn.getNamesystem().leaseManager;
  Lease l = lm.getLeaseByPath(path);
  if (l == null) {
    return -1;
  }
  return l.getLastUpdate();
}
项目:hadoop-on-lustre2    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
    INodeFile pendingFile) {
  assert hasWriteLock();
  if(newHolder == null)
    return lease;
  // The following transaction is not synced. Make sure it's sync'ed later.
  logReassignLease(lease.getHolder(), src, newHolder);
  return reassignLeaseInternal(lease, src, newHolder, pendingFile);
}
项目:hadoop-on-lustre2    文件:FSNamesystem.java   
/**
 * Get the total number of COMPLETE blocks in the system.
 * For safe mode only complete blocks are counted.
 */
private long getCompleteBlocksTotal() {
  // Calculate number of blocks under construction
  long numUCBlocks = 0;
  readLock();
  try {
    for (Lease lease : leaseManager.getSortedLeases()) {
      for (String path : lease.getPaths()) {
        final INodeFile cons;
        try {
          cons = dir.getINode(path).asFile();
          Preconditions.checkState(cons.isUnderConstruction());
        } catch (UnresolvedLinkException e) {
          throw new AssertionError("Lease files should reside on this FS");
        }
        BlockInfo[] blocks = cons.getBlocks();
        if(blocks == null)
          continue;
        for(BlockInfo b : blocks) {
          if(!b.isComplete())
            numUCBlocks++;
        }
      }
    }
    LOG.info("Number of blocks under construction: " + numUCBlocks);
    return getBlocksTotal() - numUCBlocks;
  } finally {
    readUnlock();
  }
}
项目:hadoop-on-lustre2    文件:NameNodeAdapter.java   
/**
 * @return the timestamp of the last renewal of the given lease,
 *   or -1 in the case that the lease doesn't exist.
 */
public static long getLeaseRenewalTime(NameNode nn, String path) {
  LeaseManager lm = nn.getNamesystem().leaseManager;
  Lease l = lm.getLeaseByPath(path);
  if (l == null) {
    return -1;
  }
  return l.getLastUpdate();
}
项目:cumulus    文件:FSNamesystem.java   
Lease reassignLease(Lease lease, String src, String newHolder,
                    INodeFileUnderConstruction pendingFile) {
  if(newHolder == null)
    return lease;
  pendingFile.setClientName(newHolder);
  return leaseManager.reassignLease(lease, src, newHolder);
}
项目:cumulus    文件:FSNamesystem.java   
/**
 * Serializes leases. 
 */
void saveFilesUnderConstruction(DataOutputStream out) throws IOException {
  synchronized (leaseManager) {
    out.writeInt(leaseManager.countPath()); // write the size

    for (Lease lease : leaseManager.getSortedLeases()) {
      for(String path : lease.getPaths()) {
        // verify that path exists in namespace
        INode node;
        try {
          node = dir.getFileINode(path);
        } catch (UnresolvedLinkException e) {
          throw new AssertionError("Lease files should reside on this FS");
        }
        if (node == null) {
          throw new IOException("saveLeases found path " + path +
                                " but no matching entry in namespace.");
        }
        if (!node.isUnderConstruction()) {
          throw new IOException("saveLeases found path " + path +
                                " but is not under construction.");
        }
        INodeFileUnderConstruction cons = (INodeFileUnderConstruction) node;
        FSImageSerialization.writeINodeUnderConstruction(out, cons, path);
      }
    }
  }
}
项目:RDFS    文件:FSNamesystem.java   
public OpenFilesInfo getOpenFiles() throws IOException {
  List <FileStatusExtended> openFiles = new ArrayList <FileStatusExtended>();
  for (Lease lease : leaseManager.getSortedLeases()) {
    for (String path : lease.getPaths()) {
      FileStatusExtended stat = this.getFileInfoExtended(path,
          lease.getHolder());
      if (stat != null) {
        openFiles.add(stat);
      }
    }
  }
  return new OpenFilesInfo(openFiles, this.getGenerationStamp());
}
项目:RDFS    文件:FSNamesystem.java   
Lease reassignLease(Lease lease, String src, String newHolder,
                    INodeFileUnderConstruction pendingFile) {
  if(newHolder == null)
    return lease;
  pendingFile.setClientName(newHolder);
  return leaseManager.reassignLease(lease, src, newHolder);
}
项目:RDFS    文件:FSNamesystem.java   
/**
 * Serializes leases.
 */
void saveFilesUnderConstruction(SaveNamespaceContext ctx, DataOutputStream out) throws IOException {
  synchronized (leaseManager) {
    out.writeInt(leaseManager.countPath()); // write the size

    LightWeightLinkedSet<Lease> sortedLeases = leaseManager.getSortedLeases();
    Iterator<Lease> itr = sortedLeases.iterator();
    while (itr.hasNext()) {
      ctx.checkCancelled();
      Lease lease = itr.next();
      for (String path : lease.getPaths()) {
        // verify that path exists in namespace
        INode node = dir.getFileINode(path);
        if (node == null) {
          throw new IOException("saveLeases found path " + path +
            " but no matching entry in namespace.");
        }
        if (!node.isUnderConstruction()) {
          throw new IOException("saveLeases found path " + path +
            " but is not under construction.");
        }
        INodeFileUnderConstruction cons = (INodeFileUnderConstruction) node;
        FSImageSerialization.writeINodeUnderConstruction(out, cons, path);
      }
    }
  }
}
项目:hortonworks-extension    文件:FSNamesystem.java   
/**
 * This is invoked when a lease expires. On lease expiry, 
 * all the files that were written from that dfsclient should be
 * recovered.
 */
void internalReleaseLease(Lease lease, String src) throws IOException {
  if (lease.hasPath()) {
    // make a copy of the paths because internalReleaseLeaseOne removes
    // pathnames from the lease record.
    String[] leasePaths = new String[lease.getPaths().size()];
    lease.getPaths().toArray(leasePaths);
    for (String p: leasePaths) {
      internalReleaseLeaseOne(lease, p);
    }
  } else {
    internalReleaseLeaseOne(lease, src);
  }
}
项目:hortonworks-extension    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
                    INodeFileUnderConstruction pendingFile) {
  if(newHolder == null)
    return lease;
  pendingFile.setClientName(newHolder);
  return leaseManager.reassignLease(lease, src, newHolder);
}
项目:hortonworks-extension    文件:FSNamesystem.java   
/**
 * This is invoked when a lease expires. On lease expiry, 
 * all the files that were written from that dfsclient should be
 * recovered.
 */
void internalReleaseLease(Lease lease, String src) throws IOException {
  if (lease.hasPath()) {
    // make a copy of the paths because internalReleaseLeaseOne removes
    // pathnames from the lease record.
    String[] leasePaths = new String[lease.getPaths().size()];
    lease.getPaths().toArray(leasePaths);
    for (String p: leasePaths) {
      internalReleaseLeaseOne(lease, p);
    }
  } else {
    internalReleaseLeaseOne(lease, src);
  }
}
项目:hortonworks-extension    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
                    INodeFileUnderConstruction pendingFile) {
  if(newHolder == null)
    return lease;
  pendingFile.setClientName(newHolder);
  return leaseManager.reassignLease(lease, src, newHolder);
}
项目:hadoop    文件:FSNamesystem.java   
private Lease reassignLease(Lease lease, String src, String newHolder,
INodeFile pendingFile) {