微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将箭头矢量放入 Ignite

如何解决如何将箭头矢量放入 Ignite

我尝试创建一些箭头向量并将它们直接放在ignite中,但失败了,我的问题是:

  1. Ignite 是否支持存储箭头数据?
  2. 如果Ignite支持箭头数据,如何在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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?