开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink cdc读parquet格式数据报这个错误谁遇到过啊?

NoSuchMethodError shaded.parquet.org.apache.thrift.protocol.TProtocol.getSchema
flink cdc读parquet格式数据报这个错误谁遇到过啊? 原生java读取就可以 应该是jar包冲突了怎么办?12021dece385c49b16adc7c5caf4663a.png

展开
收起
小小鹿鹿鹿 2024-02-06 21:15:57 22 0
1 条回答
写回答
取消 提交回答
  • 在Apache Flink CDC中读取Parquet格式数据时,如果遇到NoSuchMethodError: shaded.parquet.org.apache.thrift.protocol.TProtocol.getSchema这样的错误,这通常意味着在运行时环境中存在不同版本的Parquet或Thrift相关库,从而引发了方法签名不匹配的错误,也就是所谓的jar包冲突。

    解决jar包冲突的方法:

    1. 检查依赖树

      • 使用Maven或Gradle等构建工具,查看项目的依赖树,确定哪些库包含了shaded.parquet.org.apache.thrift.protocol.TProtocol类,并检查其版本是否一致。
    2. 统一依赖版本

      • 确保所有与Parquet和Thrift相关的库版本统一。在项目构建文件(如pom.xml或build.gradle)中指定相同版本的依赖,以消除不同版本带来的冲突。
    3. 排除冲突的jar

      • 如果某个依赖库包含了旧版本的Parquet或Thrift,而在主项目中又需要使用新版本,可以在构建文件中对该依赖库进行排除操作,排除掉它的Parquet或Thrift相关部分,然后显式引入所需版本的依赖。
    4. 使用shade plugin

      • 在Maven项目中,可以使用maven-shade-plugin来重新打包,对冲突的类进行shade处理,即将冲突的类重命名,以避免运行时的类加载冲突。
    5. 使用scope限定

      • 对于只需要在编译时使用而运行时不需要的冲突依赖,可以将其作用域设置为provided,使其在运行时不参与类加载。
    2024-02-19 15:23:18
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载