Search in sources :

Example 1 with StorageLocationChecker

use of org.apache.hadoop.hdfs.server.datanode.checker.StorageLocationChecker in project hadoop by apache.

the class DataNode method makeInstance.

/**
   * Make an instance of DataNode after ensuring that at least one of the
   * given data directories (and their parent directories, if necessary)
   * can be created.
   * @param dataDirs List of directories, where the new DataNode instance should
   * keep its files.
   * @param conf Configuration instance to use.
   * @param resources Secure resources needed to run under Kerberos
   * @return DataNode instance for given list of data dirs and conf, or null if
   * no directory from this directory list can be created.
   * @throws IOException
   */
static DataNode makeInstance(Collection<StorageLocation> dataDirs, Configuration conf, SecureResources resources) throws IOException {
    List<StorageLocation> locations;
    StorageLocationChecker storageLocationChecker = new StorageLocationChecker(conf, new Timer());
    try {
        locations = storageLocationChecker.check(conf, dataDirs);
    } catch (InterruptedException ie) {
        throw new IOException("Failed to instantiate DataNode", ie);
    }
    DefaultMetricsSystem.initialize("DataNode");
    assert locations.size() > 0 : "number of data directories should be > 0";
    return new DataNode(conf, locations, storageLocationChecker, resources);
}
Also used : Timer(org.apache.hadoop.util.Timer) StorageLocationChecker(org.apache.hadoop.hdfs.server.datanode.checker.StorageLocationChecker) IOException(java.io.IOException)

Aggregations

IOException (java.io.IOException)1 StorageLocationChecker (org.apache.hadoop.hdfs.server.datanode.checker.StorageLocationChecker)1 Timer (org.apache.hadoop.util.Timer)1