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(