第一种报错信息:
java.lang.RuntimeException: Cannot create connection to HBase.
at org.apache.flink.connector.hbase.sink.HBaseSinkFunction.open(HBaseSinkFunction.java:99)
at org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:34)
at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:102)
at org.apache.flink.table.runtime.operators.sink.SinkOperator.open(SinkOperator.java:58)
at org.apache.flink.streaming.runtime.tasks.OperatorChain.initializeStateAndOpenOperators(OperatorChain.java:437)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreGates(StreamTask.java:574)
at org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$SynchronizedStreamTaskActionExecutor.call(StreamTaskActionExecutor.java:100)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restore(StreamTask.java:554)
at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:756)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:563)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: java.lang.reflect.UndeclaredThrowableException
at org.apache.flink.hbase.shaded.org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java

本文分析了Apache Flink在连接HBase时遇到的两种运行时异常,这些异常源于配置文件中`hbase.status.listener.class`配置项的不匹配。问题在于Flink的HBase连接器和HBase客户端的配置文件存在冲突。解决方案包括更换Flink的HBase连接器版本或者直接修改`ConnectionImplementation`源码以避免从配置文件读取该配置。建议采用更改依赖为flink-connector-hbase并引入hbase-client的方式来解决此问题。
最低0.47元/天 解锁文章
1702





