You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by zj...@apache.org on 2021/08/31 06:12:52 UTC
[zeppelin] branch master updated: [ZEPPELIN-5494] Make shell
interpreter concurrency configurable
This is an automated email from the ASF dual-hosted git repository.
zjffdu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/master by this push:
new c8b1210 [ZEPPELIN-5494] Make shell interpreter concurrency configurable
c8b1210 is described below
commit c8b1210d55aa3fe5247298e1daaa35fe6b45bbe8
Author: Jeff Zhang <zj...@apache.org>
AuthorDate: Thu Aug 26 10:16:30 2021 +0800
[ZEPPELIN-5494] Make shell interpreter concurrency configurable
### What is this PR for?
Introduce property `zeppelin.concurrency.max` to make shell concurrency configurable, by default it is 10.
### What type of PR is it?
[Improvement ]
### Todos
* [ ] - Task
### What is the Jira issue?
* https://issues.apache.org/jira/browse/ZEPPELIN-5494
### How should this be tested?
* CI pass
### Screenshots (if appropriate)
### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: Jeff Zhang <zj...@apache.org>
Closes #4207 from zjffdu/ZEPPELIN-5494 and squashes the following commits:
988a4839c5 [Jeff Zhang] address comment
a2cace6c85 [Jeff Zhang] [ZEPPELIN-5494] Make shell interpreter concurrency configurable
---
docs/interpreter/shell.md | 5 +++++
.../java/org/apache/zeppelin/shell/ShellInterpreter.java | 14 +++++++++++++-
shell/src/main/resources/interpreter-setting.json | 7 +++++++
3 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/docs/interpreter/shell.md b/docs/interpreter/shell.md
index 631c133..865b915 100644
--- a/docs/interpreter/shell.md
+++ b/docs/interpreter/shell.md
@@ -79,6 +79,11 @@ At the "Interpreters" menu in Zeppelin dropdown menu, you can set the property v
<td></td>
<td>Internal and external IP mapping of zeppelin server</td>
</tr>
+ <tr>
+ <td>zeppelin.concurrency.max</td>
+ <td>10</td>
+ <td>Max concurrency of shell interpreter</td>
+ </tr>
</table>
## Example
diff --git a/shell/src/main/java/org/apache/zeppelin/shell/ShellInterpreter.java b/shell/src/main/java/org/apache/zeppelin/shell/ShellInterpreter.java
index c43a8be..b865a6d 100644
--- a/shell/src/main/java/org/apache/zeppelin/shell/ShellInterpreter.java
+++ b/shell/src/main/java/org/apache/zeppelin/shell/ShellInterpreter.java
@@ -57,6 +57,7 @@ public class ShellInterpreter extends KerberosInterpreter {
private static final String DEFAULT_TIMEOUT = "60000";
private static final String DEFAULT_CHECK_INTERVAL = "10000";
private static final String DIRECTORY_USER_HOME = "shell.working.directory.user.home";
+ private static final String MAX_CONCURRENCY = "shell.concurrency.max";
private final boolean isWindows = System.getProperty("os.name").startsWith("Windows");
private final String shell = isWindows ? "cmd /c" : "bash -c";
@@ -213,7 +214,18 @@ public class ShellInterpreter extends KerberosInterpreter {
@Override
public Scheduler getScheduler() {
return SchedulerFactory.singleton().createOrGetParallelScheduler(
- ShellInterpreter.class.getName() + this.hashCode(), 10);
+ ShellInterpreter.class.getName() + this.hashCode(), getMaxConcurrent());
+ }
+
+ private int getMaxConcurrent() {
+ String maxConcurrencyProperty = getProperty(MAX_CONCURRENCY, "10");
+ try {
+ return Integer.valueOf(maxConcurrencyProperty);
+ } catch (NumberFormatException e) {
+ LOGGER.error("Fail to parse {} with value: {}", MAX_CONCURRENCY,
+ maxConcurrencyProperty);
+ return 10;
+ }
}
@Override
diff --git a/shell/src/main/resources/interpreter-setting.json b/shell/src/main/resources/interpreter-setting.json
index 7bbed28..e1cba3b 100644
--- a/shell/src/main/resources/interpreter-setting.json
+++ b/shell/src/main/resources/interpreter-setting.json
@@ -53,6 +53,13 @@
"defaultValue": false,
"description": "Enable ZeppelinContext variable interpolation into paragraph text",
"type": "checkbox"
+ },
+ "zeppelin.concurrency.max": {
+ "envName": null,
+ "propertyName": "zeppelin.concurrency.max",
+ "defaultValue": "10",
+ "description": "Max concurrency of shell interpreter",
+ "type": "number"
}
},
"editor": {