List of usage examples for org.apache.hadoop.hdfs.protocol DatanodeInfo DatanodeInfo
protected DatanodeInfo(DatanodeID nodeID)
From source file:com.sun.grid.herd.HerdJsvTest.java
License:Open Source License
/** * Test of buildRackRequests() method, of class HerdJsv. *///w w w . ja va2 s .co m public void testBuildRackRequests() throws Exception { System.out.println("buildRackRequests()"); HerdJsv instance = new HerdJsv(); List<LocatedBlock> blocks = new ArrayList<LocatedBlock>(5); Map<String, String> expectedResult = new HashMap<String, String>(); Map result = null; DatanodeInfo node1 = new DatanodeInfo(new DatanodeID("node1")); DatanodeInfo node2 = new DatanodeInfo(new DatanodeID("node2a")); DatanodeInfo node3 = new DatanodeInfo(new DatanodeID("node2b")); DatanodeInfo node4 = new DatanodeInfo(new DatanodeID("node4")); DatanodeInfo node5 = new DatanodeInfo(new DatanodeID("node5")); node1.setNetworkLocation("/rack1"); node2.setNetworkLocation("/rack2a"); node3.setNetworkLocation("/rack2b"); node4.setNetworkLocation("/rack4"); node5.setNetworkLocation("/rack5"); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node2, node5 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node2, node3 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node2, node3, node4 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node4, node5 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node3, node5 })); expectedResult.put("hdfs_R", "/rack1"); expectedResult.put("hdfs_r", "/rack1|/rack2a|/rack2b|/rack5|/rack4"); result = (Map) callPrivateMethod(instance, "buildRackRequests", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The buildRackRequests() method did not build the expected requests: ", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node2, node5 })); expectedResult.put("hdfs_R", "/rack1"); expectedResult.put("hdfs_r", "/rack1|/rack2a|/rack5"); result = (Map) callPrivateMethod(instance, "buildRackRequests", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The buildRackRequests() method did not build the expected requests: ", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node3 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node5 })); expectedResult.put("hdfs_R", "/rack1"); expectedResult.put("hdfs_r", "/rack1|/rack2b|/rack5"); result = (Map) callPrivateMethod(instance, "buildRackRequests", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The buildRackRequests() method did not build the expected requests: ", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1 })); expectedResult.put("hdfs_R", "/rack1"); expectedResult.put("hdfs_r", "/rack1"); result = (Map) callPrivateMethod(instance, "buildRackRequests", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The buildRackRequests() method did not build the expected requests: ", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, new DatanodeInfo[] {})); expectedResult.clear(); result = (Map) callPrivateMethod(instance, "buildRackRequests", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The buildRackRequests() method did not build the expected requests: ", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, null)); expectedResult.clear(); result = (Map) callPrivateMethod(instance, "buildRackRequests", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The buildRackRequests() method did not build the expected requests: ", expectedResult, result); blocks.clear(); expectedResult.clear(); result = (Map) callPrivateMethod(instance, "buildRackRequests", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The buildRackRequests() method did not build the expected requests: ", expectedResult, result); blocks = null; expectedResult.clear(); result = (Map) callPrivateMethod(instance, "buildRackRequests", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The buildRackRequests() method did not build the expected requests: ", expectedResult, result); }
From source file:com.sun.grid.herd.HerdJsvTest.java
License:Open Source License
/** * Test of collateRacks() method, of class HerdJsv. *//*from www .j av a 2 s . c om*/ public void testCollateRacks() throws Exception { System.out.println("collateRacks()"); HerdJsv instance = new HerdJsv(); List<LocatedBlock> blocks = new ArrayList<LocatedBlock>(5); Map<String, Integer> expectedResult = new HashMap<String, Integer>(); Map result = null; DatanodeInfo node1 = new DatanodeInfo(new DatanodeID("node1")); DatanodeInfo node2 = new DatanodeInfo(new DatanodeID("node2")); DatanodeInfo node3 = new DatanodeInfo(new DatanodeID("node3")); DatanodeInfo node4 = new DatanodeInfo(new DatanodeID("node4")); DatanodeInfo node5 = new DatanodeInfo(new DatanodeID("node5")); node1.setNetworkLocation("/rack1"); node2.setNetworkLocation("/rack2"); node3.setNetworkLocation("/rack3"); node4.setNetworkLocation("/rack4"); node5.setNetworkLocation("/rack5"); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node2, node5 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node2, node3 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node2, node3, node4 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node4, node5 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node3, node5 })); expectedResult.put("/rack1", 4); expectedResult.put("/rack2", 3); expectedResult.put("/rack3", 3); expectedResult.put("/rack4", 2); expectedResult.put("/rack5", 3); result = (Map) callPrivateMethod(instance, "collateRacks", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The collateRacks() method did not count the racks correctly", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1, node3, node5 })); expectedResult.clear(); expectedResult.put("/rack1", 1); expectedResult.put("/rack3", 1); expectedResult.put("/rack5", 1); result = (Map) callPrivateMethod(instance, "collateRacks", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The collateRacks() method did not count the racks correctly", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node3 })); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node5 })); expectedResult.clear(); expectedResult.put("/rack1", 1); expectedResult.put("/rack3", 1); expectedResult.put("/rack5", 1); result = (Map) callPrivateMethod(instance, "collateRacks", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The collateRacks() method did not count the racks correctly", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, new DatanodeInfo[] { node1 })); expectedResult.clear(); expectedResult.put("/rack1", 1); result = (Map) callPrivateMethod(instance, "collateRacks", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The collateRacks() method did not count the racks correctly", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, new DatanodeInfo[] {})); expectedResult.clear(); result = (Map) callPrivateMethod(instance, "collateRacks", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The collateRacks() method did not count the racks correctly", expectedResult, result); blocks.clear(); blocks.add(new LocatedBlock(null, null)); expectedResult.clear(); result = (Map) callPrivateMethod(instance, "collateRacks", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The collateRacks() method did not count the racks correctly", expectedResult, result); blocks.clear(); expectedResult.clear(); result = (Map) callPrivateMethod(instance, "collateRacks", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The collateRacks() method did not count the racks correctly", expectedResult, result); blocks = null; expectedResult.clear(); result = (Map) callPrivateMethod(instance, "collateRacks", new Class[] { Collection.class }, new Object[] { blocks }); assertEquals("The collateRacks() method did not count the racks correctly", expectedResult, result); }
From source file:common.DataNode.java
License:Apache License
private void transferBlock(Block block, DatanodeInfo xferTargets[]) throws IOException { if (!data.isValidBlock(block)) { // block does not exist or is under-construction String errStr = "Can't send invalid block " + block; LOG.info(errStr);//from ww w .ja v a2 s . co m namenode.errorReport(dnRegistration, DatanodeProtocol.INVALID_BLOCK, errStr); return; } // Check if NN recorded length matches on-disk length long onDiskLength = data.getLength(block); if (block.getNumBytes() > onDiskLength) { // Shorter on-disk len indicates corruption so report NN the corrupt block namenode.reportBadBlocks(new LocatedBlock[] { new LocatedBlock(block, new DatanodeInfo[] { new DatanodeInfo(dnRegistration) }) }); LOG.info("Can't replicate block " + block + " because on-disk length " + onDiskLength + " is shorter than NameNode recorded length " + block.getNumBytes()); return; } int numTargets = xferTargets.length; if (numTargets > 0) { if (LOG.isInfoEnabled()) { StringBuilder xfersBuilder = new StringBuilder(); for (int i = 0; i < numTargets; i++) { xfersBuilder.append(xferTargets[i].getName()); xfersBuilder.append(" "); } LOG.info(dnRegistration + " Starting thread to transfer block " + block + " to " + xfersBuilder); } new Daemon(new DataTransfer(xferTargets, block, this)).start(); } }
From source file:io.hops.experiments.benchmarks.blockreporting.TinyDatanodesHelper.java
License:Apache License
public DatanodeInfo[] getExcludedDatanodes() throws SQLException { if (excludedDatanodes == null) { Connection connection = dataSource.getConnection(); PreparedStatement statement = connection.prepareStatement(String.format(SQL_SELECT, slaveId)); ResultSet resultSet = statement.executeQuery(); List<DatanodeInfo> datanodeInfos = Lists.newArrayList(); while (resultSet.next()) { String info = resultSet.getString("data"); String[] dninfo = info.split(","); DatanodeID datanodeID = new DatanodeID(dninfo[0], dninfo[1], dninfo[2], Integer.valueOf(dninfo[3]), Integer.valueOf(dninfo[4]), Integer.valueOf(dninfo[5])); datanodeInfos.add(new DatanodeInfo(datanodeID)); }/* w w w. ja v a 2s . co m*/ statement.close(); excludedDatanodes = new DatanodeInfo[datanodeInfos.size()]; excludedDatanodes = datanodeInfos.toArray(excludedDatanodes); } return excludedDatanodes; }