Esempio n. 1
0
  /** This test attempts to finalize the NameNode and DataNode. */
  public void testFinalize() throws Exception {
    UpgradeUtilities.initialize();

    for (int numDirs = 1; numDirs <= 2; numDirs++) {
      /* This test requires that "current" directory not change after
       * the upgrade. Actually it is ok for those contents to change.
       * For now disabling block verification so that the contents are
       * not changed.
       */
      conf = new Configuration();
      conf.setInt("dfs.datanode.scan.period.hours", -1);
      conf = UpgradeUtilities.initializeStorageStateConf(numDirs, conf);
      String[] nameNodeDirs = conf.getStrings("dfs.name.dir");
      String[] dataNodeDirs = conf.getStrings("dfs.data.dir");

      log("Finalize with existing previous dir", numDirs);
      UpgradeUtilities.createStorageDirs(NAME_NODE, nameNodeDirs, "current");
      UpgradeUtilities.createStorageDirs(NAME_NODE, nameNodeDirs, "previous");
      UpgradeUtilities.createStorageDirs(DATA_NODE, dataNodeDirs, "current");
      UpgradeUtilities.createStorageDirs(DATA_NODE, dataNodeDirs, "previous");
      cluster = new MiniDFSCluster(conf, 1, StartupOption.REGULAR);
      cluster.finalizeCluster(conf);
      checkResult(nameNodeDirs, dataNodeDirs);

      log("Finalize without existing previous dir", numDirs);
      cluster.finalizeCluster(conf);
      checkResult(nameNodeDirs, dataNodeDirs);

      cluster.shutdown();
      UpgradeUtilities.createEmptyDirs(nameNodeDirs);
      UpgradeUtilities.createEmptyDirs(dataNodeDirs);
    } // end numDir loop
  }
Esempio n. 2
0
 /**
  * Verify that the current directory exists and that the previous directory does not exist. Verify
  * that current hasn't been modified by comparing the checksum of all it's containing files with
  * their original checksum. Note that we do not check that previous is removed on the DataNode
  * because its removal is asynchronous therefore we have no reliable way to know when it will
  * happen.
  */
 void checkResult(String[] nameNodeDirs, String[] dataNodeDirs) throws IOException {
   for (int i = 0; i < nameNodeDirs.length; i++) {
     assertTrue(new File(nameNodeDirs[i], "current").isDirectory());
     assertTrue(new File(nameNodeDirs[i], "current/VERSION").isFile());
     assertTrue(new File(nameNodeDirs[i], "current/edits").isFile());
     assertTrue(new File(nameNodeDirs[i], "current/fsimage").isFile());
     assertTrue(new File(nameNodeDirs[i], "current/fstime").isFile());
   }
   for (int i = 0; i < dataNodeDirs.length; i++) {
     assertEquals(
         UpgradeUtilities.checksumContents(DATA_NODE, new File(dataNodeDirs[i], "current")),
         UpgradeUtilities.checksumMasterContents(DATA_NODE));
   }
   for (int i = 0; i < nameNodeDirs.length; i++) {
     assertFalse(new File(nameNodeDirs[i], "previous").isDirectory());
   }
 }