创建JDBC Catalog连接另一个Doris集群 中的表,不加limit限制查询数据报错,加limit限制查询成功。

Viewed 40

求助求助!使用JDBC Catalog 连接Doris集群遇到下面问题:
Doris2.1.0版本,目标Doris集群2.1.2版本

创建JDBC Catalog连接目标集群,执行select * from table 查询有的表能成功,有的表失败报错信息:

MySQL [(none)]> select * from doris_eosp.eosp.yj_nb_temp_view;
ERROR 1105 (HY000): errCode = 2, detailMessage = [CANCELLED]UdfRuntimeException: jdbc get block address: 
CAUSED BY: NullPointerException: null

或者:

SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = ()[CANCELLED]UdfRuntimeException: Initialize datasource failed: 
CAUSED BY: CommunicationsException: Communications link failure

The last packet successfully received from the server was 74,714 milliseconds ago. The last packet sent successfully to the server was 74,715 milliseconds ago.
CAUSED BY: CJCommunicationsException: Communications link failure

The last packet successfully received from the server was 74,714 milliseconds ago. The last packet sent successfully to the server was 74,715 milliseconds ago.
CAUSED BY: EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

查看BE日志

W20240918 15:48:00.542454 437680 scanner_scheduler.cpp:276] Scan thread read VScanner failed: [INTERNAL_ERROR]UdfRuntimeException: jdbc get block address: 
CAUSED BY: NullPointerException: null

	0#  doris::JniUtil::GetJniExceptionMsg(JNIEnv_*, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at /home/zcp/repo_center/doris_release/doris/be/src/util/jni-util.h:110
	1#  doris::vectorized::JdbcConnector::get_next(bool*, doris::vectorized::Block*, int) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
	2#  doris::vectorized::NewJdbcScanner::_get_block_impl(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:449
	3#  doris::vectorized::VScanner::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/vscanner.cpp:0
	4#  doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exec/scan/vscanner.cpp:85
	5#  doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:345
	6#  std::_Function_handler<void (), doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_3>::_M_invoke(std::_Any_data const&) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:701
	7#  doris::ThreadPool::dispatch_thread() at /home/zcp/repo_center/doris_release/doris/be/src/util/threadpool.cpp:0
	8#  doris::Thread::supervise_thread(void*) at /var/local/ldb_toolchain/bin/../usr/include/pthread.h:562
	9#  ?
	10# __clone
W20240918 15:48:00.542570 437614 task_scheduler.cpp:348] Pipeline task failed. query_id: 0-0|39277d4fd84d42f6-b7f5b5d3e48b24d7 reason: [INTERNAL_ERROR]UdfRuntimeException: jdbc get block address: 
CAUSED BY: NullPointerException: null

FE日志:

2024-09-18 15:43:45,706 WARN (mysql-nio-pool-11722|945695) [StmtExecutor.sendResult():1693] cancel fragment query_id:aa0d434a75244a58-92aad57fd613d8e9 cause errCode = 2, detailMessage =[CANCELLED]UdfRuntimeException: jdbc get block address:
CAUSED BY: NullPointerException: null
2024-09-18 15:43:45,706 WARN (mysql-nio-pool-11722|945695) [StmtExecutor.executeByLegacy():869] execute Exception. stmt[6397800, aa0d434a75244a58-92aad57fd613d8e9]
org.apache.doris.common.UserException: errCode = 2, detailMessage = [CANCELLED]UdfRuntimeException: jdbc get block address:
CAUSED BY: NullPointerException: null
        at org.apache.doris.qe.Coordinator.getNext(Coordinator.java:1362) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.StmtExecutor.sendResult(StmtExecutor.java:1626) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.StmtExecutor.handleQueryStmt(StmtExecutor.java:1556) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.StmtExecutor.handleQueryWithRetry(StmtExecutor.java:708) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:795) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:525) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:472) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.ConnectProcessor.executeQuery(ConnectProcessor.java:265) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:183) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:176) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:205) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:258) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_331]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_331]
        at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_331]
2024-09-18 15:43:45,707 WARN (mysql-nio-pool-11722|945695) [ReadListener.lambda$handleEvent$0():60] Exception happened in one session(org.apache.doris.qe.ConnectContext@db38495).
java.nio.channels.ClosedChannelException: null
        at sun.nio.ch.SocketChannelImpl.ensureWriteOpen(SocketChannelImpl.java:268) ~[?:1.8.0_331]
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:459) ~[?:1.8.0_331]
        at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:153) ~[xnio-nio-3.8.9.Final.jar:3.8.9.Final]
        at org.xnio.conduits.ConduitStreamSinkChannel.write(ConduitStreamSinkChannel.java:150) ~[xnio-api-3.8.9.Final.jar:3.8.9.Final]
        at org.xnio.channels.Channels.writeBlocking(Channels.java:175) ~[xnio-api-3.8.9.Final.jar:3.8.9.Final]
        at org.apache.doris.mysql.MysqlChannel.realNetSend(MysqlChannel.java:379) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.mysql.MysqlChannel.flush(MysqlChannel.java:411) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.mysql.MysqlChannel.sendAndFlush(MysqlChannel.java:494) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.ConnectProcessor.finalizeCommand(ConnectProcessor.java:486) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:260) ~[doris-fe.jar:1.2-SNAPSHOT]
        at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_331]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_331]
        at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_331]
2024-09-18 15:43:45,707 WARN (thrift-server-pool-13|675) [QeProcessorImpl.reportExecStatus():225] ReportExecStatus() runtime error, query aa0d434a75244a58-92aad57fd613d8e9 with type SELECT does not exist

1 Answers

换成 mysql8.0.25 以上 的 jdbc driver看下