Example usage for org.apache.hadoop.hdfs.protocol DatanodeInfo DatanodeInfo

List of usage examples for org.apache.hadoop.hdfs.protocol DatanodeInfo DatanodeInfo

Introduction

In this page you can find the example usage for org.apache.hadoop.hdfs.protocol DatanodeInfo DatanodeInfo.

Prototype

protected DatanodeInfo(DatanodeID nodeID) 

Source Link

Usage

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;
}