问题报错
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包。