前言:本地IDEA运行没有问题,部署到flink上就报错,无法启动。如果你的JOB任务是DataStreamAPI写的不会有这个问题,我出现的问题是job任务是用tableAPI写的

我pom文件的flink版本是1.13.0

部署的flink版本是flink-1.12.3

多嘴一句,我看网上的pom文件配置五花八门。啥样的都有,实在不知道该选择哪种。有的说需要打包的时候需要进行<scope>provided</scope>,反正我是没有。调试后,本地和flink上都可以用。

出现的几种问题描述:

Caused by: java.lang.ClassNotFoundException: org.apache.flink.table.factories.SerializationSchemaFactory

Caused by: org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrategy

还有某些jar包说找不到的,我就不列举了。

解决:修改flink的lib包里的内容,table的jar都删掉,留下这样的

然后修改flink的配置文件flink-conf.yaml

flink会优先使用jar包中的依赖

现在基本可以了,直接部署启动吧。

最后附上我的pom文件配置,可能不足,供大家参考

<!--flink 依赖-->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-java</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-scala_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>

        <!--flink-SQL-->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-table-planner-blink_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-table-api-java-bridge_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-table-common</artifactId>
            <version>${flink.version}</version>
        </dependency>

        <!--flink连接器-->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-kafka_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.clickhouse</groupId>
            <artifactId>clickhouse-jdbc</artifactId>
            <version>0.2.6</version>
        </dependency>

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-jdbc_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>

版本的话我在上面已经说了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐