This is an automated email from the ASF dual-hosted git repository.
wuzhiguo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git
The following commit(s) were added to refs/heads/main by this push:
new de461bbe BIGTOP-4307: Add task for cluster jdk setup (#130)
de461bbe is described below
commit de461bbe97bf1cfa24ad8c2b244f64192f314fe9
Author: Zhiguo Wu <[email protected]>
AuthorDate: Fri Dec 20 16:43:13 2024 +0800
BIGTOP-4307: Add task for cluster jdk setup (#130)
---
.../agent/executor/SetupJdkCommandExecutor.java | 87 ++++++++++++++++++++++
.../src/main/resources/proto/command.proto | 1 +
.../manager/server/command/job/ClusterAddJob.java | 2 +
.../server/command/stage/SetupJdkStage.java | 58 +++++++++++++++
.../manager/server/command/task/SetupJdkTask.java | 52 +++++++++++++
.../services/hadoop/configuration/mapred-env.xml | 1 -
.../services/hadoop/configuration/yarn-env.xml | 1 -
.../bigtop/3.3.0/services/hbase/metainfo.xml | 1 -
.../stack/bigtop/v3_3_0/flink/FlinkParams.java | 3 +-
.../stack/bigtop/v3_3_0/hadoop/HadoopParams.java | 3 +-
.../stack/bigtop/v3_3_0/hbase/HBaseParams.java | 3 +-
.../stack/bigtop/v3_3_0/kafka/KafkaParams.java | 3 +-
.../stack/bigtop/v3_3_0/solr/SolrParams.java | 3 +-
.../manager/stack/bigtop/v3_3_0/tez/TezParams.java | 3 +-
.../bigtop/v3_3_0/zookeeper/ZookeeperParams.java | 3 +-
.../manager/stack/core/spi/param/BaseParams.java | 6 ++
.../manager/stack/core/spi/param/Params.java | 4 +-
.../manager/stack/infra/param/InfraParams.java | 26 ++++---
.../infra/v1_0_0/mysql/MySQLServerScript.java | 18 ++++-
19 files changed, 248 insertions(+), 30 deletions(-)
diff --git
a/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/executor/SetupJdkCommandExecutor.java
b/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/executor/SetupJdkCommandExecutor.java
new file mode 100644
index 00000000..d649d784
--- /dev/null
+++
b/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/executor/SetupJdkCommandExecutor.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.agent.executor;
+
+import org.apache.bigtop.manager.common.constants.Constants;
+import org.apache.bigtop.manager.common.message.entity.pojo.ClusterInfo;
+import org.apache.bigtop.manager.common.message.entity.pojo.PackageInfo;
+import org.apache.bigtop.manager.common.message.entity.pojo.RepoInfo;
+import org.apache.bigtop.manager.common.utils.os.OSDetection;
+import org.apache.bigtop.manager.grpc.generated.CommandType;
+import org.apache.bigtop.manager.stack.core.utils.LocalSettings;
+import org.apache.bigtop.manager.stack.core.utils.TarballUtils;
+import org.apache.bigtop.manager.stack.core.utils.linux.LinuxFileUtils;
+
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.MessageFormat;
+
+@Slf4j
+@Component
+@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+public class SetupJdkCommandExecutor extends AbstractCommandExecutor {
+
+ @Override
+ public CommandType getCommandType() {
+ return CommandType.SETUP_JDK;
+ }
+
+ /**
+ * TODO JDK info currently is hardcoded, need to improve and make it
configurable.
+ */
+ @Override
+ public void doExecute() {
+ log.info("Setting up cluster jdk...");
+ String arch = OSDetection.getArch();
+ String pkgName = getPkgName(arch);
+ String checksum = getChecksum(arch);
+ PackageInfo packageInfo = new PackageInfo(pkgName, checksum);
+ ClusterInfo clusterInfo = LocalSettings.cluster();
+ RepoInfo repoInfo = LocalSettings.repos().stream()
+ .filter(r -> arch.equals(r.getArch()) && r.getType() == 2)
+ .findFirst()
+ .orElseThrow(() -> new RuntimeException(
+ "Cannot find repo for os: [" + OSDetection.getOS() +
"] and arch: [" + arch + "]"));
+ String toolsHome = clusterInfo.getRootDir() + "/tools";
+ String user = System.getProperty("user.name");
+ LinuxFileUtils.createDirectories(toolsHome, user, user,
Constants.PERMISSION_755, true);
+
+ String jdkHome = toolsHome + "/jdk";
+ TarballUtils.installPackage(repoInfo.getBaseUrl(), toolsHome, jdkHome,
packageInfo, 1);
+ LinuxFileUtils.createDirectories(jdkHome, user, user,
Constants.PERMISSION_755, true);
+ }
+
+ private String getPkgName(String arch) {
+ String replacedArch = arch.equals("x86_64") ? "x64" : arch;
+ replacedArch = replacedArch.equals("arm64") ? "aarch64" : arch;
+ return MessageFormat.format("jdk-8u431-linux-{0}.tar.gz",
replacedArch);
+ }
+
+ private String getChecksum(String arch) {
+ return switch (arch) {
+ case "x64", "x86_64" ->
"SHA-256:b396978a716b7d23ccccabfe5c47c3b75d2434d7f8f7af690bc648172382720d";
+ case "arm64", "aarch64" ->
"SHA-256:e68d3e31ffcf7f05a4de65d04974843073bdff238bb6524adb272de9e616be7c";
+ default -> throw new RuntimeException("Unknown arch for jdk: " +
arch);
+ };
+ }
+}
diff --git a/bigtop-manager-grpc/src/main/resources/proto/command.proto
b/bigtop-manager-grpc/src/main/resources/proto/command.proto
index e1c1b747..2caa03e3 100644
--- a/bigtop-manager-grpc/src/main/resources/proto/command.proto
+++ b/bigtop-manager-grpc/src/main/resources/proto/command.proto
@@ -30,6 +30,7 @@ enum CommandType {
COMPONENT = 0;
HOST_CHECK = 1;
UPDATE_CACHE_FILES = 2;
+ SETUP_JDK = 3;
}
message CommandRequest {
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterAddJob.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterAddJob.java
index 99f1e55b..cad25f8f 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterAddJob.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterAddJob.java
@@ -25,6 +25,7 @@ import org.apache.bigtop.manager.dao.po.TaskPO;
import org.apache.bigtop.manager.dao.repository.HostDao;
import org.apache.bigtop.manager.server.command.stage.CacheFileUpdateStage;
import org.apache.bigtop.manager.server.command.stage.HostCheckStage;
+import org.apache.bigtop.manager.server.command.stage.SetupJdkStage;
import org.apache.bigtop.manager.server.command.stage.Stage;
import org.apache.bigtop.manager.server.command.stage.StageContext;
import org.apache.bigtop.manager.server.command.task.Task;
@@ -57,6 +58,7 @@ public class ClusterAddJob extends AbstractJob {
StageContext stageContext =
StageContext.fromCommandDTO(jobContext.getCommandDTO());
stages.add(new HostCheckStage(stageContext));
stages.add(new CacheFileUpdateStage(stageContext));
+ stages.add(new SetupJdkStage(stageContext));
}
@Override
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/SetupJdkStage.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/SetupJdkStage.java
new file mode 100644
index 00000000..023a5bd9
--- /dev/null
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/SetupJdkStage.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.server.command.stage;
+
+import org.apache.bigtop.manager.server.command.task.SetupJdkTask;
+import org.apache.bigtop.manager.server.command.task.Task;
+import org.apache.bigtop.manager.server.command.task.TaskContext;
+import org.apache.bigtop.manager.server.model.dto.HostDTO;
+
+public class SetupJdkStage extends AbstractStage {
+
+ public SetupJdkStage(StageContext stageContext) {
+ super(stageContext);
+ }
+
+ @Override
+ protected void injectBeans() {
+ super.injectBeans();
+ }
+
+ @Override
+ protected void beforeCreateTasks() {}
+
+ @Override
+ protected Task createTask(HostDTO hostDTO) {
+ TaskContext taskContext = new TaskContext();
+ taskContext.setHostDTO(hostDTO);
+ taskContext.setClusterId(stageContext.getClusterId());
+ taskContext.setClusterName(stageContext.getClusterName());
+ taskContext.setServiceName("cluster");
+ taskContext.setServiceUser("root");
+ taskContext.setComponentName("agent");
+ taskContext.setComponentDisplayName("Agent");
+
+ return new SetupJdkTask(taskContext);
+ }
+
+ @Override
+ public String getName() {
+ return "Setup JDK";
+ }
+}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/SetupJdkTask.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/SetupJdkTask.java
new file mode 100644
index 00000000..179171bd
--- /dev/null
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/SetupJdkTask.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.server.command.task;
+
+import org.apache.bigtop.manager.common.enums.Command;
+import org.apache.bigtop.manager.grpc.generated.CommandRequest;
+import org.apache.bigtop.manager.grpc.generated.CommandType;
+
+public class SetupJdkTask extends AbstractTask {
+
+ public SetupJdkTask(TaskContext taskContext) {
+ super(taskContext);
+ }
+
+ @Override
+ protected Command getCommand() {
+ return Command.CUSTOM;
+ }
+
+ @Override
+ protected String getCustomCommand() {
+ return "setup_jdk";
+ }
+
+ @Override
+ protected CommandRequest getCommandRequest() {
+ CommandRequest.Builder builder = CommandRequest.newBuilder();
+ builder.setType(CommandType.SETUP_JDK);
+ return builder.build();
+ }
+
+ @Override
+ public String getName() {
+ return "Setup jdk for " + taskContext.getHostDTO().getHostname();
+ }
+}
diff --git
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hadoop/configuration/mapred-env.xml
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hadoop/configuration/mapred-env.xml
index 99be3204..095de495 100644
---
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hadoop/configuration/mapred-env.xml
+++
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hadoop/configuration/mapred-env.xml
@@ -39,7 +39,6 @@ export HADOOP_HOME=${hadoop_home}
# Could be enabled from deployment option if necessary
export MAPRED_HISTORYSERVER_OPTS="$MAPRED_HISTORYSERVER_OPTS
-Dhadoop.log.dir=$HADOOP_LOG_DIR"
export HADOOP_LIBEXEC_DIR=${hadoop_libexec_dir}
-export HADOOP_OPTS="$HADOOP_OPTS --add-opens java.base/java.lang=ALL-UNNAMED"
export JAVA_HOME=${java_home}
]]>
</value>
diff --git
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hadoop/configuration/yarn-env.xml
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hadoop/configuration/yarn-env.xml
index 176f18bd..2c7627ca 100644
---
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hadoop/configuration/yarn-env.xml
+++
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hadoop/configuration/yarn-env.xml
@@ -166,7 +166,6 @@ HADOOP_OPTS="$HADOOP_OPTS
-Djava.library.path=$JAVA_LIBRARY_PATH"
fi
HADOOP_OPTS="$HADOOP_OPTS -Dyarn.policy.file=$YARN_POLICYFILE"
</#noparse>
-HADOOP_OPTS="$HADOOP_OPTS --add-opens java.base/java.lang=ALL-UNNAMED"
]]>
</value>
<attrs>
diff --git
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hbase/metainfo.xml
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hbase/metainfo.xml
index 3c03ab67..13e94521 100644
---
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hbase/metainfo.xml
+++
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hbase/metainfo.xml
@@ -77,7 +77,6 @@
</package-specifics>
<required-services>
- <service>zookeeper</service>
<service>hadoop</service>
</required-services>
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/flink/FlinkParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/flink/FlinkParams.java
index f7c04857..ba49a582 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/flink/FlinkParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/flink/FlinkParams.java
@@ -19,7 +19,6 @@
package org.apache.bigtop.manager.stack.bigtop.v3_3_0.flink;
import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
-import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.stack.bigtop.param.BigtopParams;
import org.apache.bigtop.manager.stack.core.annotations.GlobalParams;
import org.apache.bigtop.manager.stack.core.spi.param.Params;
@@ -57,7 +56,7 @@ public class FlinkParams extends BigtopParams {
super(commandPayload);
globalParamsMap.put("flink_user", user());
globalParamsMap.put("flink_group", group());
- globalParamsMap.put("java_home", Environments.getJavaHome());
+ globalParamsMap.put("java_home", javaHome());
globalParamsMap.put("hadoop_home", hadoopHome());
globalParamsMap.put("hadoop_conf_dir", hadoopConfDir());
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hadoop/HadoopParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hadoop/HadoopParams.java
index 142d28af..8e344d75 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hadoop/HadoopParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hadoop/HadoopParams.java
@@ -19,7 +19,6 @@
package org.apache.bigtop.manager.stack.bigtop.v3_3_0.hadoop;
import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
-import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.stack.bigtop.param.BigtopParams;
import org.apache.bigtop.manager.stack.core.annotations.GlobalParams;
import org.apache.bigtop.manager.stack.core.spi.param.Params;
@@ -72,7 +71,7 @@ public class HadoopParams extends BigtopParams {
globalParamsMap.put("hdfs_user", user());
globalParamsMap.put("hdfs_group", group());
globalParamsMap.put("datanode_hosts", LocalSettings.hosts("datanode"));
- globalParamsMap.put("java_home", Environments.getJavaHome());
+ globalParamsMap.put("java_home", javaHome());
globalParamsMap.put("hadoop_home", serviceHome());
globalParamsMap.put("hadoop_conf_dir", confDir());
globalParamsMap.put("hadoop_libexec_dir", serviceHome() + "/libexec");
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hbase/HBaseParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hbase/HBaseParams.java
index 630cdd01..887b05c4 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hbase/HBaseParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hbase/HBaseParams.java
@@ -19,7 +19,6 @@
package org.apache.bigtop.manager.stack.bigtop.v3_3_0.hbase;
import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
-import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.stack.bigtop.param.BigtopParams;
import org.apache.bigtop.manager.stack.core.annotations.GlobalParams;
import org.apache.bigtop.manager.stack.core.spi.param.Params;
@@ -51,7 +50,7 @@ public class HBaseParams extends BigtopParams {
public HBaseParams(CommandPayload commandPayload) {
super(commandPayload);
- globalParamsMap.put("java_home", Environments.getJavaHome());
+ globalParamsMap.put("java_home", javaHome());
globalParamsMap.put("hbase_home", serviceHome());
globalParamsMap.put("hbase_conf_dir", confDir());
globalParamsMap.put("security_enabled", false);
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/kafka/KafkaParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/kafka/KafkaParams.java
index ce126a59..397ed40c 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/kafka/KafkaParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/kafka/KafkaParams.java
@@ -19,7 +19,6 @@
package org.apache.bigtop.manager.stack.bigtop.v3_3_0.kafka;
import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
-import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.stack.bigtop.param.BigtopParams;
import org.apache.bigtop.manager.stack.core.annotations.GlobalParams;
import org.apache.bigtop.manager.stack.core.spi.param.Params;
@@ -47,7 +46,7 @@ public class KafkaParams extends BigtopParams {
super(commandPayload);
globalParamsMap.put("kafka_user", user());
globalParamsMap.put("kafka_group", group());
- globalParamsMap.put("java_home", Environments.getJavaHome());
+ globalParamsMap.put("java_home", javaHome());
globalParamsMap.put("kafka_conf_dir", confDir());
globalParamsMap.put("security_enabled", false);
}
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/solr/SolrParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/solr/SolrParams.java
index 1beb8653..5b6df94a 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/solr/SolrParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/solr/SolrParams.java
@@ -19,7 +19,6 @@
package org.apache.bigtop.manager.stack.bigtop.v3_3_0.solr;
import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
-import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.stack.bigtop.param.BigtopParams;
import org.apache.bigtop.manager.stack.core.annotations.GlobalParams;
import org.apache.bigtop.manager.stack.core.spi.param.Params;
@@ -51,7 +50,7 @@ public class SolrParams extends BigtopParams {
public SolrParams(CommandPayload commandPayload) {
super(commandPayload);
- globalParamsMap.put("java_home", Environments.getJavaHome());
+ globalParamsMap.put("java_home", javaHome());
globalParamsMap.put("solr_home", serviceHome());
globalParamsMap.put("security_enabled", false);
globalParamsMap.put("solr_pid_file", solrPidFile);
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/tez/TezParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/tez/TezParams.java
index 3d2c8784..0586507e 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/tez/TezParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/tez/TezParams.java
@@ -19,7 +19,6 @@
package org.apache.bigtop.manager.stack.bigtop.v3_3_0.tez;
import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
-import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.stack.bigtop.param.BigtopParams;
import org.apache.bigtop.manager.stack.core.annotations.GlobalParams;
import org.apache.bigtop.manager.stack.core.spi.param.Params;
@@ -48,7 +47,7 @@ public class TezParams extends BigtopParams {
super(commandPayload);
globalParamsMap.put("tez_user", user());
globalParamsMap.put("tez_group", group());
- globalParamsMap.put("java_home", Environments.getJavaHome());
+ globalParamsMap.put("java_home", javaHome());
globalParamsMap.put("hadoop_home", hadoopHome());
globalParamsMap.put("hadoop_conf_dir", hadoopConfDir());
globalParamsMap.put("tez_home", serviceHome());
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/zookeeper/ZookeeperParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/zookeeper/ZookeeperParams.java
index c7f82b3b..85497397 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/zookeeper/ZookeeperParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/zookeeper/ZookeeperParams.java
@@ -19,7 +19,6 @@
package org.apache.bigtop.manager.stack.bigtop.v3_3_0.zookeeper;
import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
-import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.stack.bigtop.param.BigtopParams;
import org.apache.bigtop.manager.stack.core.annotations.GlobalParams;
import org.apache.bigtop.manager.stack.core.spi.param.Params;
@@ -44,7 +43,7 @@ public class ZookeeperParams extends BigtopParams {
public ZookeeperParams(CommandPayload commandPayload) {
super(commandPayload);
- globalParamsMap.put("java_home", Environments.getJavaHome());
+ globalParamsMap.put("java_home", javaHome());
globalParamsMap.put("zookeeper_home", serviceHome());
globalParamsMap.put("security_enabled", false);
globalParamsMap.put("zookeeper_pid_file", zookeeperPidFile);
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParams.java
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParams.java
index 58f761ff..c064f502 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParams.java
@@ -116,6 +116,12 @@ public abstract class BaseParams implements Params {
return packageInfoList;
}
+ @Override
+ public String javaHome() {
+ String root = LocalSettings.cluster().getRootDir();
+ return MessageFormat.format("{0}/tools/jdk", root);
+ }
+
@Override
public String stackHome() {
String root = LocalSettings.cluster().getRootDir();
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/Params.java
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/Params.java
index cc60f35b..2aa7dfef 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/Params.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/Params.java
@@ -36,10 +36,12 @@ public interface Params extends PrioritySPI {
List<PackageInfo> packages();
- String serviceHome();
+ String javaHome();
String stackHome();
+ String serviceHome();
+
String getServiceName();
@Override
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/param/InfraParams.java
b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/param/InfraParams.java
index a5bf3798..94934abb 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/param/InfraParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/param/InfraParams.java
@@ -19,8 +19,11 @@
package org.apache.bigtop.manager.stack.infra.param;
import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
+import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.stack.core.spi.param.BaseParams;
+import org.apache.commons.lang3.SystemUtils;
+
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -52,15 +55,20 @@ public abstract class InfraParams extends BaseParams {
@Override
public String stackHome() {
// Parent path of agent dir, which is bigtop-manager-agent/../
- String parentPath = new File(InfraParams.class
- .getProtectionDomain()
- .getCodeSource()
- .getLocation()
- .getPath())
- .getParentFile()
- .getParentFile()
- .getParentFile()
- .getPath();
+ String parentPath;
+ if (Environments.isDevMode()) {
+ return SystemUtils.getUserDir().getParentFile().getPath();
+ } else {
+ parentPath = new File(InfraParams.class
+ .getProtectionDomain()
+ .getCodeSource()
+ .getLocation()
+ .getPath())
+ .getParentFile()
+ .getParentFile()
+ .getParentFile()
+ .getPath();
+ }
return parentPath + "/infras";
}
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLServerScript.java
b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLServerScript.java
index bc8724c1..7cfcdbd7 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLServerScript.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLServerScript.java
@@ -46,15 +46,27 @@ public class MySQLServerScript extends AbstractServerScript
{
// Initialize server after added
log.info("Initializing MySQL root user");
+ MySQLParams mysqlParams = (MySQLParams) params;
String user = params.user();
String binDir = params.serviceHome() + "/bin";
+ String password = mysqlParams.getRootPassword();
configure(params);
runCommand(binDir + "/mysqld --initialize-insecure", user);
start(params);
- runCommand(binDir + "/mysql -u root -e \"ALTER USER 'root'@'localhost'
IDENTIFIED BY 'root';\"", user);
- runCommand(binDir + "/mysql -u root -p'root' -e\"CREATE USER
'root'@'%' IDENTIFIED BY 'root';\"", user);
runCommand(
- binDir + "/mysql -u root -p'root' -e \"GRANT ALL PRIVILEGES ON
*.* TO 'root'@'%' WITH GRANT OPTION;\"",
+ MessageFormat.format(
+ "{0}/mysql -u root -e \"ALTER USER 'root'@'localhost'
IDENTIFIED BY ''{1}'';\"",
+ binDir, password),
+ user);
+ runCommand(
+ MessageFormat.format(
+ "{0}/mysql -u root -p''{1}'' -e \"CREATE USER
''root''@''%'' IDENTIFIED BY ''{1}'';\"",
+ binDir, password),
+ user);
+ runCommand(
+ MessageFormat.format(
+ "{0}/mysql -u root -p''{1}'' -e \"GRANT ALL PRIVILEGES
ON *.* TO ''root''@''%'' WITH GRANT OPTION;\"",
+ binDir, password),
user);
stop(params);