如何解决如何将箭头矢量放入 Ignite
我尝试创建一些箭头向量并将它们直接放在ignite中,但失败了,我的问题是:
我的代码:
private static final int DATA_SIZE = 1000;
try(Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
BufferAllocator bufferAllocator = new RootAllocator(1024 * 1024);
IntVector intVector = new IntVector("int_vector",bufferAllocator);
VarCharVector varCharVector = new VarCharVector("varchar_vector",bufferAllocator);
intVector.allocateNew(DATA_SIZE);
intVector.setValueCount(DATA_SIZE);
varCharVector.allocateNew(DATA_SIZE);
varCharVector.setValueCount(DATA_SIZE);
for (int i = 0; i < DATA_SIZE; i++) {
intVector.set(i,i);
varCharVector.set(i,new Text("value-" + i));
}
try (IgniteCache<String,ValueVector> cache = ignite.getorCreateCache(CACHE_NAME)) {
cache.put("key_int",intVector);
cache.put("key_varchar",varCharVector);
} finally {
ignite.destroyCache(CACHE_NAME);
}
}
异常:
[2021-05-17 17:17:38,844][ERROR][main][BinaryContext] Failed to deserialize object [typeName=io.netty.buffer.PoolArena$DirectArena]
class org.apache.ignite.binary.BinaryObjectException: Failed to read field [name=chunkListMetrics]
at org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:192)
at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:888)
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to unmarshal object with optimized marshaller
at org.apache.ignite.internal.binary.BinaryUtils.doReadOptimized(BinaryUtils.java:1788)
at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1958)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to deserialize object with given class loader: [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2,err=Failed to deserialize object [typeName=java.util.Collections$UnmodifiableList]]
at org.apache.ignite.internal.marshaller.optimized.OptimizedMarshaller.unmarshal0(OptimizedMarshaller.java:242)
Caused by: java.io.IOException: Failed to deserialize object [typeName=java.util.Collections$UnmodifiableList]
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readobject0(OptimizedobjectInputStream.java:350)
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readobjectOverride(OptimizedobjectInputStream.java:198)
Caused by: java.io.IOException: Failed to deserialize field [name=arena]
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readFields(OptimizedobjectInputStream.java:524)
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readSerializable(OptimizedobjectInputStream.java:608)
Caused by: java.io.IOException: Failed to deserialize object [typeName=io.netty.buffer.PoolArena$DirectArena]
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readobject0(OptimizedobjectInputStream.java:350)
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readobjectOverride(OptimizedobjectInputStream.java:198)
Caused by: java.io.IOException: Failed to deserialize field [name=activeBytesHuge]
Caused by: java.io.IOException: Failed to deserialize object [typeName=io.netty.util.internal.LongAdderCounter]
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readobject0(OptimizedobjectInputStream.java:350)
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readobjectOverride(OptimizedobjectInputStream.java:198)
at java.io.ObjectInputStream.readobject(ObjectInputStream.java:473)
at java.io.ObjectInputStream.readobject(ObjectInputStream.java:440)
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readFields(OptimizedobjectInputStream.java:517)
... 121 more
Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readSerializable(OptimizedobjectInputStream.java:604)
at org.apache.ignite.internal.marshaller.optimized.OptimizedClassDescriptor.read(OptimizedClassDescriptor.java:953)
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readobject0(OptimizedobjectInputStream.java:346)
... 125 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ignite.internal.marshaller.optimized.OptimizedobjectInputStream.readSerializable(OptimizedobjectInputStream.java:601)
... 127 more
Caused by: java.io.InvalidobjectException: Proxy required
at java.util.concurrent.atomic.LongAdder.readobject(LongAdder.java:265)
... 132 more
[17:17:38] Ignite node stopped OK [uptime=00:00:01.107]
Exception in thread "main" java.lang.NullPointerException
at org.apache.ignite.examples.storageEngine.ArrowGandivaTest.main(ArrowGandivaTest.java:40)
解决方法
我不确定这里会发生什么,因为实际上可以将 LongAdder 存储在缓存中。
我想你最好显式地序列化这些向量,因为它们在被放入后无法保留(共享)池分配器,并且无需额外的努力即可从/到 Ignite。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。