diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/meta/VolumeDescriptor.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/meta/VolumeDescriptor.java index 2cfc7ac7f7d..c0031bae272 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/meta/VolumeDescriptor.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/meta/VolumeDescriptor.java @@ -262,16 +262,7 @@ public class VolumeDescriptor { return false; } } - for (String containerKey : containerMap.keySet()) { - if (!other.containerMap.containsKey(containerKey)) { - return false; - } - if (!containerMap.get(containerKey).equals( - other.containerMap.get(containerKey))) { - return false; - } - } - return true; + return containerMap.equals(other.containerMap); } return false; } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/container/common/impl/ContainerManagerImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/container/common/impl/ContainerManagerImpl.java index 85e8b083137..65e0e7c9f5a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/container/common/impl/ContainerManagerImpl.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/container/common/impl/ContainerManagerImpl.java @@ -310,6 +310,12 @@ public class ContainerManagerImpl implements ContainerManager { Path metadataPath = null; Path location = (!overwrite) ? locationManager.getContainerPath(): Paths.get(containerData.getContainerPath()).getParent(); + if (location == null) { + throw new StorageContainerException( + "Failed to get container file path.", + CONTAINER_INTERNAL_ERROR); + } + File containerFile = ContainerUtils.getContainerFile(containerData, location); File metadataFile = ContainerUtils.getMetadataFile(containerData, diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java index e10274b3724..c570225b00f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java @@ -104,7 +104,6 @@ public class BlockManagerImpl implements BlockManager { } Options options = new Options(); options.cacheSize(this.cacheSize * OzoneConsts.MB); - options.createIfMissing(); // Write the block key to container name mapping. File blockContainerDbPath = new File(scmMetaDataDir, BLOCK_DB); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SQLCLI.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SQLCLI.java index 00e78149683..23eb1f3e819 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SQLCLI.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SQLCLI.java @@ -156,8 +156,12 @@ public class SQLCLI extends Configured implements Tool { LOG.error("Error processing output path {}", outPath); return -1; } - if (!Files.exists(outPath.getParent())) { - Files.createDirectories(outPath.getParent()); + + Path outParentPath = outPath.getParent(); + if (outParentPath != null) { + if (!Files.exists(outParentPath)) { + Files.createDirectories(outParentPath); + } } LOG.info("Parent path [{}] db name [{}]", parentPath, dbName); if (dbName.toString().equals(CONTAINER_DB)) { diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java index 3b437e9f5b6..cf0076c97f1 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java @@ -87,7 +87,6 @@ public class ContainerMapping implements Mapping { } Options options = new Options(); options.cacheSize(this.cacheSize * OzoneConsts.MB); - options.createIfMissing(); // Write the container name to pipeline mapping. File containerDBPath = new File(scmMetaDataDir, CONTAINER_DB); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/node/SCMNodePoolManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/node/SCMNodePoolManager.java index 5438d2c7e77..3ec5c1c86d7 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/node/SCMNodePoolManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/node/SCMNodePoolManager.java @@ -89,7 +89,6 @@ public final class SCMNodePoolManager implements NodePoolManager { } Options options = new Options(); options.cacheSize(cacheSize * OzoneConsts.MB); - options.createIfMissing(); File nodePoolDBPath = new File(scmMetaDataDir, NODEPOOL_DB); nodePoolStore = new LevelDBStore(nodePoolDBPath, options);