You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2022/05/23 11:01:54 UTC

[incubator-linkis] branch dev-1.1.3 updated: linkis-entranc - add support for specified username to use specified groupCapacity (#2160)

This is an automated email from the ASF dual-hosted git repository.

peacewong pushed a commit to branch dev-1.1.3
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git


The following commit(s) were added to refs/heads/dev-1.1.3 by this push:
     new 12c8facfa linkis-entranc - add support for specified username to use specified groupCapacity (#2160)
12c8facfa is described below

commit 12c8facfa23a5e16ccdf8eb91d8875c063ac28bf
Author: Alexyang <xu...@qq.com>
AuthorDate: Mon May 23 19:01:48 2022 +0800

    linkis-entranc - add support for specified username to use specified groupCapacity (#2160)
---
 .../entrance/scheduler/EntranceGroupFactory.scala    | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/scheduler/EntranceGroupFactory.scala b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/scheduler/EntranceGroupFactory.scala
index 1db867b3f..9c8694f3c 100644
--- a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/scheduler/EntranceGroupFactory.scala
+++ b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/scheduler/EntranceGroupFactory.scala
@@ -36,6 +36,7 @@ import org.apache.linkis.scheduler.queue.{Group, GroupFactory, SchedulerEvent}
 
 import java.util
 import java.util.concurrent.TimeUnit
+import java.util.regex.Pattern
 import scala.collection.JavaConversions._
 
 
@@ -46,9 +47,15 @@ class EntranceGroupFactory extends GroupFactory with Logging {
     .maximumSize(EntranceConfiguration.GRORUP_CACHE_MAX.getValue).build()
 
   private val GROUP_MAX_CAPACITY = CommonVars("wds.linkis.entrance.max.capacity", 2000)
+  private val SPECIFIED_USERNAME_REGEX = CommonVars("wds.linkis.entrance.specified.username.regex", "hduser.*")
+  private val GROUP_SPECIFIED_USER_MAX_CAPACITY = CommonVars("wds.linkis.entrance.specified.max.capacity", 5000)
 
   private val GROUP_INIT_CAPACITY = CommonVars("wds.linkis.entrance.init.capacity", 100)
-
+  private val specifiedUsernameRegexPattern: Pattern = if (StringUtils.isNotBlank(SPECIFIED_USERNAME_REGEX.getValue)) {
+    Pattern.compile(SPECIFIED_USERNAME_REGEX.getValue)
+  } else {
+    null
+  }
 
   override def getOrCreateGroup(event: SchedulerEvent): Group = {
     val (labels, params) = event match {
@@ -79,7 +86,16 @@ class EntranceGroupFactory extends GroupFactory with Logging {
       }("Get user configurations from configuration server failed! Next use the default value to continue.")
       val maxRunningJobs = EntranceConfiguration.WDS_LINKIS_INSTANCE.getValue(keyAndValue)
       val initCapacity = GROUP_INIT_CAPACITY.getValue(keyAndValue)
-      val maxCapacity = GROUP_MAX_CAPACITY.getValue(keyAndValue)
+      val maxCapacity = if (null != specifiedUsernameRegexPattern) {
+        if (specifiedUsernameRegexPattern.matcher(userCreatorLabel.getUser).find()) {
+          logger.info(s"Set maxCapacity of user ${userCreatorLabel.getUser} to specifiedMaxCapacity : ${GROUP_SPECIFIED_USER_MAX_CAPACITY.getValue(keyAndValue)}")
+          GROUP_SPECIFIED_USER_MAX_CAPACITY.getValue(keyAndValue)
+        } else {
+          GROUP_MAX_CAPACITY.getValue(keyAndValue)
+        }
+      } else {
+        GROUP_MAX_CAPACITY.getValue(keyAndValue)
+      }
       logger.info(s"Got user configurations: groupName=$groupName, maxRunningJobs=$maxRunningJobs, initCapacity=$initCapacity, maxCapacity=$maxCapacity.")
       val group = new ParallelGroup(groupName, initCapacity, maxCapacity)
       group.setMaxRunningJobs(maxRunningJobs)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org