UDF执行时报错

starrocks版本是2.3.1,按教程执行一个 UDF```
SELECT MY_UDF_JSON_GET(’{“key”:"{\“in\”:2}"}’, ‘$.key.in’);

然后be的服务就停了

Sep 01, 2022 11:47:56 AM com.baidu.jprotobuf.pbrpc.transport.ChannelPoolObjectFactory wrap
SEVERE: failed to get result from stp
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /192.168.199.133:8260
Caused by: java.net.ConnectException: Connection refused
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
	at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:707)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.lang.Thread.run(Thread.java:750)

Sep 01, 2022 11:47:56 AM com.baidu.jprotobuf.pbrpc.transport.ChannelPool getChannel
SEVERE: Unable to validate object
java.util.NoSuchElementException: Unable to validate object
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:506)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
	at com.baidu.jprotobuf.pbrpc.transport.ChannelPool.getChannel(ChannelPool.java:80)
	at com.baidu.jprotobuf.pbrpc.transport.RpcChannel.getConnection(RpcChannel.java:73)
	at com.baidu.jprotobuf.pbrpc.client.ProtobufRpcProxy.invoke(ProtobufRpcProxy.java:499)
	at com.sun.proxy.$Proxy31.cancelPlanFragmentAsync(Unknown Source)
	at com.starrocks.rpc.BackendServiceProxy.cancelPlanFragmentAsync(BackendServiceProxy.java:145)
	at com.starrocks.qe.Coordinator$BackendExecState.cancelFragmentInstance(Coordinator.java:2021)

 但是我测试了一下端口是通的,请问是什么问题

BE 配置一下JAVA_HOME

因为是学习,所以都是be,fe都是一台机器,您这个JAVA_HOME是指什么

启动BE之前配置一下JAVA_HOME环境变量,export JAVA_HOME=XXXXXXX

还是不行,我是一台机器,起了3个be,跟这个有关吗

贴一下be.out看看

start time: Thu Sep 1 14:18:45 CST 2022
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
start time: Thu Sep 1 14:21:44 CST 2022

看别的帖子,所以之前用的openjdk换成了oracle的

JAVA_HOME 你是怎么配的呢

哪个版本的JDK?

[root@localhost jdk1.8.0_341-amd64]# echo $JAVA_HOME
/usr/java/jdk1.8.0_341-amd64
[root@localhost jdk1.8.0_341-amd64]# /usr/java/jdk1.8.0_341-amd64/bin/java -version
java version “1.8.0_341”
Java™ SE Runtime Environment (build 1.8.0_341-b10)
Java HotSpot™ 64-Bit Server VM (build 25.341-b10, mixed mode)

执行一下 export LIBHDFS_OPTS=" -Xcheck:jni -verbose:jni -verbose:class"

执行以上刚才的命令,然后重启一下BE

还是不行,日志里好像多了一行Checked JNI functions are being used to validate JNI usage

https://cdn-thirdparty.starrocks.com/java-se-8u41-ri.tar.gz 用这个JDK试一下呢

1赞

重新部署了一边,正常了,可能是JAVA_HOME的问题或者是3个be的问题,感谢帮助

最后是怎么解决的呢,用新的JDK?

重新部署了一遍,只是没弄3个be

保证FE 、BE都使用同一个编译时的JDK版本即可,并配置JAVA HOME
https://cdn-thirdparty.starrocks.com/java-se-8u41-ri.tar.gz