栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

FlinkSQL 数据写入kafka报错ThreadUtils

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FlinkSQL 数据写入kafka报错ThreadUtils

pom文件

flink-connector-debezium:2.2.0
flink-connector-kafka_2.11:1.13.6
flink-connector-mysql-cdc:2.20
flink-connector-kafka_2.11:1.13.6

报错

java.lang.NoClassDefFoundError: org/apache/kafka/common/utils/ThreadUtils at com.ververica.cdc.debezium.internal.FlinkOffsetBackingStore.start(FlinkOffsetBackingStore.java:152) ~[flink-connector-debe

解决方案

添加kafka依赖


    org.apache.kafka
    kafka-clients
    2.7.0

代码案例

import org.apache.flink.configuration.Configuration;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.table.api.EnvironmentSettings;
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;
public class Testkafka {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);
        env.setParallelism(1);
//        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        EnvironmentSettings settings = EnvironmentSettings.newInstance().inStreamingMode().useBlinkPlanner().build();
        StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env, settings);
        Configuration configuration = tableEnv.getConfig().getConfiguration();
//        configuration.setString("table.exec.mini-batch.enabled", "true"); // enable mini-batch optimization
//        configuration.setString("table.exec.mini-batch.allow-latency", "5 s"); // use 5 seconds to buffer input records
//        configuration.setString("table.exec.mini-batch.size", "5000"); // the maximum number of records can be buffered by each aggregate operator task
        //configuration.setString("table.exec.state.ttl", "60000");
       

        String skersker = "create table source2_1 ( n" +
                "  id BIGINT,n" +
                "  day_time VARCHAR,n" +
                "  amnount BIGINT,n" +
                "  proctime AS PROCTIME ()n" +
                ")n" +
                " with ( n" +
                "   'connector' = 'kafka',n" +
                "   'topic' = 'source1',n" +
                "   'properties.bootstrap.servers' = '192.168.50.111:9092,192.168.50.112:9092,192.168.50.113:9092', n" +
                "   'properties.group.id' = 'flink_gp_test2-1',n" +
                "   'scan.startup.mode' = 'earliest-offset',n" +
                "   'format' = 'json',n" +
                "   'json.fail-on-missing-field' = 'false',n" +
                "   'json.ignore-parse-errors' = 'true'n" +
                " )";
        String flink_test_mt = "CREATE TABLE flink_test_mt (n" +
                "  m_type varchar(255),n" +
                "  m_id varchar(255),n" +
                "  m_sugg_word varchar(255),n" +
                "  m_update_time timestamp,n" +
                "  primary key(m_type)  NOT ENFORCED n" +
                ") WITH (n" +
                "  'connector' = 'mysql-cdc',n" +
                "  'hostname' = '192.168.50.120',n" +
                "  'port' = '3336',n" +
                "  'username' = 'root',n" +
                "  'password' = '123456',n" +
                "  'database-name' = 'mydb',n" +
                "  'table-name' = 'flink_test_mt_tmp'n" +
                ")";
        String sink = "create table source2_2 ( n" +
                "  id BIGINT,n" +
                "  coupon_amnount BIGINT,n" +
                "  proctime AS PROCTIME ()n" +
                ")n" +
                " with ( n" +
                "   'connector' = 'kafka',n" +
                "   'topic' = 'source2',n" +
                "   'properties.bootstrap.servers' = '192.168.50.111:9092,192.168.50.112:9092,192.168.50.113:9092', n" +
                "   'properties.group.id' = 'flink_gp_test2-2',n" +
                "   'scan.startup.mode' = 'earliest-offset',n" +
                "   'format' = 'json',n" +
                "   'json.fail-on-missing-field' = 'false',n" +
                "   'json.ignore-parse-errors' = 'true'n" +
                " )";
        String sink_kafka ="CREATE TABLE sink (n" +
                "   day_time string,n" +
                "   total_gmv bigint,n" +
                "   PRIMARY KEY (day_time) NOT ENFORCEDn" +
                ") WITH (n" +
                "  'connector' = 'upsert-kafka',n" +
                "  'topic' = 'sink',n" +
                "  'properties.bootstrap.servers' = '192.168.50.111:9092,192.168.50.112:9092,192.168.50.113:9092', n" +
                "  'key.format' = 'json',n" +
                "  'value.format' = 'json'n" +
                ")";


        tableEnv.executeSql(skersker);
        tableEnv.executeSql(flink_test_mt);
        tableEnv.executeSql(sink_kafka);
        tableEnv.executeSql(sink);
        tableEnv.executeSql(" INSERT INTO sink  SELECT n" +
                "  day_time, n" +
                "  SUM(amnount - coupon_amnount) AS total_gmv n" +
                "FROM n" +
                "  (n" +
                "    SELECtn" +
                "      a.day_time as day_time, n" +
                "      a.amnount as amnount, n" +
                "      b.coupon_amnount as coupon_amnount n" +
                "    FROM n" +
                "      source2_1 as a n" +
                "      LEFT JOIN source2_2 b on b.id = a.idn" +
                "  ) n" +
                "GROUP BY n" +
                "  day_time").print();


    }
}

插入图片 暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016835.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号