Java Code Examples for org.apache.hadoop.hdfs.server.common.Storage#writeProperties()

The following examples show how to use org.apache.hadoop.hdfs.server.common.Storage#writeProperties() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: NNUpgradeUtil.java    From hadoop with Apache License 2.0 6 votes vote down vote up
/**
 * Perform the upgrade of the storage dir to the given storage info. The new
 * storage info is written into the current directory, and the previous.tmp
 * directory is renamed to previous.
 * 
 * @param sd the storage directory to upgrade
 * @param storage info about the new upgraded versions.
 * @throws IOException in the event of error
 */
public static void doUpgrade(StorageDirectory sd, Storage storage)
    throws IOException {
  LOG.info("Performing upgrade of storage directory " + sd.getRoot());
  try {
    // Write the version file, since saveFsImage only makes the
    // fsimage_<txid>, and the directory is otherwise empty.
    storage.writeProperties(sd);

    File prevDir = sd.getPreviousDir();
    File tmpDir = sd.getPreviousTmp();
    Preconditions.checkState(!prevDir.exists(),
        "previous directory must not exist for upgrade.");
    Preconditions.checkState(tmpDir.exists(),
        "previous.tmp directory must exist for upgrade.");

    // rename tmp to previous
    NNStorage.rename(tmpDir, prevDir);
  } catch (IOException ioe) {
    LOG.error("Unable to rename temp to previous for " + sd.getRoot(), ioe);
    throw ioe;
  }
}
 
Example 2
Source File: NNUpgradeUtil.java    From big-c with Apache License 2.0 6 votes vote down vote up
/**
 * Perform the upgrade of the storage dir to the given storage info. The new
 * storage info is written into the current directory, and the previous.tmp
 * directory is renamed to previous.
 * 
 * @param sd the storage directory to upgrade
 * @param storage info about the new upgraded versions.
 * @throws IOException in the event of error
 */
public static void doUpgrade(StorageDirectory sd, Storage storage)
    throws IOException {
  LOG.info("Performing upgrade of storage directory " + sd.getRoot());
  try {
    // Write the version file, since saveFsImage only makes the
    // fsimage_<txid>, and the directory is otherwise empty.
    storage.writeProperties(sd);

    File prevDir = sd.getPreviousDir();
    File tmpDir = sd.getPreviousTmp();
    Preconditions.checkState(!prevDir.exists(),
        "previous directory must not exist for upgrade.");
    Preconditions.checkState(tmpDir.exists(),
        "previous.tmp directory must exist for upgrade.");

    // rename tmp to previous
    NNStorage.rename(tmpDir, prevDir);
  } catch (IOException ioe) {
    LOG.error("Unable to rename temp to previous for " + sd.getRoot(), ioe);
    throw ioe;
  }
}
 
Example 3
Source File: UpgradeUtilities.java    From hadoop with Apache License 2.0 5 votes vote down vote up
/**
 * Create a <code>version</code> file for namenode inside the specified parent
 * directory.  If such a file already exists, it will be overwritten.
 * The given version string will be written to the file as the layout
 * version. None of the parameters may be null.
 *
 * @param parent directory where namenode VERSION file is stored
 * @param version StorageInfo to create VERSION file from
 * @param bpid Block pool Id
 *
 * @return the created version file
 */
public static File[] createNameNodeVersionFile(Configuration conf,
    File[] parent, StorageInfo version, String bpid) throws IOException {
  Storage storage = new NNStorage(conf, 
                            Collections.<URI>emptyList(), 
                            Collections.<URI>emptyList());
  storage.setStorageInfo(version);
  File[] versionFiles = new File[parent.length];
  for (int i = 0; i < parent.length; i++) {
    versionFiles[i] = new File(parent[i], "VERSION");
    StorageDirectory sd = new StorageDirectory(parent[i].getParentFile());
    storage.writeProperties(versionFiles[i], sd);
  }
  return versionFiles;
}
 
Example 4
Source File: UpgradeUtilities.java    From big-c with Apache License 2.0 5 votes vote down vote up
/**
 * Create a <code>version</code> file for namenode inside the specified parent
 * directory.  If such a file already exists, it will be overwritten.
 * The given version string will be written to the file as the layout
 * version. None of the parameters may be null.
 *
 * @param parent directory where namenode VERSION file is stored
 * @param version StorageInfo to create VERSION file from
 * @param bpid Block pool Id
 *
 * @return the created version file
 */
public static File[] createNameNodeVersionFile(Configuration conf,
    File[] parent, StorageInfo version, String bpid) throws IOException {
  Storage storage = new NNStorage(conf, 
                            Collections.<URI>emptyList(), 
                            Collections.<URI>emptyList());
  storage.setStorageInfo(version);
  File[] versionFiles = new File[parent.length];
  for (int i = 0; i < parent.length; i++) {
    versionFiles[i] = new File(parent[i], "VERSION");
    StorageDirectory sd = new StorageDirectory(parent[i].getParentFile());
    storage.writeProperties(versionFiles[i], sd);
  }
  return versionFiles;
}