HDFS-12631. Ozone: ContainerStorageLocation#scmUsage should count only SCM usage. Contributed by Xiaoyu Yao.
This commit is contained in:
parent
d19b4c8763
commit
5ed663b32f
|
@ -25,6 +25,7 @@ import org.apache.hadoop.fs.GetSpaceUsed;
|
|||
import org.apache.hadoop.hdfs.server.datanode.StorageLocation;
|
||||
import org.apache.hadoop.hdfs.server.protocol.DatanodeStorage;
|
||||
import org.apache.hadoop.io.IOUtils;
|
||||
import org.apache.hadoop.ozone.OzoneConsts;
|
||||
import org.apache.hadoop.util.ShutdownHookManager;
|
||||
import org.apache.hadoop.util.Time;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -37,6 +38,7 @@ import java.io.OutputStreamWriter;
|
|||
import java.io.FileOutputStream;
|
||||
import java.net.URI;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Scanner;
|
||||
|
||||
import static org.apache.hadoop.util.RunJar.SHUTDOWN_HOOK_PRIORITY;
|
||||
|
@ -62,7 +64,17 @@ public class ContainerStorageLocation {
|
|||
throws IOException {
|
||||
this.dataLocation = dataLoc;
|
||||
this.storageUuId = DatanodeStorage.generateUuid();
|
||||
File dataDir = new File(dataLoc.getNormalizedUri().getPath());
|
||||
File dataDir = Paths.get(dataLoc.getNormalizedUri()).resolve(
|
||||
OzoneConsts.CONTAINER_PREFIX).toFile();
|
||||
// Initialize container data root if it does not exist as required by DF/DU
|
||||
if (!dataDir.exists()) {
|
||||
if (!dataDir.mkdirs()) {
|
||||
LOG.error("Unable to create the container storage location at : {}",
|
||||
dataDir);
|
||||
throw new IllegalArgumentException("Unable to create the container" +
|
||||
" storage location at : " + dataDir);
|
||||
}
|
||||
}
|
||||
scmUsedFile = new File(dataDir, DU_CACHE_FILE);
|
||||
// get overall disk usage
|
||||
this.usage = new DF(dataDir, conf);
|
||||
|
|
Loading…
Reference in New Issue