first-patterns.additional;

yzckvree  于 2021-06-26  发布在  Flink
关注(0)|答案(2)|浏览(453)

我使用以下命令运行statefulfun2.0basichello作业
./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.statefun、org.apache.kafka、,com.google.protobuf位于org.apache.flink.client.program.packagedprogram.callmain方法(packagedprogram。java:335)在org.apache.flink.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:966)在org.apache.flink.runtime.security.noopsecuritycontext.runsecuried(noopsecuritycontext。java:30)位于org.apache.flink.client.cli.clifrontend.main(clifrontend。java:966
请建议如何解决这个问题。

ny6fqffe

ny6fqffe1#

我们需要加这个jar

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

r3i60tvu2#

必须将以下配置参数添加到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-官方文件说:
运行statefun应用程序严格要求以下配置。
classloader.parent-first-patterns.additional:org.apache.flink.statefun;org.apache.kafka;com.google.protobuf

相关问题