You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flink 1.14.4对接HBase 2.2.0创建Sink表失败求助

错误原因分析

核心问题是Flink版本与HBase连接器版本不兼容:
你使用的HBase 2.2连接器依赖了org.apache.flink.table.factories.DynamicTableFactory$Context.getPhysicalRowDataType()方法,但该方法是Flink 1.15及更高版本才引入的API,Flink 1.14.4中不存在这个方法,因此抛出NoSuchMethodError。

解决方案

1. 匹配对应版本的HBase连接器

下载与Flink 1.14.4严格匹配的HBase 2.2连接器Jar包:

  • 确保Jar包命名格式为flink-connector-hbase-2.2_{Scala版本}-1.14.4.jar(比如你的Flink基于Scala 2.12,就选flink-connector-hbase-2.2_2.12-1.14.4.jar)
  • 不要使用针对Flink 1.15+版本的连接器,避免API不兼容

2. 清理依赖冲突

  • 检查运行环境中是否混入了其他版本的Flink或HBase相关Jar包,删除多余的冲突依赖
  • 集群环境:将正确的连接器Jar包放入Flink安装目录的lib文件夹,重启Flink集群
  • 本地开发:确保IDE或运行脚本的依赖路径中只有对应版本的Jar包

3. 验证HBase表结构

确认HBase中已创建test表,且包含family2、family3两个列族,可通过HBase Shell执行:

create 'test', 'family2', 'family3'

4. 确认数据写入逻辑

检查table_api_table中的字段datemin、datemax、channel_title、channel_id:

  • 字段类型需与Sink表定义的STRING类型匹配
  • 确保所有字段都存在,避免查询时出现字段缺失错误

内容的提问来源于stack exchange,提问作者Zak_Stack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:50:27