【phoenix】flink程序执行phoenix,phoenix和flink-sql-connector-hbase包类不兼容

问题报错

复制代码
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: class org.apache.flink.hbase.shaded.org.apache.hadoop.hbase.client.ClusterStatusListener$MulticastListener not org.apache.hadoop.hbase.client.ClusterStatusListener$Listener

如下图:interface是在ClusterStatusListener中的内部接口,flink编译中hbase包 shade掉了,即更改了类路径,使其以org.apache.flink.hbase.shaded.开头,而phoenix-5.0.0-client.jar没有对hbase类路径修改。

flink 程序一般优先加载flink-开头的jar包,所以同时加载了flink-sql-connector-hbase.jar包的部分类和phoenix-5.0.0-client.jar的类,而这两个包之前的类可能因类路径不一致存在不兼容关系。

flink-sql-connector-hbase.jar的类路径:

phoenix-5.0.0-client.jar的类路径:

解决方式

(1)方法一:如果至用到phoenix,直接删除flink-hbase相关的包即可。

(2)方法二:重新编译flink-hbase源码取消shade hbase包。

相关推荐
nvd112 天前
深入剖析 Apache Flink 流批双引擎的动态扩缩容架构:机制演进、状态重对齐与生产落地推导
架构·flink·apache
starzy19902 天前
Flink Task 执行源码深度剖析:从 Task 线程启动到算子链执行的完整链路
大数据·flink
starzy19903 天前
Flink Task 调度任务深度剖析:从调度策略到故障恢复的完整链路
java·大数据·flink
starzy19903 天前
Flink 任务调度 Graph 源码深度剖析:从 StreamGraph 到 ExecutionGraph 的三层演进
java·大数据·flink
用户3610588626124 天前
Flink Time 之 AllowedLateness 深度剖析:从本质定义到内部机制与实战最佳实践
大数据·flink
starzy19904 天前
Flink SlotPool 申请资源源码跟踪:从调度器请求到Task部署的完整链路
大数据·flink
starzy19904 天前
Flink SlotManager 分配 Slot 源码深度剖析:从请求接收到状态转换的完整链路
大数据·flink
池佳齐4 天前
【软考高级架构师案例】流计算 vs 批处理,Spark 和 Flink 该怎么选?
大数据·flink·spark
starzy19905 天前
Flink 注册Slot源码深度剖析:从TaskManager注册到Slot状态机的完整链路
大数据·flink
用户3610588626125 天前
Flink Time 之企业级 WaterMark 案例分析:从四大场景到调优体系与事故排查
大数据·flink