@@ -27,6 +27,7 @@ import com.webank.wedatasphere.streamis.jobmanager.manager.utils.JobUtils
27
27
28
28
import scala .collection .JavaConverters ._
29
29
import scala .collection .mutable
30
+ import scala .collection .mutable .ArrayBuffer
30
31
31
32
/**
32
33
* Created by enjoyyin on 2021/9/23.
@@ -50,20 +51,24 @@ class FlinkJarStreamisStartupParamsTransform extends Transform {
50
51
startupMap.put(" flink.app.main.class.jar" , transformJobContent.getMainClassJar.getFileName)
51
52
startupMap.put(" flink.app.main.class.jar.bml.json" ,
52
53
JsonUtils .jackson.writeValueAsString(getStreamisFileContent(transformJobContent.getMainClassJar)))
53
- val classpathFiles = if (transformJobContent.getDependencyJars != null && transformJobContent.getResources != null ) {
54
- startupMap.put(" flink.app.user.class.path" , transformJobContent.getDependencyJars.asScala.map(_.getFileName).mkString(" ," ))
55
- transformJobContent.getDependencyJars.asScala ++ transformJobContent.getResources.asScala
56
- } else if (transformJobContent.getDependencyJars != null ) {
57
- startupMap.put(" flink.app.user.class.path" , transformJobContent.getDependencyJars.asScala.map(_.getFileName).mkString(" ," ))
58
- transformJobContent.getDependencyJars.asScala
59
- } else if (transformJobContent.getResources != null ) {
60
- startupMap.put(" flink.yarn.ship-directories" , transformJobContent.getResources.asScala.map(_.getFileName).mkString(" ," ))
61
- transformJobContent.getResources.asScala
54
+
55
+ /**
56
+ * Notice : "flink.app.user.class.path" equals to PipelineOptions.CLASSPATHS in Flink
57
+ * paths must specify a protocol (e.g. file://) and be accessible on all nodes
58
+ * so we use "flink.yarn.ship-directories" instead
59
+ */
60
+ var classPathFiles = Option (transformJobContent.getDependencyJars) match {
61
+ case Some (list) => list.asScala
62
+ case _ => mutable.Buffer [StreamisFile ]()
63
+ }
64
+ Option (transformJobContent.getResources) match {
65
+ case Some (list) => classPathFiles = classPathFiles ++ list.asScala
66
+ case _ => // Do nothing
62
67
}
63
- else mutable. Buffer [ StreamisFile ]( )
64
- if (classpathFiles .nonEmpty)
68
+ startupMap.put( " flink.yarn.ship-directories " , classPathFiles.map(_.getFileName).mkString( " , " ) )
69
+ if (classPathFiles .nonEmpty)
65
70
startupMap.put(" flink.app.user.class.path.bml.json" ,
66
- JsonUtils .jackson.writeValueAsString(classpathFiles .map(getStreamisFileContent).asJava))
71
+ JsonUtils .jackson.writeValueAsString(classPathFiles .map(getStreamisFileContent).asJava))
67
72
if (transformJobContent.getHdfsJars != null )
68
73
startupMap.put(" flink.user.lib.path" , transformJobContent.getHdfsJars.asScala.mkString(" ," ))
69
74
val params = if (job.getParams == null ) new util.HashMap [String , Any ] else job.getParams
0 commit comments