0

我正在使用以下命令运行 stateful-fun 2.0 basic hello job

./bin/flink run -c org.apache.flink.statefun.flink.core.StatefulFunctionsJob ./stateful-sun-hello-java-1.0-SNAPSHOT-jar-with-dependencies.jar

我的 POM.xml 是

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>stateful-sun-hello-java</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>3.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>statefun-sdk</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>statefun-flink-distribution</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>statefun-kafka-io</artifactId>
            <version>2.0.0</version>
        </dependency>
    </dependencies>



    <build>
        <defaultGoal>clean generate-sources compile install</defaultGoal>

        <plugins>
            <!-- compile proto file into java files. -->
            <plugin>
                <groupId>com.github.os72</groupId>
                <artifactId>protoc-jar-maven-plugin</artifactId>
                <version>3.6.0.1</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <includeMavenTypes>direct</includeMavenTypes>

                            <inputDirectories>
                                <include>src/main/protobuf</include>
                            </inputDirectories>

                            <outputTargets>
                                <outputTarget>
                                    <type>java</type>
                                    <outputDirectory>src/main/java</outputDirectory>
                                </outputTarget>
                                <outputTarget>
                                    <type>grpc-java</type>
                                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.15.0</pluginArtifact>
                                    <outputDirectory>src/main/java</outputDirectory>
                                </outputTarget>
                            </outputTargets>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <!-- get all project dependencies -->
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <!-- MainClass in mainfest make a executable jar -->
                    <archive>
                        <manifest>
                            <mainClass>org.apache.flink.statefun.flink.core.StatefulFunctionsJob</mainClass>
                        </manifest>
                    </archive>

                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <!-- bind to the packaging phase -->
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

它给出了以下异常


该程序完成,但出现以下异常:

org.apache.flink.client.program.ProgramInvocationException:主要方法导致错误:无效配置:classloader.parent-first-patterns.additional;必须在 org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:335) 在 org.apache.flink 包含所有 org.apache.flink.statefun、org.apache.kafka、com.google.protobuf .client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:205) 在 org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:138) 在 org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend .java:662) 在 org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:210) 在 org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:893) 在 org. apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:

请建议如何解决这个问题。

4

3 回答 3

0

您必须将以下配置参数添加到您的 flink-conf.yaml 文件中。

classloader.parent-first-patterns.additional: org.apache.flink.statefun;org.apache.kafka;com.google.protobuf

jobmanager.scheduler: legacy

https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/deployment-and-operations/packaging.html#flink-jar --> 官方文档说:

运行 StateFun 应用程序严格要求以下配置。

classloader.parent-first-patterns.additional: org.apache.flink.statefun;org.apache.kafka;com.google.protobuf

于 2020-06-03T14:58:21.780 回答
0

statefun 3.1 文档中不再提及打包 statefun 作业以提交到现有的 Flink 集群部署样式。这种部署方式是否仍然可行或受支持?如果是这样,module.yaml文件应该打包在哪里?

于 2021-11-21T01:03:44.320 回答
0

我们需要添加这个 jar


<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>statefun-flink-distribution</artifactId>
    <version>2.1.0</version>
</dependency>

于 2020-06-12T12:46:17.860 回答