From 67021cae290724b017ab2bbf6dc37efb6982ec85 Mon Sep 17 00:00:00 2001 From: dyw770 Date: Mon, 9 Mar 2026 21:32:17 +0800 Subject: [PATCH 1/4] feat: add trino service deploy --- .../main/resources/ddl/MySQL-DDL-CREATE.sql | 1 + .../resources/ddl/PostgreSQL-DDL-CREATE.sql | 1 + .../trino/configuration/config.properties.xml | 38 ++++++ .../trino/configuration/hive.properties.xml | 43 ++++++ .../trino/configuration/jvm.config.xml | 67 ++++++++++ .../trino/configuration/node.properties.xml | 38 ++++++ .../extra/1.0.0/services/trino/metainfo.xml | 69 ++++++++++ .../extra/1.0.0/services/trino/order.json | 3 + .../stack/core/tarball/TarballExtractor.java | 30 +++-- .../v1_0_0/trino/AbstractTrinoScript.java | 96 ++++++++++++++ .../extra/v1_0_0/trino/TrinoClientScript.java | 70 ++++++++++ .../v1_0_0/trino/TrinoCoordinatorScript.java | 33 +++++ .../stack/extra/v1_0_0/trino/TrinoParams.java | 100 ++++++++++++++ .../stack/extra/v1_0_0/trino/TrinoSetup.java | 124 ++++++++++++++++++ .../extra/v1_0_0/trino/TrinoWorkerScript.java | 33 +++++ bigtop-manager-ui/src/assets/images/trino.png | Bin 0 -> 11022 bytes 16 files changed, 736 insertions(+), 10 deletions(-) create mode 100644 bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/config.properties.xml create mode 100644 bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/hive.properties.xml create mode 100644 bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/jvm.config.xml create mode 100644 bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/node.properties.xml create mode 100644 bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/metainfo.xml create mode 100644 bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/order.json create mode 100644 bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java create mode 100644 bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoClientScript.java create mode 100644 bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoCoordinatorScript.java create mode 100644 bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoParams.java create mode 100644 bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoSetup.java create mode 100644 bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoWorkerScript.java create mode 100644 bigtop-manager-ui/src/assets/images/trino.png diff --git a/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql b/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql index aeab69311..80c672fee 100644 --- a/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql +++ b/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql @@ -348,6 +348,7 @@ VALUES ('agent', 'x86_64,aarch64', 'http://your-repo/', 'bigtop-manager-agent.tar.gz', null, 2), ('jdk8', 'x86_64', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_x64_linux_hotspot_8u452b09.tar.gz', 'SHA-256:9448308a21841960a591b47927cf2d44fdc4c0533a5f8111a4b243a6bafb5d27', 2), ('jdk8', 'aarch64', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_aarch64_linux_hotspot_8u452b09.tar.gz', 'SHA-256:d8a1aecea0913b7a1e0d737ba6f7ea99059b3f6fd17813d4a24e8b3fc3aee278', 2), +('jdk25', 'x86_64', 'https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/', 'OpenJDK25U-jdk_x64_linux_hotspot_25.0.2_10.tar.gz', 'sha256:987387933b64b9833846dee373b640440d3e1fd48a04804ec01a6dbf718e8ab8', 2), ('mysql-connector-j', 'x86_64,aarch64', 'https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/', 'mysql-connector-j-8.0.33.jar', 'SHA-256:e2a3b2fc726a1ac64e998585db86b30fa8bf3f706195b78bb77c5f99bf877bd9', 2); diff --git a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql index 35feb63ff..4ef1c8665 100644 --- a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql +++ b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql @@ -361,6 +361,7 @@ VALUES ('agent', 'x86_64,aarch64', 'http://your-repo/', 'bigtop-manager-agent.tar.gz', null, 2), ('jdk8', 'x86_64', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_x64_linux_hotspot_8u452b09.tar.gz', 'SHA-256:9448308a21841960a591b47927cf2d44fdc4c0533a5f8111a4b243a6bafb5d27', 2), ('jdk8', 'aarch64', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_aarch64_linux_hotspot_8u452b09.tar.gz', 'SHA-256:d8a1aecea0913b7a1e0d737ba6f7ea99059b3f6fd17813d4a24e8b3fc3aee278', 2), +('jdk25', 'x86_64', 'https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/', 'OpenJDK25U-jdk_x64_linux_hotspot_25.0.2_10.tar.gz', 'sha256:987387933b64b9833846dee373b640440d3e1fd48a04804ec01a6dbf718e8ab8', 2), ('mysql-connector-j', 'x86_64,aarch64', 'https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/', 'mysql-connector-j-8.0.33.jar', 'SHA-256:e2a3b2fc726a1ac64e998585db86b30fa8bf3f706195b78bb77c5f99bf877bd9', 2); INSERT INTO llm_platform (credential, name, support_models) diff --git a/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/config.properties.xml b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/config.properties.xml new file mode 100644 index 000000000..ca59bb75b --- /dev/null +++ b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/config.properties.xml @@ -0,0 +1,38 @@ + + + + + + http-server.http.port + + Specifies the port for the HTTP server. Trino uses HTTP for all communication, internal and external. + + 8080 + + + node-scheduler.include-coordinator + + Allow scheduling work on the coordinator. For larger clusters, processing work on the coordinator + can impact query performance because the machine’s resources are not available for the critical task of + scheduling, managing and monitoring query execution. + + false + + diff --git a/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/hive.properties.xml b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/hive.properties.xml new file mode 100644 index 000000000..e099c95fb --- /dev/null +++ b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/hive.properties.xml @@ -0,0 +1,43 @@ + + + + + + hive.storage-format + + The default file format used when creating new tables. + + ORC + + + hive.translate-hive-views + + hive translate hive views. + + true + + + fs.hadoop.enabled + + Activate the support for HDFS access. Defaults to false. Set to true to use HDFS and enable all other properties. + + true + + diff --git a/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/jvm.config.xml b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/jvm.config.xml new file mode 100644 index 000000000..8de95e6d2 --- /dev/null +++ b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/jvm.config.xml @@ -0,0 +1,67 @@ + + + + + + content + This is the freemarker template for jvm.config file + +# +# 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. +# +-server +-Xmx2G +-XX:InitialRAMPercentage=80 +-XX:MaxRAMPercentage=80 +-XX:G1HeapRegionSize=32M +-XX:+ExplicitGCInvokesConcurrent +-XX:+ExitOnOutOfMemoryError +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-XX:ReservedCodeCacheSize=512M +-XX:PerMethodRecompilationCutoff=10000 +-XX:PerBytecodeRecompilationCutoff=10000 +-Djdk.attach.allowAttachSelf=true +-Djdk.nio.maxCachedBufferSize=2000000 +-Dfile.encoding=UTF-8 +# Allow loading dynamic agent used by JOL +-XX:+EnableDynamicAgentLoading + +]]> + + + longtext + + + diff --git a/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/node.properties.xml b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/node.properties.xml new file mode 100644 index 000000000..c28e6ce5f --- /dev/null +++ b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/configuration/node.properties.xml @@ -0,0 +1,38 @@ + + + + + + node.environment + + The name of the environment. All Trino nodes in a cluster must have the same environment name. The name must + start with a lowercase alphanumeric character and only contain lowercase alphanumeric or underscore (_) + characters. + + production + + + node.data-dir + + The location (filesystem path) of the data directory. Trino stores logs and other data here. + + /var/trino/data + + diff --git a/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/metainfo.xml b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/metainfo.xml new file mode 100644 index 000000000..ecc9b98dd --- /dev/null +++ b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/metainfo.xml @@ -0,0 +1,69 @@ + + + + + + trino + Trino + + Trino is a distributed SQL query engine designed to query large data sets distributed over one or more + heterogeneous data sources. + + 479 + trino + Apache-2.0 + + + + trino_worker + Trino Worker + server + 0+ + + + trino_coordinator + Trino Coordinator + server + 1 + + + trino_client + Trino Client + client + 0+ + + + + + + + x86_64 + aarch64 + + + + trino-server-479.tar.gz + SHA-256:ccc667a23400eb894bbb1e58d441ef54b04fde50f3e6a7723af84696a3bc5f92 + + + + + + diff --git a/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/order.json b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/order.json new file mode 100644 index 000000000..0db3279e4 --- /dev/null +++ b/bigtop-manager-server/src/main/resources/stacks/extra/1.0.0/services/trino/order.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java index af2da9f4b..25f46874e 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java @@ -18,15 +18,13 @@ */ package org.apache.bigtop.manager.stack.core.tarball; +import lombok.extern.slf4j.Slf4j; import org.apache.bigtop.manager.stack.core.exception.StackException; - import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; import org.apache.commons.compress.compressors.xz.XZCompressorInputStream; -import lombok.extern.slf4j.Slf4j; - import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -93,7 +91,13 @@ private static boolean extract(TarArchiveInputStream ais, Path destDir, int skip if (entry.isDirectory()) { createDirectories(outputPath); } else if (entry.isSymbolicLink()) { - createSymbolicLink(outputPath, entry.getLinkName()); + Path linkNamePath = Paths.get(entry.getLinkName()); + Path targetLink = linkNamePath.subpath(skipLevels, linkNamePath.getNameCount()); + createSymbolicLink(outputPath, destDir.resolve(targetLink).normalize()); + } else if (entry.isLink()) { + Path linkNamePath = Paths.get(entry.getLinkName()); + Path targetLink = linkNamePath.subpath(skipLevels, linkNamePath.getNameCount()); + createLink(outputPath, destDir.resolve(targetLink).normalize()); } else { createFile(outputPath, ais); } @@ -116,18 +120,24 @@ private static void createDirectories(Path path) { } } - private static void createSymbolicLink(Path linkPath, String targetName) { - Path targetPath = linkPath.getParent().resolve(targetName).normalize(); - if (!targetPath.isAbsolute()) { - targetPath = linkPath.getParent().resolve(targetPath).normalize(); + private static void createSymbolicLink(Path linkPath, Path targetLink) { + createDirectories(linkPath.getParent()); + + try { + Files.createSymbolicLink(linkPath, targetLink); + } catch (IOException e) { + log.error("Failed to create symbolic link from {} to {}", new Object[]{linkPath, targetLink, e}); + throw new StackException(e); } + } + private static void createLink(Path linkPath, Path targetLink) { createDirectories(linkPath.getParent()); try { - Files.createSymbolicLink(linkPath, targetPath); + Files.createLink(linkPath, targetLink); } catch (IOException e) { - log.error("Failed to create symbolic link from {} to {}", linkPath, targetPath, e); + log.error("Failed to create link from {} to {}", new Object[]{linkPath, targetLink, e}); throw new StackException(e); } } diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java new file mode 100644 index 000000000..31a2c11af --- /dev/null +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java @@ -0,0 +1,96 @@ +package org.apache.bigtop.manager.stack.extra.v1_0_0.trino; + +import lombok.extern.slf4j.Slf4j; +import org.apache.bigtop.manager.common.constants.Constants; +import org.apache.bigtop.manager.common.shell.ShellResult; +import org.apache.bigtop.manager.grpc.pojo.ClusterInfo; +import org.apache.bigtop.manager.grpc.pojo.PackageInfo; +import org.apache.bigtop.manager.grpc.pojo.RepoInfo; +import org.apache.bigtop.manager.stack.core.exception.StackException; +import org.apache.bigtop.manager.stack.core.spi.param.Params; +import org.apache.bigtop.manager.stack.core.spi.script.AbstractServerScript; +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.apache.bigtop.manager.stack.core.utils.linux.LinuxOSUtils; + +import java.text.MessageFormat; +import java.util.Properties; + +/** + * + * @author dyw770 + * @since 2026-02-25 + */ +@Slf4j +public abstract class AbstractTrinoScript extends AbstractServerScript { + + @Override + public ShellResult add(Params params) { + Properties properties = new Properties(); + properties.setProperty(PROPERTY_KEY_SKIP_LEVELS, "1"); + installJdk((TrinoParams) params); + return super.add(params, properties); + } + + private void installJdk(TrinoParams params) { + log.info("Setting up trino jdk25..."); + ClusterInfo clusterInfo = LocalSettings.cluster(); + String dependenciesHome = clusterInfo.getRootDir() + "/dependencies"; + String user = System.getProperty("user.name"); + LinuxFileUtils.createDirectories(dependenciesHome, user, user, Constants.PERMISSION_755, true); + + String jdkHome = dependenciesHome + "/jdk25"; + RepoInfo repoInfo = LocalSettings.repo("jdk25"); + PackageInfo packageInfo = new PackageInfo(); + packageInfo.setName(repoInfo.getPkgName()); + packageInfo.setChecksum(repoInfo.getChecksum()); + TarballUtils.installPackage(repoInfo.getBaseUrl(), dependenciesHome, jdkHome, packageInfo, 1); + LinuxFileUtils.createDirectories(jdkHome, user, user, Constants.PERMISSION_755, true); + } + + @Override + public ShellResult configure(Params params) { + super.configure(params); + return TrinoSetup.config((TrinoParams) params, getComponentName()); + } + + @Override + public ShellResult start(Params params) { + TrinoParams trinoParams = (TrinoParams) params; + + String cmd = MessageFormat.format( + "JAVA_HOME={0} {1}/bin/launcher start", trinoParams.javaHome(), trinoParams.serviceHome()); + try { + return LinuxOSUtils.sudoExecCmd(cmd, trinoParams.user()); + } catch (Exception e) { + throw new StackException(e); + } + } + + @Override + public ShellResult stop(Params params) { + TrinoParams trinoParams = (TrinoParams) params; + + String cmd = MessageFormat.format( + "JAVA_HOME={0} {1}/bin/launcher stop", trinoParams.javaHome(), trinoParams.serviceHome()); + try { + return LinuxOSUtils.sudoExecCmd(cmd, trinoParams.user()); + } catch (Exception e) { + throw new StackException(e); + } + } + + @Override + public ShellResult status(Params params) { + TrinoParams trinoParams = (TrinoParams) params; + + String cmd = MessageFormat.format( + "JAVA_HOME={0} {1}/bin/launcher status", trinoParams.javaHome(), trinoParams.serviceHome()); + try { + return LinuxOSUtils.sudoExecCmd(cmd, trinoParams.user()); + } catch (Exception e) { + throw new StackException(e); + } + } +} diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoClientScript.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoClientScript.java new file mode 100644 index 000000000..1f0963022 --- /dev/null +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoClientScript.java @@ -0,0 +1,70 @@ +/* + * 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.stack.extra.v1_0_0.trino; + +import com.google.auto.service.AutoService; +import lombok.extern.slf4j.Slf4j; +import org.apache.bigtop.manager.common.constants.Constants; +import org.apache.bigtop.manager.common.shell.ShellResult; +import org.apache.bigtop.manager.grpc.pojo.RepoInfo; +import org.apache.bigtop.manager.stack.core.spi.param.Params; +import org.apache.bigtop.manager.stack.core.spi.script.Script; +import org.apache.bigtop.manager.stack.core.tarball.FileDownloader; +import org.apache.bigtop.manager.stack.core.utils.LocalSettings; +import org.apache.bigtop.manager.stack.core.utils.linux.LinuxFileUtils; + +import java.io.File; + +@Slf4j +@AutoService(Script.class) +public class TrinoClientScript extends AbstractTrinoScript { + + @Override + public ShellResult add(Params params) { + String cliFileName = "trino-cli-479"; + String downTmp = "/tmp"; + String binPath = "/usr/bin/"; + RepoInfo generalRepo = LocalSettings.repo("general"); + FileDownloader.download(getCliDownloadPath(generalRepo.getBaseUrl(), cliFileName), downTmp); + LinuxFileUtils.moveFile(downTmp + File.separator + cliFileName, binPath + cliFileName); + LinuxFileUtils.updateOwner(binPath + cliFileName, params.user(), params.group(), false); + LinuxFileUtils.updatePermissions(binPath + cliFileName, Constants.PERMISSION_755, false); + return ShellResult.success(); + } + + @Override + public ShellResult configure(Params params) { + return super.configure(params); + } + + @Override + public String getComponentName() { + return "trino_client"; + } + + private String getCliDownloadPath(String basePath, String fileName) { + if (basePath.endsWith(File.separator) && fileName.startsWith(File.separator)) { + return basePath + fileName.substring(1); + } else if (basePath.endsWith(File.separator) || fileName.startsWith(File.separator)) { + return basePath + fileName; + } else { + return basePath + File.separator + fileName; + } + } +} diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoCoordinatorScript.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoCoordinatorScript.java new file mode 100644 index 000000000..1eb33714c --- /dev/null +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoCoordinatorScript.java @@ -0,0 +1,33 @@ +/* + * 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.stack.extra.v1_0_0.trino; + +import com.google.auto.service.AutoService; +import lombok.extern.slf4j.Slf4j; +import org.apache.bigtop.manager.stack.core.spi.script.Script; + +@Slf4j +@AutoService(Script.class) +public class TrinoCoordinatorScript extends AbstractTrinoScript { + + @Override + public String getComponentName() { + return "trino_coordinator"; + } +} diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoParams.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoParams.java new file mode 100644 index 000000000..084c357f7 --- /dev/null +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoParams.java @@ -0,0 +1,100 @@ +/* + * 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.stack.extra.v1_0_0.trino; + +import com.google.auto.service.AutoService; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.bigtop.manager.grpc.payload.ComponentCommandPayload; +import org.apache.bigtop.manager.stack.core.annotations.GlobalParams; +import org.apache.bigtop.manager.stack.core.spi.param.Params; +import org.apache.bigtop.manager.stack.core.utils.LocalSettings; +import org.apache.bigtop.manager.stack.extra.param.ExtraParams; + +import java.text.MessageFormat; +import java.util.List; +import java.util.Map; + +@Slf4j +@Getter +@NoArgsConstructor +@AutoService(Params.class) +public class TrinoParams extends ExtraParams { + + private String jvmConfigContent; + + public TrinoParams(ComponentCommandPayload payload) { + super(payload); + globalParamsMap.put("java_home", javaHome()); + globalParamsMap.put("trino_user", user()); + globalParamsMap.put("trino_group", group()); + globalParamsMap.put("trino_home", serviceHome()); + globalParamsMap.put("trino_conf_dir", confDir()); + } + + @Override + public String getServiceName() { + return "trino"; + } + + @Override + public String javaHome() { + String root = LocalSettings.cluster().getRootDir(); + return MessageFormat.format("{0}/dependencies/jdk25", root); + } + + @Override + public String confDir() { + return serviceHome() + "/etc"; + } + + public List coordinatorHosts() { + return LocalSettings.componentHosts("coordinator"); + } + + @GlobalParams + public Map nodeProperties() { + return LocalSettings.configurations(getServiceName(), "node.properties"); + } + + @GlobalParams + public Map jvmConfig() { + Map configuration = LocalSettings.configurations(getServiceName(), "jvm.config"); + jvmConfigContent = configuration.get("content").toString(); + return configuration; + } + + @GlobalParams + public Map configProperties() { + Map configuration = LocalSettings.configurations(getServiceName(), "config.properties"); + Object port = configuration.get("http-server.http.port"); + List hosts = coordinatorHosts(); + if (!hosts.isEmpty()) { + configuration.put("discovery.uri", MessageFormat.format("http://{0}:{1}", hosts.get(0), port)); + } + return configuration; + } + + @GlobalParams + public Map hiveProperties() { + Map configuration = LocalSettings.configurations(getServiceName(), "hive.properties"); + return configuration; + } +} diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoSetup.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoSetup.java new file mode 100644 index 000000000..468af93f3 --- /dev/null +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoSetup.java @@ -0,0 +1,124 @@ +/* + * 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.stack.extra.v1_0_0.trino; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.bigtop.manager.common.constants.Constants; +import org.apache.bigtop.manager.common.shell.ShellResult; +import org.apache.bigtop.manager.stack.core.enums.ConfigType; +import org.apache.bigtop.manager.stack.core.utils.LocalSettings; +import org.apache.bigtop.manager.stack.core.utils.linux.LinuxFileUtils; +import org.apache.commons.lang3.StringUtils; + +import java.text.MessageFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class TrinoSetup { + + public static ShellResult config(TrinoParams params, String componentName) { + + String user = params.user(); + String group = params.group(); + + Map globalParamsMap = params.getGlobalParamsMap(); + + LinuxFileUtils.createDirectories(params.confDir(), user, group, Constants.PERMISSION_755, true); + + // create data dir + Map nodeProperties = params.nodeProperties(); + Object dataDir = nodeProperties.get("node.data-dir"); + if (dataDir != null && StringUtils.isNotBlank(dataDir.toString())) { + LinuxFileUtils.createDirectories(dataDir.toString(), user, group, Constants.PERMISSION_755, true); + } + + Map nodeMap = new HashMap<>(nodeProperties); + + nodeMap.put("node.id", params.hostname()); + + Map configProperties = new HashMap<>(params.configProperties()); + configProperties.put("coordinator", StringUtils.equalsIgnoreCase(componentName, "trino_coordinator")); + + LinuxFileUtils.toFile( + ConfigType.PROPERTIES, + MessageFormat.format("{0}/node.properties", params.confDir()), + user, + group, + Constants.PERMISSION_644, + nodeMap); + + LinuxFileUtils.toFileByTemplate( + params.getJvmConfigContent(), + MessageFormat.format("{0}/jvm.config", params.confDir()), + user, + group, + Constants.PERMISSION_644, + globalParamsMap); + + LinuxFileUtils.toFile( + ConfigType.PROPERTIES, + MessageFormat.format("{0}/config.properties", params.confDir()), + user, + group, + Constants.PERMISSION_644, + configProperties); + + // create catalog dir and catalog.properties + LinuxFileUtils.createDirectories( + MessageFormat.format("{0}/catalog", params.confDir()), user, group, Constants.PERMISSION_755, true); + + Map hiveCatalog = createHiveCatalog(params); + if (!hiveCatalog.isEmpty()) { + LinuxFileUtils.toFile( + ConfigType.PROPERTIES, + MessageFormat.format("{0}/catalog/hive.properties", params.confDir()), + user, + group, + Constants.PERMISSION_644, + hiveCatalog); + } + + return ShellResult.success("Trino Configure success!"); + } + + private static Map createHiveCatalog(TrinoParams params) { + Map hiveCatalog = params.hiveProperties(); + hiveCatalog.put("connector.name", "hive"); + + Map hiveSite = LocalSettings.configurations("hive", "hive-site"); + String metastoreUris = hiveSite.get("hive.metastore.uris").toString(); + String[] split = metastoreUris.split(":"); + String metastorePort = split[split.length - 1]; + + List hiveMetastores = LocalSettings.componentHosts("hive_metastore"); + if (hiveMetastores != null && !hiveMetastores.isEmpty()) { + String hiveMetastore = hiveMetastores.get(0); + hiveCatalog.put( + "hive.metastore.uri", MessageFormat.format("thrift://{0}:{1}", hiveMetastore, metastorePort)); + } else { + return new HashMap<>(); + } + return hiveCatalog; + } +} diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoWorkerScript.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoWorkerScript.java new file mode 100644 index 000000000..8757fc2fe --- /dev/null +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoWorkerScript.java @@ -0,0 +1,33 @@ +/* + * 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.stack.extra.v1_0_0.trino; + +import com.google.auto.service.AutoService; +import lombok.extern.slf4j.Slf4j; +import org.apache.bigtop.manager.stack.core.spi.script.Script; + +@Slf4j +@AutoService(Script.class) +public class TrinoWorkerScript extends AbstractTrinoScript { + + @Override + public String getComponentName() { + return "trino_worker"; + } +} diff --git a/bigtop-manager-ui/src/assets/images/trino.png b/bigtop-manager-ui/src/assets/images/trino.png new file mode 100644 index 0000000000000000000000000000000000000000..85d34cb8b2bb5b81253357a5a6eb4fccb0abbdee GIT binary patch literal 11022 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 literal 0 HcmV?d00001 From 114988ed8af2eb4cd4203decfce5980e5a80a079 Mon Sep 17 00:00:00 2001 From: dyw770 Date: Fri, 27 Mar 2026 19:46:45 +0800 Subject: [PATCH 2/4] fix: add license --- .../v1_0_0/trino/AbstractTrinoScript.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java index 31a2c11af..900fb8f95 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java @@ -1,3 +1,21 @@ +/* + * 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.stack.extra.v1_0_0.trino; import lombok.extern.slf4j.Slf4j; @@ -17,11 +35,6 @@ import java.text.MessageFormat; import java.util.Properties; -/** - * - * @author dyw770 - * @since 2026-02-25 - */ @Slf4j public abstract class AbstractTrinoScript extends AbstractServerScript { From 294dcca278e0c805bb539837347f8242e03d6eba Mon Sep 17 00:00:00 2001 From: dyw770 Date: Fri, 27 Mar 2026 19:52:37 +0800 Subject: [PATCH 3/4] fix: ci check code style --- .../bigtop/manager/stack/core/tarball/TarballExtractor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java index 25f46874e..ca0f61367 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java @@ -126,7 +126,7 @@ private static void createSymbolicLink(Path linkPath, Path targetLink) { try { Files.createSymbolicLink(linkPath, targetLink); } catch (IOException e) { - log.error("Failed to create symbolic link from {} to {}", new Object[]{linkPath, targetLink, e}); + log.error("Failed to create symbolic link from {} to {}", new Object[] {linkPath, targetLink, e}); throw new StackException(e); } } @@ -137,7 +137,7 @@ private static void createLink(Path linkPath, Path targetLink) { try { Files.createLink(linkPath, targetLink); } catch (IOException e) { - log.error("Failed to create link from {} to {}", new Object[]{linkPath, targetLink, e}); + log.error("Failed to create link from {} to {}", new Object[] {linkPath, targetLink, e}); throw new StackException(e); } } From 8e07c37e23f3c59be029f04c762219cfdb758a28 Mon Sep 17 00:00:00 2001 From: dyw770 Date: Fri, 27 Mar 2026 19:57:48 +0800 Subject: [PATCH 4/4] fix: ci check code style --- .../manager/stack/core/tarball/TarballExtractor.java | 4 +++- .../stack/extra/v1_0_0/trino/AbstractTrinoScript.java | 3 ++- .../stack/extra/v1_0_0/trino/TrinoClientScript.java | 5 +++-- .../stack/extra/v1_0_0/trino/TrinoCoordinatorScript.java | 3 ++- .../manager/stack/extra/v1_0_0/trino/TrinoParams.java | 9 +++++---- .../manager/stack/extra/v1_0_0/trino/TrinoSetup.java | 8 +++++--- .../stack/extra/v1_0_0/trino/TrinoWorkerScript.java | 3 ++- 7 files changed, 22 insertions(+), 13 deletions(-) diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java index ca0f61367..802459778 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballExtractor.java @@ -18,13 +18,15 @@ */ package org.apache.bigtop.manager.stack.core.tarball; -import lombok.extern.slf4j.Slf4j; import org.apache.bigtop.manager.stack.core.exception.StackException; + import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; import org.apache.commons.compress.compressors.xz.XZCompressorInputStream; +import lombok.extern.slf4j.Slf4j; + import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java index 900fb8f95..bd0978ee3 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/AbstractTrinoScript.java @@ -18,7 +18,6 @@ */ package org.apache.bigtop.manager.stack.extra.v1_0_0.trino; -import lombok.extern.slf4j.Slf4j; import org.apache.bigtop.manager.common.constants.Constants; import org.apache.bigtop.manager.common.shell.ShellResult; import org.apache.bigtop.manager.grpc.pojo.ClusterInfo; @@ -32,6 +31,8 @@ import org.apache.bigtop.manager.stack.core.utils.linux.LinuxFileUtils; import org.apache.bigtop.manager.stack.core.utils.linux.LinuxOSUtils; +import lombok.extern.slf4j.Slf4j; + import java.text.MessageFormat; import java.util.Properties; diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoClientScript.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoClientScript.java index 1f0963022..c583a6daa 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoClientScript.java +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoClientScript.java @@ -18,8 +18,6 @@ */ package org.apache.bigtop.manager.stack.extra.v1_0_0.trino; -import com.google.auto.service.AutoService; -import lombok.extern.slf4j.Slf4j; import org.apache.bigtop.manager.common.constants.Constants; import org.apache.bigtop.manager.common.shell.ShellResult; import org.apache.bigtop.manager.grpc.pojo.RepoInfo; @@ -29,6 +27,9 @@ import org.apache.bigtop.manager.stack.core.utils.LocalSettings; import org.apache.bigtop.manager.stack.core.utils.linux.LinuxFileUtils; +import com.google.auto.service.AutoService; +import lombok.extern.slf4j.Slf4j; + import java.io.File; @Slf4j diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoCoordinatorScript.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoCoordinatorScript.java index 1eb33714c..d794de9c0 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoCoordinatorScript.java +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoCoordinatorScript.java @@ -18,9 +18,10 @@ */ package org.apache.bigtop.manager.stack.extra.v1_0_0.trino; +import org.apache.bigtop.manager.stack.core.spi.script.Script; + import com.google.auto.service.AutoService; import lombok.extern.slf4j.Slf4j; -import org.apache.bigtop.manager.stack.core.spi.script.Script; @Slf4j @AutoService(Script.class) diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoParams.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoParams.java index 084c357f7..6e1bd4f14 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoParams.java +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoParams.java @@ -18,16 +18,17 @@ */ package org.apache.bigtop.manager.stack.extra.v1_0_0.trino; -import com.google.auto.service.AutoService; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.apache.bigtop.manager.grpc.payload.ComponentCommandPayload; import org.apache.bigtop.manager.stack.core.annotations.GlobalParams; import org.apache.bigtop.manager.stack.core.spi.param.Params; import org.apache.bigtop.manager.stack.core.utils.LocalSettings; import org.apache.bigtop.manager.stack.extra.param.ExtraParams; +import com.google.auto.service.AutoService; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; + import java.text.MessageFormat; import java.util.List; import java.util.Map; diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoSetup.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoSetup.java index 468af93f3..c2a68dfaf 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoSetup.java +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoSetup.java @@ -18,16 +18,18 @@ */ package org.apache.bigtop.manager.stack.extra.v1_0_0.trino; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.apache.bigtop.manager.common.constants.Constants; import org.apache.bigtop.manager.common.shell.ShellResult; import org.apache.bigtop.manager.stack.core.enums.ConfigType; import org.apache.bigtop.manager.stack.core.utils.LocalSettings; import org.apache.bigtop.manager.stack.core.utils.linux.LinuxFileUtils; + import org.apache.commons.lang3.StringUtils; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; + import java.text.MessageFormat; import java.util.HashMap; import java.util.List; diff --git a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoWorkerScript.java b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoWorkerScript.java index 8757fc2fe..082ef8471 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoWorkerScript.java +++ b/bigtop-manager-stack/bigtop-manager-stack-extra/src/main/java/org/apache/bigtop/manager/stack/extra/v1_0_0/trino/TrinoWorkerScript.java @@ -18,9 +18,10 @@ */ package org.apache.bigtop.manager.stack.extra.v1_0_0.trino; +import org.apache.bigtop.manager.stack.core.spi.script.Script; + import com.google.auto.service.AutoService; import lombok.extern.slf4j.Slf4j; -import org.apache.bigtop.manager.stack.core.spi.script.Script; @Slf4j @AutoService(Script.class)