BIGTOP-4508: Fix datanode and nodemanager unable to create multi disk directories (#280)
diff --git a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hadoop/HadoopSetup.java b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hadoop/HadoopSetup.java
index a15dcf7..88375ac 100644
--- a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hadoop/HadoopSetup.java
+++ b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hadoop/HadoopSetup.java
@@ -82,22 +82,30 @@
hadoopGroup,
Constants.PERMISSION_755,
true);
- LinuxFileUtils.createDirectories(
- hadoopParams.getDfsDataDir(), hadoopUser, hadoopGroup, Constants.PERMISSION_755, true);
+ if (StringUtils.isNotBlank(hadoopParams.getDfsDataDir())) {
+ String[] dfsDataDirs = hadoopParams.getDfsDataDir().split("\\s*,\\s*");
+ for (String dir : dfsDataDirs) {
+ LinuxFileUtils.createDirectories(
+ dir, hadoopUser, hadoopGroup, Constants.PERMISSION_755, true);
+ }
+ }
}
case "nodemanager": {
- LinuxFileUtils.createDirectories(
- hadoopParams.getNodeManagerLogDir(),
- hadoopUser,
- hadoopGroup,
- Constants.PERMISSION_755,
- true);
- LinuxFileUtils.createDirectories(
- hadoopParams.getNodeManagerLocalDir(),
- hadoopUser,
- hadoopGroup,
- Constants.PERMISSION_755,
- true);
+ if (StringUtils.isNotBlank(hadoopParams.getNodeManagerLogDir())) {
+ String[] nmLogDirs = hadoopParams.getNodeManagerLogDir().split("\\s*,\\s*");
+ for (String dir : nmLogDirs) {
+ LinuxFileUtils.createDirectories(
+ dir, hadoopUser, hadoopGroup, Constants.PERMISSION_755, true);
+ }
+ }
+ if (StringUtils.isNotBlank(hadoopParams.getNodeManagerLocalDir())) {
+ String[] nmLocalDirs =
+ hadoopParams.getNodeManagerLocalDir().split("\\s*,\\s*");
+ for (String dir : nmLocalDirs) {
+ LinuxFileUtils.createDirectories(
+ dir, hadoopUser, hadoopGroup, Constants.PERMISSION_755, true);
+ }
+ }
}
}
}