Flink CDC 编程遇到的问题

来源:19-5 基于DataStream API的Flink CDC编程实战

慕容3565349

2022-04-09

package com.imooc.flink.cdc

import com.ververica.cdc.connectors.mysql.MySqlSource
import com.ververica.cdc.connectors.mysql.table.StartupOptions
import com.ververica.cdc.debezium.{DebeziumSourceFunction, StringDebeziumDeserializationSchema}
import org.apache.flink.api.scala._
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment

object FlinkCDCDataStreamApp {
  def main(args: Array[String]): Unit = {
    val environment = StreamExecutionEnvironment.getExecutionEnvironment
    environment.setParallelism(1)

    val source: DebeziumSourceFunction[String] = MySqlSource.builder()
      .hostname("localhost").port(3306)
      .username("root").password("1997")
      .databaseList("pk_cdc").tableList("user")
      .startupOptions(StartupOptions.initial())
      //设置反序列化
      .deserializer(new StringDebeziumDeserializationSchema)
      .build()

    environment.addSource(source).print()

    environment.execute("FlinkCDCDataStreamApp");
  }

}


错误:


Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/shaded/guava18/com/google/common/collect/Maps
	at com.ververica.cdc.connectors.mysql.MySqlValidator.<init>(MySqlValidator.java:50)
	at com.ververica.cdc.connectors.mysql.MySqlSource$Builder.build(MySqlSource.java:230)
	at com.imooc.flink.cdc.FlinkCDCDataStreamApp$.main(FlinkCDCDataStreamApp.scala:20)
	at com.imooc.flink.cdc.FlinkCDCDataStreamApp.main(FlinkCDCDataStreamApp.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.shaded.guava18.com.google.common.collect.Maps
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 4 more

Process finished with exit code 1

Scala用了2.11和2.12的都试了

写回答

1回答

Michael_PK

2022-04-10

遇到类似的ClassNotFoundException问题:ClassNotFoundException: org.apache.flink.shaded.guava18.com.google.common.collect.Map


按照如下思路解决:找到这个类所在的jar包,添加到pom中



你使用的flink版本和cdc的版本是否和上课的不一致? 


0
0

Flink+ClickHouse 玩转企业级实时大数据开发

已经在做大数据,Flink助力轻松提薪;尚未入行,让你弯道超车

1000 学习 · 225 问题

查看课程