aliyun-odps-java-sdk icon indicating copy to clipboard operation
aliyun-odps-java-sdk copied to clipboard

aws-jdk21环境 ArrowStreamRecordReade.read()报错

Open dawnDy opened this issue 3 months ago • 1 comments

org.apache.arrow.memory.CheckAllocator] [CheckAllocator.java:99] [trace=,span=] - Using DefaultAllocationManager at memory-netty-18.2.0.jar!/org/apache/arrow/memory/netty/DefaultAllocationManagerFactory.class java.lang.RuntimeException: Failed to initialize MemoryUtil. You must start Java with --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED (See https://arrow.apache.org/docs/java/install.html) at org.apache.arrow.memory.util.MemoryUtil.(MemoryUtil.java:140) at org.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:212) at org.apache.arrow.memory.ArrowBuf.nioBuffer(ArrowBuf.java:207) at org.apache.arrow.vector.ipc.ReadChannel.readFully(ReadChannel.java:83) at org.apache.arrow.vector.ipc.message.MessageSerializer.readMessageBody(MessageSerializer.java:748) at org.apache.arrow.vector.ipc.message.MessageChannelReader.readNext(MessageChannelReader.java:62) at org.apache.arrow.vector.ipc.ArrowStreamReader.loadNextBatch(ArrowStreamReader.java:144) at com.aliyun.odps.data.ArrowReaderWrapper.read(ArrowReaderWrapper.java:24) at com.aliyun.odps.data.ArrowStreamRecordReader.read(ArrowStreamRecordReader.java:170)

odps-sdk-core版本从0.50.5-public到0.54.0-public都有这个问题 需要手动在启动参数新加--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED 。这个兼容处理吗

dawnDy avatar Dec 17 '25 02:12 dawnDy

是的,由于 SDK 使用 Apache Arrow 作为数据传输协议(之一)。 在 JDK 9+ 的版本,需要增加 --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED 当然,在环境变量里增加也可以

dingxin-tech avatar Dec 17 '25 03:12 dingxin-tech