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

请教个Flink问题,从hudi读数据,报错,什么原因?

请教个Flink问题,从hudi读数据,报错NoSuchMethodError:org.apache.hudi.format.cow.vector.reader.PaequetColumnarRowSplit.getRecord() 使用的包是hudi-flink1.15 什么原因?

展开
收起
cuicuicuic 2024-03-25 11:05:57 35 0
3 条回答
写回答
取消 提交回答
  • 先手动把org.apache.hudi.format.cow.vector.reader.PaequetColumnarRowSplit这个类所属jar打印出来, 看一下到底是由哪个依赖引入的冲突吧.Class<?> clazz = Class.forName("com.xxx.xxx.XXX"); # 类名
    CodeSource cs = clazz.getProtectionDomain().getCodeSource();
    String location = cs.getLocation().getPath(); System.out.println(location); 可以参考这个改一下 ,此回答整理自钉群“【②群】Apache Flink China社区”

    2024-03-26 08:27:41
    赞同 展开评论 打赏
  • 阿里云大降价~

    这个错误NoSuchMethodError:org.apache.hudi.format.cow.vector.reader.PaequetColumnarRowSplit.getRecord()表明在运行时,Flink正在尝试调用Hudi的某个方法,但是该方法在Hudi的版本中并不存在或已经被更改。

    这个问题可能是由于版本不兼容引起的。可能的情况是:

    1. Flink和Hudi的版本不匹配。你提到的"使用的包是hudi-flink1.15",这可能意味着你的Flink和Hudi版本并不完全兼容。你需要确认你的Flink和Hudi版本是否兼容。

    2. 你可能在项目中混用了不同版本的Hudi库。这可能会导致类加载器在运行时加载错误的类版本。你需要检查并确保项目中所有的Hudi依赖都是相同的版本。

    解决这个问题的方法是:

    1. 确认并更新你的Flink和Hudi版本,使其相互兼容。你可以在Flink和Hudi的官方文档中查找版本兼容性信息。

    2. 检查并清理你的项目依赖,确保所有Hudi库的版本都是一致的。你可以使用Maven或Gradle等工具来管理你的项目依赖。

    如果问题仍然存在,建议你提供更多的错误信息和上下文,这将有助于更准确地定位问题。

    2024-03-25 18:25:40
    赞同 展开评论 打赏
  • 当使用 Apache Flink 读取 Hudi 数据时,如果遇到了 NoSuchMethodError 异常,尤其是指向类似 org.apache.hudi.format.cow.vector.reader.ParquetColumnarRowSplit.getRecord() 这样的方法时,这通常是由于不同版本之间的类库兼容性问题造成的。

    根据提供的信息,您正在使用 hudi-flink1.15 这个包集成 Flink 1.15 版本与 Hudi 进行交互。此类错误意味着,在运行时,加载的 Hudi 类库版本与 Flink-Hudi connector 所期望的方法签名不匹配。

    解决这个问题的步骤可能包括:

    • 确认依赖版本:

    检查项目中使用的 Hudi connector 版本是否确实支持 Flink 1.15 并且与 Hudi core 库兼容。有时候即使 connector 版本正确,也可能因为核心 Hudi 库版本不匹配而导致此类问题。

    • 依赖冲突:

    检查是否存在不同版本的 Hudi 或 Parquet 相关依赖,确保所有的相关库版本统一,不存在版本冲突。

    • 升级或降级:

    根据 Hudi 官方文档推荐的版本搭配,考虑升级或降级 Flink、Hudi connector 或 Hudi 核心库的版本。

    • 清理缓存:

    如果是在开发环境中,确保清理旧的 classpath 缓存,重新构建项目以确保加载的是最新的依赖库。

    • 查阅官方文档和已知问题:

    查阅 Apache Hudi 和 Apache Flink 的官方文档,看看是否有提到特定版本组合下的已知问题和解决方案。

    2024-03-25 11:39:49
    赞同 展开评论 打赏

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

相关产品

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

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