this.namesystem = namesystem; datanodeManager = new DatanodeManager(this, namesystem, conf); heartbeatManager = datanodeManager.getHeartbeatManager(); this.blockIdManager = new BlockIdManager(this); blocksPerPostpondedRescan = (int)Math.min(Integer.MAX_VALUE,
public static HeartbeatManager getHeartbeatManager( final BlockManager blockManager) { return blockManager.getDatanodeManager().getHeartbeatManager(); }
this.namesystem = namesystem; datanodeManager = new DatanodeManager(this, namesystem, conf); heartbeatManager = datanodeManager.getHeartbeatManager(); blocksPerPostpondedRescan = (int)Math.min(Integer.MAX_VALUE, datanodeManager.getBlocksPerPostponedMisreplicatedBlocksRescan());
this.namesystem = namesystem; datanodeManager = new DatanodeManager(this, namesystem, conf); heartbeatManager = datanodeManager.getHeartbeatManager(); blocksPerPostpondedRescan = (int)Math.min(Integer.MAX_VALUE, datanodeManager.getBlocksPerPostponedMisreplicatedBlocksRescan());
/** * Call heartbeat check function of HeartbeatManager * @param bm the BlockManager to manipulate */ public static void checkHeartbeat(BlockManager bm) { HeartbeatManager hbm = bm.getDatanodeManager().getHeartbeatManager(); hbm.restartHeartbeatStopWatch(); hbm.heartbeatCheck(); }
bm.getDatanodeManager().getHeartbeatManager().addDatanode(newDn); updateHeartbeatWithUsage(newDn, 2*HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L,
/** * Call heartbeat check function of HeartbeatManager and get * under replicated blocks count within write lock to make sure * computeDatanodeWork doesn't interfere. * @param namesystem the FSNamesystem * @param bm the BlockManager to manipulate * @return the number of under replicated blocks */ public static int checkHeartbeatAndGetUnderReplicatedBlocksCount( FSNamesystem namesystem, BlockManager bm) { namesystem.writeLock(); try { bm.getDatanodeManager().getHeartbeatManager().heartbeatCheck(); return bm.getUnderReplicatedNotMissingBlocks(); } finally { namesystem.writeUnlock(); } }
@Test public void testChooseTargetWithStaleNodes() throws Exception { // Set dataNodes[0] as stale DFSTestUtil.resetLastUpdatesWithOffset(dataNodes[0], -(staleInterval + 1)); namenode.getNamesystem().getBlockManager() .getDatanodeManager().getHeartbeatManager().heartbeatCheck(); assertTrue(namenode.getNamesystem().getBlockManager() .getDatanodeManager().shouldAvoidStaleDataNodesForWrite()); DatanodeStorageInfo[] targets; // We set the datanode[0] as stale, thus should choose datanode[1] since // datanode[1] is on the same rack with datanode[0] (writer) targets = chooseTarget(1); assertEquals(targets.length, 1); assertEquals(storages[1], targets[0]); Set<Node> excludedNodes = new HashSet<Node>(); excludedNodes.add(dataNodes[1]); List<DatanodeStorageInfo> chosenNodes = new ArrayList<DatanodeStorageInfo>(); targets = chooseTarget(1, chosenNodes, excludedNodes); assertEquals(targets.length, 1); assertFalse(isOnSameRack(targets[0], dataNodes[0])); // reset DFSTestUtil.resetLastUpdatesWithOffset(dataNodes[0], 0); namenode.getNamesystem().getBlockManager() .getDatanodeManager().getHeartbeatManager().heartbeatCheck(); }
/** * Ensure that the given NameNode marks the specified DataNode as * entirely dead/expired. * @param nn the NameNode to manipulate * @param dnName the name of the DataNode */ public static void noticeDeadDatanode(NameNode nn, String dnName) { FSNamesystem namesystem = nn.getNamesystem(); namesystem.writeLock(); try { DatanodeManager dnm = namesystem.getBlockManager().getDatanodeManager(); HeartbeatManager hbm = dnm.getHeartbeatManager(); DatanodeDescriptor[] dnds = hbm.getDatanodes(); DatanodeDescriptor theDND = null; for (DatanodeDescriptor dnd : dnds) { if (dnd.getXferAddr().equals(dnName)) { theDND = dnd; } } Assert.assertNotNull("Could not find DN with name: " + dnName, theDND); synchronized (hbm) { DFSTestUtil.setDatanodeDead(theDND); hbm.heartbeatCheck(); } } finally { namesystem.writeUnlock(); } }
bm.getDatanodeManager().getHeartbeatManager().addDatanode( dataNodes[i]);
final HeartbeatManager hm = bm.getDatanodeManager().getHeartbeatManager(); try { namesystem.writeLock();
@Before public void setup() throws Exception { conf = new HdfsConfiguration(); cluster = new MiniDFSCluster.Builder(conf).numDataNodes(NUM_OF_DATANODES) .build(); cluster.waitActive(); namesystem = cluster.getNamesystem(); bm = namesystem.getBlockManager(); nodes = bm.getDatanodeManager().getHeartbeatManager().getDatanodes(); assertEquals(nodes.length, NUM_OF_DATANODES); }
bm.getDatanodeManager().getHeartbeatManager().heartbeatCheck(); assertTrue(!failedStorageInfo.areBlocksOnFailedStorage());
.getDatanodeManager().getHeartbeatManager().heartbeatCheck(); .getDatanodeManager().getHeartbeatManager().heartbeatCheck();
.getDatanodeManager().getHeartbeatManager().heartbeatCheck(); int numStaleNodes = miniCluster.getNameNode().getNamesystem() .getBlockManager().getDatanodeManager().getNumStaleNodes(); .getDatanodeManager().getHeartbeatManager().heartbeatCheck(); numStaleNodes = miniCluster.getNameNode().getNamesystem() .getBlockManager().getDatanodeManager().getNumStaleNodes(); .getDatanodeManager().getHeartbeatManager().heartbeatCheck(); numStaleNodes = miniCluster.getNameNode().getNamesystem() .getBlockManager().getDatanodeManager().getNumStaleNodes();
final FSNamesystem namesystem = cluster.getNamesystem(); final HeartbeatManager hm = namesystem.getBlockManager( ).getDatanodeManager().getHeartbeatManager(); final String poolId = namesystem.getBlockPoolId(); final DatanodeRegistration nodeReg1 =
final FSNamesystem namesystem = cluster.getNamesystem(); final BlockManager bm = namesystem.getBlockManager(); final HeartbeatManager hm = bm.getDatanodeManager().getHeartbeatManager(); final FileSystem fs = cluster.getFileSystem();
final FSNamesystem namesystem = cluster.getNamesystem(); final HeartbeatManager hm = namesystem.getBlockManager( ).getDatanodeManager().getHeartbeatManager(); final String poolId = namesystem.getBlockPoolId(); final DatanodeRegistration nodeReg =