Package org.apache.hadoop.hdfs.server.namenode

Examples of org.apache.hadoop.hdfs.server.namenode.CorruptReplicasMap


  }
 
  public void testCorruptReplicaInfo() throws IOException,
                                       InterruptedException {
   
      CorruptReplicasMap crm = new CorruptReplicasMap();
     
      // Make sure initial values are returned correctly
      assertEquals("Number of corrupt blocks must initially be 0", 0, crm.size());
      assertNull("Param n cannot be less than 0", crm.getCorruptReplicaBlockIds(-1, null));
      assertNull("Param n cannot be greater than 100", crm.getCorruptReplicaBlockIds(101, null));
      long[] l = crm.getCorruptReplicaBlockIds(0, null);
      assertNotNull("n = 0 must return non-null", l);
      assertEquals("n = 0 must return an empty list", 0, l.length);

      // create a list of block_ids. A list is used to allow easy validation of the
      // output of getCorruptReplicaBlockIds
      int NUM_BLOCK_IDS = 140;
      List<Long> block_ids = new LinkedList<Long>();
      for (int i=0;i<NUM_BLOCK_IDS;i++) {
        block_ids.add((long)i);
      }
     
      DatanodeDescriptor dn1 = new DatanodeDescriptor();
      DatanodeDescriptor dn2 = new DatanodeDescriptor();
      DatanodeDescriptor dn3 = new DatanodeDescriptor();
     
      crm.addToCorruptReplicasMap(getBlock(0), dn1);
      assertEquals("Number of corrupt blocks not returning correctly",
                   1, crm.size());
      crm.addToCorruptReplicasMap(getBlock(1), dn1);
      assertEquals("Number of corrupt blocks not returning correctly",
                   2, crm.size());
     
      crm.addToCorruptReplicasMap(getBlock(1), dn2);
      assertEquals("Number of corrupt blocks not returning correctly",
                   2, crm.size());
     
      crm.removeFromCorruptReplicasMap(getBlock(1));
      assertEquals("Number of corrupt blocks not returning correctly",
                   1, crm.size());
     
      crm.removeFromCorruptReplicasMap(getBlock(0));
      assertEquals("Number of corrupt blocks not returning correctly",
                   0, crm.size());
     
      for (Long block_id: block_ids) {
        crm.addToCorruptReplicasMap(getBlock(block_id), dn1);
      }
           
      assertEquals("Number of corrupt blocks not returning correctly",
                   NUM_BLOCK_IDS, crm.size());
     
      assertTrue("First five block ids not returned correctly ",
                Arrays.equals(new long[]{0,1,2,3,4},
                              crm.getCorruptReplicaBlockIds(5, null)));
                             
      LOG.info(crm.getCorruptReplicaBlockIds(10, 7L));
      LOG.info(block_ids.subList(7, 18));

      assertTrue("10 blocks after 7 not returned correctly ",
                Arrays.equals(new long[]{8,9,10,11,12,13,14,15,16,17},
                              crm.getCorruptReplicaBlockIds(10, 7L)));
     
  }
View Full Code Here

TOP

Related Classes of org.apache.hadoop.hdfs.server.namenode.CorruptReplicasMap

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.