Search in sources :

Example 1 with InconsistentStorageStateException

use of org.apache.hadoop.ozone.common.InconsistentStorageStateException in project ozone by apache.

the class HddsVolume method readVersionFile.

/**
 * Read Version File and update property fields.
 * Get common storage fields.
 * Should be overloaded if additional fields need to be read.
 *
 * @throws IOException on error
 */
private void readVersionFile() throws IOException {
    File versionFile = getVersionFile();
    Properties props = DatanodeVersionFile.readFrom(versionFile);
    if (props.isEmpty()) {
        throw new InconsistentStorageStateException("Version file " + versionFile + " is missing");
    }
    LOG.debug("Reading Version file from disk, {}", versionFile);
    this.storageID = HddsVolumeUtil.getStorageID(props, versionFile);
    this.clusterID = HddsVolumeUtil.getClusterID(props, versionFile, this.clusterID);
    this.datanodeUuid = HddsVolumeUtil.getDatanodeUUID(props, versionFile, this.datanodeUuid);
    this.cTime = HddsVolumeUtil.getCreationTime(props, versionFile);
    this.layoutVersion = HddsVolumeUtil.getLayOutVersion(props, versionFile);
}
Also used : Properties(java.util.Properties) DatanodeVersionFile(org.apache.hadoop.ozone.container.common.helpers.DatanodeVersionFile) File(java.io.File) InconsistentStorageStateException(org.apache.hadoop.ozone.common.InconsistentStorageStateException)

Example 2 with InconsistentStorageStateException

use of org.apache.hadoop.ozone.common.InconsistentStorageStateException in project ozone by apache.

the class GeneratorDatanode method call.

@Override
public Void call() throws Exception {
    init();
    config = createOzoneConfiguration();
    BlockManager blockManager = new BlockManagerImpl(config);
    chunkManager = ChunkManagerFactory.createChunkManager(config, blockManager, null);
    final Collection<String> storageDirs = HddsServerUtil.getDatanodeStorageDirs(config);
    String firstStorageDir = StorageLocation.parse(storageDirs.iterator().next()).getUri().getPath();
    final Path hddsDir = Paths.get(firstStorageDir, "hdds");
    if (!Files.exists(hddsDir)) {
        throw new NoSuchFileException(hddsDir + " doesn't exist. Please start a real cluster to initialize the " + "VERSION descriptors, and re-start this generator after the files" + " are created (but after cluster is stopped).");
    }
    scmId = getScmIdFromStoragePath(hddsDir);
    final File versionFile = new File(firstStorageDir, "hdds/VERSION");
    Properties props = DatanodeVersionFile.readFrom(versionFile);
    if (props.isEmpty()) {
        throw new InconsistentStorageStateException("Version file " + versionFile + " is missing");
    }
    String clusterId = HddsVolumeUtil.getProperty(props, OzoneConsts.CLUSTER_ID, versionFile);
    datanodeId = HddsVolumeUtil.getProperty(props, OzoneConsts.DATANODE_UUID, versionFile);
    volumeSet = new MutableVolumeSet(datanodeId, clusterId, config, null, StorageVolume.VolumeType.DATA_VOLUME, null);
    volumeChoosingPolicy = new RoundRobinVolumeChoosingPolicy();
    final OzoneClientConfig ozoneClientConfig = config.getObject(OzoneClientConfig.class);
    checksum = new Checksum(ozoneClientConfig.getChecksumType(), ozoneClientConfig.getBytesPerChecksum());
    timer = getMetrics().timer("datanode-generator");
    runTests(this::generateData);
    return null;
}
Also used : Path(java.nio.file.Path) RoundRobinVolumeChoosingPolicy(org.apache.hadoop.ozone.container.common.volume.RoundRobinVolumeChoosingPolicy) NoSuchFileException(java.nio.file.NoSuchFileException) OzoneClientConfig(org.apache.hadoop.hdds.scm.OzoneClientConfig) Properties(java.util.Properties) BlockManager(org.apache.hadoop.ozone.container.keyvalue.interfaces.BlockManager) Checksum(org.apache.hadoop.ozone.common.Checksum) MutableVolumeSet(org.apache.hadoop.ozone.container.common.volume.MutableVolumeSet) DatanodeVersionFile(org.apache.hadoop.ozone.container.common.helpers.DatanodeVersionFile) File(java.io.File) BlockManagerImpl(org.apache.hadoop.ozone.container.keyvalue.impl.BlockManagerImpl) InconsistentStorageStateException(org.apache.hadoop.ozone.common.InconsistentStorageStateException)

Example 3 with InconsistentStorageStateException

use of org.apache.hadoop.ozone.common.InconsistentStorageStateException in project ozone by apache.

the class TestDatanodeVersionFile method testVerifyLayOut.

@Test
public void testVerifyLayOut() throws IOException {
    int invalidLayOutVersion = 100;
    dnVersionFile = new DatanodeVersionFile(storageID, clusterID, datanodeUUID, cTime, invalidLayOutVersion);
    dnVersionFile.createVersionFile(versionFile);
    Properties props = dnVersionFile.readFrom(versionFile);
    try {
        HddsVolumeUtil.getLayOutVersion(props, versionFile);
        fail("Test failure in testVerifyLayOut");
    } catch (InconsistentStorageStateException ex) {
        GenericTestUtils.assertExceptionContains("Invalid layOutVersion.", ex);
    }
}
Also used : Properties(java.util.Properties) InconsistentStorageStateException(org.apache.hadoop.ozone.common.InconsistentStorageStateException) Test(org.junit.Test)

Example 4 with InconsistentStorageStateException

use of org.apache.hadoop.ozone.common.InconsistentStorageStateException in project ozone by apache.

the class ContainerCommands method getDatanodeUUID.

private String getDatanodeUUID(String storageDir, ConfigurationSource config) throws IOException {
    final File versionFile = new File(storageDir, "hdds/VERSION");
    Properties props = DatanodeVersionFile.readFrom(versionFile);
    if (props.isEmpty()) {
        throw new InconsistentStorageStateException("Version file " + versionFile + " is missing");
    }
    return HddsVolumeUtil.getProperty(props, OzoneConsts.DATANODE_UUID, versionFile);
}
Also used : Properties(java.util.Properties) DatanodeVersionFile(org.apache.hadoop.ozone.container.common.helpers.DatanodeVersionFile) File(java.io.File) InconsistentStorageStateException(org.apache.hadoop.ozone.common.InconsistentStorageStateException)

Aggregations

Properties (java.util.Properties)4 InconsistentStorageStateException (org.apache.hadoop.ozone.common.InconsistentStorageStateException)4 File (java.io.File)3 DatanodeVersionFile (org.apache.hadoop.ozone.container.common.helpers.DatanodeVersionFile)3 NoSuchFileException (java.nio.file.NoSuchFileException)1 Path (java.nio.file.Path)1 OzoneClientConfig (org.apache.hadoop.hdds.scm.OzoneClientConfig)1 Checksum (org.apache.hadoop.ozone.common.Checksum)1 MutableVolumeSet (org.apache.hadoop.ozone.container.common.volume.MutableVolumeSet)1 RoundRobinVolumeChoosingPolicy (org.apache.hadoop.ozone.container.common.volume.RoundRobinVolumeChoosingPolicy)1 BlockManagerImpl (org.apache.hadoop.ozone.container.keyvalue.impl.BlockManagerImpl)1 BlockManager (org.apache.hadoop.ozone.container.keyvalue.interfaces.BlockManager)1 Test (org.junit.Test)1