问题
测试flink sql连接kafka, 启动 sql-client.sh之后,想要建立一张kafka的表
CREATE TABLE pageviews_per_region (
id STRING,
name string,
age string,
address string
) WITH (
'connector' = 'kafka',
'topic' = 'canal_cdc',
'properties.bootstrap.servers' = 'xxx.xx.x.xxx:9092,xxx.xx.x.xxx:9092,xxx.xx.x.xxx:9092',
'key.format' = 'json',
'value.format' = 'json',
'value.json.fail-on-missing-field' = 'false'
);
建表可以成功,但是当想要查询里面数据的时候,报了下面的错误
[ERROR] Could not execute SQL statement. Reason:
org.apache.flink.table.api.ValidationException: Could not find any factory for identifier 'kafka' that implements 'org.apache.flink.table.factories.DynamicTableFactory' in the classpath.
Available factory identifiers are:
blackhole
datagen
filesystem
print
解决方案
主要是因为flink lib目录下没有 flink-sql-connector-kafka_2.11-1.12.1.jar 这个jar包
去这个页面 link 下载下来之后,放到lib目录下即可。