You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by li...@apache.org on 2022/07/01 01:35:23 UTC

[flink-ml] branch release-2.1 updated: [FLINK-27084] Fix classloader for per-round operators

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

lindong pushed a commit to branch release-2.1
in repository https://gitbox.apache.org/repos/asf/flink-ml.git


The following commit(s) were added to refs/heads/release-2.1 by this push:
     new b23f499  [FLINK-27084] Fix classloader for per-round operators
b23f499 is described below

commit b23f499ef395b6a8b80f00a086aa4357ffe51ff6
Author: yunfengzhou-hub <yu...@outlook.com>
AuthorDate: Thu Jun 30 11:40:54 2022 +0800

    [FLINK-27084] Fix classloader for per-round operators
    
    This closes #127.
---
 .../docs/try-flink-ml/build-your-own-project.md    |  6 +--
 docs/content/docs/try-flink-ml/quick-start.md      | 12 +----
 flink-ml-examples/pom.xml                          | 51 +---------------------
 .../perround/AbstractPerRoundWrapperOperator.java  |  3 +-
 4 files changed, 6 insertions(+), 66 deletions(-)

diff --git a/docs/content/docs/try-flink-ml/build-your-own-project.md b/docs/content/docs/try-flink-ml/build-your-own-project.md
index ad289e0..e30c8a6 100644
--- a/docs/content/docs/try-flink-ml/build-your-own-project.md
+++ b/docs/content/docs/try-flink-ml/build-your-own-project.md
@@ -35,11 +35,7 @@ Learning Model and use it to provide prediction service.
 In order to use Flink ML in a Maven project, add the following dependencies to
 `pom.xml`.
 
-{{< artifact flink-ml-core >}}
-
-{{< artifact flink-ml-iteration >}}
-
-{{< artifact flink-ml-lib >}}
+{{< artifact flink-ml-uber >}}
 
 The example code provided in this document requires additional dependencies on
 the Flink Table API. In order to execute the example code successfully, please
diff --git a/docs/content/docs/try-flink-ml/quick-start.md b/docs/content/docs/try-flink-ml/quick-start.md
index fcbcce5..953d2dc 100644
--- a/docs/content/docs/try-flink-ml/quick-start.md
+++ b/docs/content/docs/try-flink-ml/quick-start.md
@@ -64,16 +64,6 @@ mvn clean package -DskipTests
 cd ./flink-ml-dist/target/flink-ml-*-bin/flink-ml*/
 ```
 
-### Add Flink ML binaries to Flink
-
-You need to copy Flink ML's binary distribution files to Flink's folder for
-proper initialization. Please run the following command from Flink ML's binary
-distribution's folder.
-
-```bash
-cp ./lib/*.jar $FLINK_HOME/lib/
-```
-
 ## Run Flink ML example job
 
 Please start a Flink standalone cluster in your local environment with the
@@ -90,7 +80,7 @@ that the cluster is up and running.
 Then you may submit Flink ML examples to the cluster as follows.
 
 ```
-$FLINK_HOME/bin/flink run -c org.apache.flink.ml.examples.clustering.KMeansExample $FLINK_HOME/lib/flink-ml-examples*.jar
+$FLINK_HOME/bin/flink run -c org.apache.flink.ml.examples.clustering.KMeansExample -C file://`pwd`/lib/flink-ml-uber-2.1-SNAPSHOT.jar -C file://`pwd`/lib/statefun-flink-core-3.2.0.jar lib/flink-ml-examples-2.1-SNAPSHOT.jar
 ```
 
 The command above would submit and execute Flink ML's `KMeansExample` job. There
diff --git a/flink-ml-examples/pom.xml b/flink-ml-examples/pom.xml
index b10f524..478db42 100644
--- a/flink-ml-examples/pom.xml
+++ b/flink-ml-examples/pom.xml
@@ -33,49 +33,14 @@ under the License.
     <dependencies>
         <dependency>
             <groupId>org.apache.flink</groupId>
-            <artifactId>flink-ml-core</artifactId>
+            <artifactId>flink-ml-uber</artifactId>
             <version>${project.version}</version>
             <scope>provided</scope>
         </dependency>
 
         <dependency>
             <groupId>org.apache.flink</groupId>
-            <artifactId>flink-ml-iteration</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-ml-lib</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-clients</artifactId>
-            <version>${flink.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-streaming-java</artifactId>
-            <version>${flink.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-table-api-java</artifactId>
-            <version>${flink.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-table-api-java-bridge</artifactId>
+            <artifactId>flink-table-planner-loader</artifactId>
             <version>${flink.version}</version>
             <scope>provided</scope>
         </dependency>
@@ -83,22 +48,10 @@ under the License.
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-table-runtime</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-table-common</artifactId>
             <version>${flink.version}</version>
             <scope>provided</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-table-planner-loader</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-test-utils</artifactId>
diff --git a/flink-ml-iteration/src/main/java/org/apache/flink/iteration/operator/perround/AbstractPerRoundWrapperOperator.java b/flink-ml-iteration/src/main/java/org/apache/flink/iteration/operator/perround/AbstractPerRoundWrapperOperator.java
index bdc1d26..0cb1724 100644
--- a/flink-ml-iteration/src/main/java/org/apache/flink/iteration/operator/perround/AbstractPerRoundWrapperOperator.java
+++ b/flink-ml-iteration/src/main/java/org/apache/flink/iteration/operator/perround/AbstractPerRoundWrapperOperator.java
@@ -158,7 +158,8 @@ public abstract class AbstractPerRoundWrapperOperator<T, S extends StreamOperato
         // We need to clone the operator factory to also support SimpleOperatorFactory.
         try {
             StreamOperatorFactory<T> clonedOperatorFactory =
-                    InstantiationUtil.clone(operatorFactory);
+                    InstantiationUtil.clone(
+                            operatorFactory, containingTask.getUserCodeClassLoader());
             wrappedOperator =
                     (S)
                             StreamOperatorFactoryUtil.<T, S>createOperator(