/** * remove a datanode descriptor * @param nodeInfo datanode descriptor */ private void removeDatanode(DatanodeDescriptor nodeInfo) { synchronized (heartbeats) { if (nodeInfo.isAlive) { updateStats(nodeInfo, false); heartbeats.remove(nodeInfo); nodeInfo.isAlive = false; } } for (Iterator<Block> it = nodeInfo.getBlockIterator(); it.hasNext();) { removeStoredBlock(it.next(), nodeInfo); } unprotectedRemoveDatanode(nodeInfo); clusterMap.remove(nodeInfo); }
/** * Start decommissioning the specified datanode. */ private void startDecommission (DatanodeDescriptor node) throws IOException { if (!node.isDecommissionInProgress() && !node.isDecommissioned()) { LOG.info("Start Decommissioning node " + node.getName()); node.startDecommission(); // // all the blocks that reside on this node have to be // replicated. Iterator<Block> decommissionBlocks = node.getBlockIterator(); while(decommissionBlocks.hasNext()) { Block block = decommissionBlocks.next(); updateNeededReplications(block, -1, 0); } } }
return new BlocksWithLocations(new BlockWithLocations[0]); Iterator<Block> iter = node.getBlockIterator(); int startBlock = r.nextInt(numBlocks); // starting from a random block iter = node.getBlockIterator(); // start from the beginning for(int i=0; i<startBlock&&totalSize<size; i++) { totalSize += addBlock(iter.next(), results);
/** * remove a datanode descriptor * * @param nodeInfo datanode descriptor */ private void removeDatanode(DatanodeDescriptor nodeInfo) { synchronized (heartbeats) { if (nodeInfo.isAlive) { updateStats(nodeInfo, false); heartbeats.remove(nodeInfo); nodeInfo.isAlive = false; } } for (Iterator<Block> it = nodeInfo.getBlockIterator(); it.hasNext();) { removeStoredBlock(it.next(), nodeInfo); } unprotectedRemoveDatanode(nodeInfo); clusterMap.remove(nodeInfo); // remove this datanode from any INodeFileUnderConstruction so // concurrent readers don't get down datanodes // (we need a copy of the Set since removeTargets may modify it) Set<INodeFileUnderConstruction> iNodeFileSet = new HashSet<INodeFileUnderConstruction>(nodeInfo.getOpenINodes()); for (INodeFileUnderConstruction iNodeFile : iNodeFileSet) { iNodeFile.removeTarget(nodeInfo); } }
return new BlocksWithLocations(new BlockWithLocations[0]); Iterator<Block> iter = node.getBlockIterator(); int startBlock = r.nextInt(numBlocks); // starting from a random block iter = node.getBlockIterator(); // start from the beginning for (int i = 0; i < startBlock && totalSize < size; i++) { totalSize += addBlock(iter.next(), results);
for(final Iterator<Block> i = srcNode.getBlockIterator(); i.hasNext(); ) { final Block block = i.next(); INode fileINode = blocksMap.getINode(block);
fsnamesystem.writeLock(); try { Iterator<Block> it = nodeBeingCheck.getBlockIterator(); fsnamesystem.readLock(); try { for( Iterator<Block> it = nodeBeingCheck.getBlockIterator(); it.hasNext(); ) { final Block block = fsnamesystem.isReplicationInProgress(