flink 在使用upsert_kafka connector 时报错,找不到类Exeption: Could not find any factory for identifier 'upsert-kafka' that implements 'org.apache.flink.table.factories.DynamicTableFactory' in the classpath.

 原因:因为Flink 加载 table Factory 使用的时SPI机制,而正常的flink jar包是不包含META-INF.services 路径的,需要自己去添加

org.apache.flink.table.factories.TableFactory

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

org.apache.flink.streaming.connectors.kafka.KafkaTableSourceSinkFactory
org.apache.flink.connector.jdbc.catalog.factory.JdbcCatalogFactory
org.apache.flink.connector.jdbc.table.JdbcTableSourceSinkFactory
org.apache.flink.streaming.connectors.redis.RedisTableSinkFactory
org.apache.flink.connectors.kudu.table.KuduTableFactory
org.apache.flink.connectors.kudu.table.KuduCatalogFactory

参考链接:https://blog.csdn.net/u013516966/article/details/106536525

原文地址:https://www.cnblogs.com/yangxusun9/p/14473640.html