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 80de2c8 [ZEPPELIN-5621] add configuration of tmp_path to store
compiled files like scala_shell_tmp-xxx.jar (#4328)
80de2c8 is described below
commit 80de2c811d1367daad975faa069f24d06871522c
Author: Jeff Zhang
AuthorDate: Thu Mar 31 15:47:23 2022 +0800
[ZEPPELIN-5621] add configuration of tmp_path to store compiled files like
scala_shell_tmp-xxx.jar (#4328)
* [ZEPPELIN-5621] add configuration of tmp_path to store compiled files
like scala_shell_tmp-xxx.jar
* Address comment
* fix ci
---
docs/interpreter/flink.md | 6 +-
.../src/main/resources/interpreter-setting.json| 7 +++
.../apache/zeppelin/flink/internal/FlinkILoop.scala| 18 +-
3 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/docs/interpreter/flink.md b/docs/interpreter/flink.md
index 8e0476c..029394c 100644
--- a/docs/interpreter/flink.md
+++ b/docs/interpreter/flink.md
@@ -285,7 +285,11 @@ You can also add and set other Flink properties which are
not listed in the tabl
true
Whether display Scala shell output in colorful format
-
+
+zeppelin.flink.scala.shell.tmp_dir
+
+Temp folder for storing scala shell compiled jar
+
zeppelin.flink.enableHive
false
diff --git
a/flink/flink-scala-parent/src/main/resources/interpreter-setting.json
b/flink/flink-scala-parent/src/main/resources/interpreter-setting.json
index dd67130..9da270a 100644
--- a/flink/flink-scala-parent/src/main/resources/interpreter-setting.json
+++ b/flink/flink-scala-parent/src/main/resources/interpreter-setting.json
@@ -138,6 +138,13 @@
"description": "Whether display scala shell output in colorful format",
"type": "checkbox"
},
+ "zeppelin.flink.scala.shell.tmp_dir": {
+"envName": "zeppelin.flink.scala.shell.tmp_dir",
+"propertyName": "zeppelin.flink.scala.shell.tmp_dir",
+"defaultValue": "",
+"description": "Temp folder for storing scala shell compiled jar",
+"type": "string"
+ },
"zeppelin.flink.enableHive": {
"envName": null,
"propertyName": null,
diff --git
a/flink/flink-scala-parent/src/main/scala/org/apache/zeppelin/flink/internal/FlinkILoop.scala
b/flink/flink-scala-parent/src/main/scala/org/apache/zeppelin/flink/internal/FlinkILoop.scala
index 1be64ab..eedcbe4 100644
---
a/flink/flink-scala-parent/src/main/scala/org/apache/zeppelin/flink/internal/FlinkILoop.scala
+++
b/flink/flink-scala-parent/src/main/scala/org/apache/zeppelin/flink/internal/FlinkILoop.scala
@@ -22,14 +22,16 @@ package org.apache.zeppelin.flink.internal
import org.apache.flink.configuration.Configuration
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.util.AbstractID
-import java.io.{BufferedReader, File, FileOutputStream, IOException}
+import java.io.{BufferedReader, File, FileOutputStream, IOException}
import org.apache.flink.streaming.api.environment.{StreamExecutionEnvironment
=> JStreamExecutionEnvironment}
import org.apache.flink.api.java.{ExecutionEnvironment =>
JExecutionEnvironment}
import org.apache.flink.api.scala.ExecutionEnvironment
import org.apache.flink.core.execution.PipelineExecutorServiceLoader
import org.apache.zeppelin.flink.{ApplicationModeExecutionEnvironment,
ApplicationModeStreamEnvironment, FlinkScalaInterpreter}
import FlinkShell.ExecutionMode
+import org.apache.commons.lang.StringUtils
+import org.slf4j.{Logger, LoggerFactory}
import scala.tools.nsc.interpreter._
@@ -45,6 +47,7 @@ class FlinkILoop(
flinkScalaInterpreter: FlinkScalaInterpreter)
extends ILoop(in0, out0) {
+ private lazy val LOGGER: Logger = LoggerFactory.getLogger(getClass)
// remote environment
private val (remoteBenv: ScalaShellEnvironment,
@@ -101,11 +104,16 @@ class FlinkILoop(
private val tmpDirBase: File = {
// get unique temporary folder:
val abstractID: String = new AbstractID().toString
-val tmpDir: File = new File(
- System.getProperty("java.io.tmpdir"),
- "scala_shell_tmp-" + abstractID)
+var scalaShellTmpParentFolder =
flinkScalaInterpreter.properties.getProperty("zeppelin.flink.scala.shell.tmp_dir")
+if (StringUtils.isBlank(scalaShellTmpParentFolder)) {
+ scalaShellTmpParentFolder = System.getProperty("java.io.tmpdir")
+}
+val tmpDir: File = new File(scalaShellTmpParentFolder, "scala_shell_tmp-"
+ abstractID)
+LOGGER.info("Folder for scala shell compiled jar: {}",
tmpDir.getAbsolutePath)
if (!tmpDir.exists) {
- tmpDir.mkdir
+ if (!tmpDir.mkdirs()) {
+throw new IOException(s"Unable to make tmp dir