private void countSoftwareVersions() { synchronized(this) { datanodesSoftwareVersions.clear(); for(DatanodeDescriptor dn: datanodeMap.values()) { if (shouldCountVersion(dn)) { Integer num = datanodesSoftwareVersions.get(dn.getSoftwareVersion()); num = num == null ? 1 : num+1; datanodesSoftwareVersions.put(dn.getSoftwareVersion(), num); } } } }
/** * Will return true for all Datanodes which have a non-null software * version and are considered alive (by {@link DatanodeDescriptor#isAlive()}), * indicating the node has not yet been removed. Use {@code isAlive} * rather than {@link DatanodeManager#isDatanodeDead(DatanodeDescriptor)} * to ensure that the version is decremented even if the datanode * hasn't issued a heartbeat recently. * * @param node The datanode in question * @return True iff its version count should be decremented */ private boolean shouldCountVersion(DatanodeDescriptor node) { return node.getSoftwareVersion() != null && node.isAlive(); }
.put("capacity", node.getCapacity()) .put("numBlocks", node.numBlocks()) .put("version", node.getSoftwareVersion()) .put("used", node.getDfsUsed()) .put("remaining", node.getRemaining())
/** * Remove a datanode descriptor. * @param nodeInfo datanode descriptor. */ private void removeDatanode(DatanodeDescriptor nodeInfo, boolean removeBlocksFromBlocksMap) { assert namesystem.hasWriteLock(); heartbeatManager.removeDatanode(nodeInfo); if (removeBlocksFromBlocksMap) { blockManager.removeBlocksAssociatedTo(nodeInfo); } networktopology.remove(nodeInfo); decrementVersionCount(nodeInfo.getSoftwareVersion()); blockManager.getBlockReportLeaseManager().unregister(nodeInfo); if (LOG.isDebugEnabled()) { LOG.debug("remove datanode " + nodeInfo); } blockManager.checkSafeMode(); }
/** * Will return true for all Datanodes which have a non-null software * version and are considered alive (by {@link DatanodeDescriptor#isAlive()}), * indicating the node has not yet been removed. Use {@code isAlive} * rather than {@link DatanodeManager#isDatanodeDead(DatanodeDescriptor)} * to ensure that the version is decremented even if the datanode * hasn't issued a heartbeat recently. * * @param node The datanode in question * @return True iff its version count should be decremented */ private boolean shouldCountVersion(DatanodeDescriptor node) { return node.getSoftwareVersion() != null && node.isAlive; }
/** * Will return true for all Datanodes which have a non-null software * version and are considered alive (by {@link DatanodeDescriptor#isAlive()}), * indicating the node has not yet been removed. Use {@code isAlive} * rather than {@link DatanodeManager#isDatanodeDead(DatanodeDescriptor)} * to ensure that the version is decremented even if the datanode * hasn't issued a heartbeat recently. * * @param node The datanode in question * @return True iff its version count should be decremented */ private boolean shouldCountVersion(DatanodeDescriptor node) { return node.getSoftwareVersion() != null && node.isAlive; }
private void countSoftwareVersions() { synchronized(datanodeMap) { HashMap<String, Integer> versionCount = new HashMap<String, Integer>(); for(DatanodeDescriptor dn: datanodeMap.values()) { if (shouldCountVersion(dn)) { Integer num = versionCount.get(dn.getSoftwareVersion()); num = num == null ? 1 : num+1; versionCount.put(dn.getSoftwareVersion(), num); } } this.datanodesSoftwareVersions = versionCount; } }
private void countSoftwareVersions() { synchronized(datanodeMap) { HashMap<String, Integer> versionCount = new HashMap<String, Integer>(); for(DatanodeDescriptor dn: datanodeMap.values()) { if (shouldCountVersion(dn)) { Integer num = versionCount.get(dn.getSoftwareVersion()); num = num == null ? 1 : num+1; versionCount.put(dn.getSoftwareVersion(), num); } } this.datanodesSoftwareVersions = versionCount; } }
decrementVersionCount(nodeS.getSoftwareVersion()); incrementVersionCount(nodeS.getSoftwareVersion()); startAdminOperationIfNecessary(nodeS); success = true;
/** * Remove a datanode descriptor. * @param nodeInfo datanode descriptor. */ private void removeDatanode(DatanodeDescriptor nodeInfo) { assert namesystem.hasWriteLock(); heartbeatManager.removeDatanode(nodeInfo); blockManager.removeBlocksAssociatedTo(nodeInfo); networktopology.remove(nodeInfo); decrementVersionCount(nodeInfo.getSoftwareVersion()); if (LOG.isDebugEnabled()) { LOG.debug("remove datanode " + nodeInfo); } namesystem.checkSafeMode(); }
.put("capacity", node.getCapacity()) .put("numBlocks", node.numBlocks()) .put("version", node.getSoftwareVersion()) .put("used", node.getDfsUsed()) .put("remaining", node.getRemaining())
/** * Remove a datanode descriptor. * @param nodeInfo datanode descriptor. */ private void removeDatanode(DatanodeDescriptor nodeInfo) { assert namesystem.hasWriteLock(); heartbeatManager.removeDatanode(nodeInfo); blockManager.removeBlocksAssociatedTo(nodeInfo); networktopology.remove(nodeInfo); decrementVersionCount(nodeInfo.getSoftwareVersion()); if (LOG.isDebugEnabled()) { LOG.debug("remove datanode " + nodeInfo); } namesystem.checkSafeMode(); }
decrementVersionCount(nodeS.getSoftwareVersion()); incrementVersionCount(nodeS.getSoftwareVersion()); startDecommissioningIfExcluded(nodeS); success = true;
.put("capacity", node.getCapacity()) .put("numBlocks", node.numBlocks()) .put("version", node.getSoftwareVersion()) .put("used", node.getDfsUsed()) .put("remaining", node.getRemaining())
decrementVersionCount(nodeS.getSoftwareVersion()); incrementVersionCount(nodeS.getSoftwareVersion()); startDecommissioningIfExcluded(nodeS); success = true;