From 10a554b06cf4681b71edf15cba0f58ad4991ea39 Mon Sep 17 00:00:00 2001 From: v-kkhuang <420895376@qq.com> Date: Thu, 23 Apr 2026 10:39:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?#AI=20commit#=20=E5=BC=80=E5=8F=91=E9=98=B6?= =?UTF-8?q?=E6=AE=B5=EF=BC=9A=20=E6=94=AF=E6=8C=81hadoop3=E5=BC=95?= =?UTF-8?q?=E6=93=8E=E7=89=A9=E6=96=99=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../linkis/ecm/core/conf/ECPCoreConf.scala | 6 +++++ .../launch/ProcessEngineCommandBuilder.scala | 26 +++++++++++++++++++ .../core/launch/ProcessEngineConnLaunch.scala | 10 ++++++- .../common/launch/process/Environment.scala | 2 +- 4 files changed, 42 insertions(+), 2 deletions(-) diff --git a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/conf/ECPCoreConf.scala b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/conf/ECPCoreConf.scala index c03773c0e6..292b8eb9fc 100644 --- a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/conf/ECPCoreConf.scala +++ b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/conf/ECPCoreConf.scala @@ -23,4 +23,10 @@ object ECPCoreConf { val CORE_DUMP_DISABLE = CommonVars("linkis.ec.core.dump.disable", true).getValue + /** + * 物料替换脚本路径 脚本会在每次软链接创建前被调用,参数为:源路径 目标路径 例如:/appcom/Install/linkis/bin/material_replace.sh + */ + val MATERIAL_REPLACE_SCRIPT_PATH: String = + CommonVars("linkis.ecm.material.replace.script.path", "").getValue + } diff --git a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineCommandBuilder.scala b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineCommandBuilder.scala index 4b5b1fab9e..0bc11e7da8 100644 --- a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineCommandBuilder.scala +++ b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineCommandBuilder.scala @@ -92,6 +92,32 @@ class UnixProcessEngineCommandBuilder extends ShellProcessEngineCommandBuilder { ) override def link(fromPath: String, toPath: String): Unit = { + // 只对 lib 目录执行物料替换脚本(检查路径是否以 /lib 结尾) + if (ECPCoreConf.MATERIAL_REPLACE_SCRIPT_PATH.nonEmpty && fromPath.endsWith("/lib")) { + // 加载 linkis-env.sh 并检查 LINKIS_HADOOP_NODE + newLine(Array("if [ -f \"${LINKIS_HOME}/conf/linkis-env.sh\" ]; then")) + newLine(Array(" source \"${LINKIS_HOME}/conf/linkis-env.sh\"")) + newLine(Array("fi")) + newLine( + Array( + "if [ \"${LINKIS_HADOOP_NODE}\" = \"true\" ] && [ -x \"", + ECPCoreConf.MATERIAL_REPLACE_SCRIPT_PATH, + "\" ]; then" + ) + ) + newLine( + Array( + " \"", + ECPCoreConf.MATERIAL_REPLACE_SCRIPT_PATH, + "\" \"", + fromPath, + "\" \"", + toPath, + "\"" + ) + ) + newLine(Array("fi")) + } newLine(Array("ln -sf \"", fromPath, "\" \"", toPath, "\"")) addErrorCheck() } diff --git a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineConnLaunch.scala b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineConnLaunch.scala index da6ea2bc77..e1d09dc1bf 100644 --- a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineConnLaunch.scala +++ b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineConnLaunch.scala @@ -99,6 +99,8 @@ trait ProcessEngineConnLaunch extends EngineConnLaunch with Logging { val conf = CommonVars.apply(key, "") if (StringUtils.isNotBlank(conf.getValue)) environment.put(key, conf.getValue) } + // 获取引擎类型标签 + val engineTypeLabel = LabelUtil.getEngineTypeLabel(request.labels) Environment.values foreach { case USER => environment.put(USER.toString, request.user) case ECM_HOME => @@ -121,7 +123,13 @@ trait ProcessEngineConnLaunch extends EngineConnLaunch with Logging { environment.put(PREFER_IP_ADDRESS.toString, Configuration.PREFER_IP_ADDRESS.toString) case ENGINECONN_ENVKEYS => environment.put(ENGINECONN_ENVKEYS.toString, GovernanceCommonConf.ENGINECONN_ENVKEYS) - case LINKIS_HOME => putIfExists(LINKIS_HOME) + case ENGINE_TYPE => + // 设置引擎类型环境变量,格式: engineType-version (如: hive-2.3.3) + if (engineTypeLabel != null) { + val engineType = engineTypeLabel.getEngineType + val version = engineTypeLabel.getVersion + environment.put(ENGINE_TYPE.toString, s"$engineType-$version") + } case _ => } } diff --git a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/scala/org/apache/linkis/manager/engineplugin/common/launch/process/Environment.scala b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/scala/org/apache/linkis/manager/engineplugin/common/launch/process/Environment.scala index f7ef3691dd..444dac38e6 100644 --- a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/scala/org/apache/linkis/manager/engineplugin/common/launch/process/Environment.scala +++ b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/scala/org/apache/linkis/manager/engineplugin/common/launch/process/Environment.scala @@ -25,7 +25,7 @@ object Environment extends Enumeration { val USER, ECM_HOME, PWD, PATH, SHELL, JAVA_HOME, LINKIS_HOME, CLASSPATH, HADOOP_HOME, HADOOP_CONF_DIR, HIVE_CONF_DIR, LOG_DIRS, TEMP_DIRS, ECM_HOST, ECM_PORT, RANDOM_PORT, - SERVICE_DISCOVERY, PREFER_IP_ADDRESS, UDF_JARS, ENGINECONN_ENVKEYS = Value + SERVICE_DISCOVERY, PREFER_IP_ADDRESS, UDF_JARS, ENGINECONN_ENVKEYS, ENGINE_TYPE = Value def variable(environment: Environment): String = LaunchConstants.EXPANSION_MARKER_LEFT + environment + LaunchConstants.EXPANSION_MARKER_RIGHT From f5e83bb05c575ad14290cc76f1b7bbc2e3fad9a5 Mon Sep 17 00:00:00 2001 From: v-kkhuang <420895376@qq.com> Date: Thu, 23 Apr 2026 14:35:17 +0800 Subject: [PATCH 2/2] =?UTF-8?q?#AI=20commit#=20=E5=BC=80=E5=8F=91=E9=98=B6?= =?UTF-8?q?=E6=AE=B5=EF=BC=9A=20=E4=BC=98=E5=8C=96=E5=BC=95=E6=93=8E?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ecm/core/launch/ProcessEngineCommandBuilder.scala | 8 ++------ .../linkis/ecm/core/launch/ProcessEngineConnLaunch.scala | 1 + 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineCommandBuilder.scala b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineCommandBuilder.scala index 0bc11e7da8..b799241a66 100644 --- a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineCommandBuilder.scala +++ b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineCommandBuilder.scala @@ -92,15 +92,11 @@ class UnixProcessEngineCommandBuilder extends ShellProcessEngineCommandBuilder { ) override def link(fromPath: String, toPath: String): Unit = { - // 只对 lib 目录执行物料替换脚本(检查路径是否以 /lib 结尾) + // 只对 lib 目录执行物料替换脚本 if (ECPCoreConf.MATERIAL_REPLACE_SCRIPT_PATH.nonEmpty && fromPath.endsWith("/lib")) { - // 加载 linkis-env.sh 并检查 LINKIS_HADOOP_NODE - newLine(Array("if [ -f \"${LINKIS_HOME}/conf/linkis-env.sh\" ]; then")) - newLine(Array(" source \"${LINKIS_HOME}/conf/linkis-env.sh\"")) - newLine(Array("fi")) newLine( Array( - "if [ \"${LINKIS_HADOOP_NODE}\" = \"true\" ] && [ -x \"", + "if [ -x \"", ECPCoreConf.MATERIAL_REPLACE_SCRIPT_PATH, "\" ]; then" ) diff --git a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineConnLaunch.scala b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineConnLaunch.scala index e1d09dc1bf..9b0a2fb8f6 100644 --- a/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineConnLaunch.scala +++ b/linkis-computation-governance/linkis-engineconn-manager/linkis-engineconn-manager-core/src/main/scala/org/apache/linkis/ecm/core/launch/ProcessEngineConnLaunch.scala @@ -123,6 +123,7 @@ trait ProcessEngineConnLaunch extends EngineConnLaunch with Logging { environment.put(PREFER_IP_ADDRESS.toString, Configuration.PREFER_IP_ADDRESS.toString) case ENGINECONN_ENVKEYS => environment.put(ENGINECONN_ENVKEYS.toString, GovernanceCommonConf.ENGINECONN_ENVKEYS) + case LINKIS_HOME => putIfExists(LINKIS_HOME) case ENGINE_TYPE => // 设置引擎类型环境变量,格式: engineType-version (如: hive-2.3.3) if (engineTypeLabel != null) {