问题标签 [kryo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Why is InputStream constructed from Channel much faster than one constructed from FileDescriptor?
When constructing an InputStream on a RandomAccessFile in order to have Kryo deserialize objects from it, it seems it makes a HUGE difference for performance whether one constructs the mediating InputStream through the file's Channel (gives good performance) or through its FileDescriptor (gives terrible performance):
InputWithRandomAccessFile is my own class extending Kryo's Input class, with the only additional behavior that it seeks the correct position in the R/A file when #setPosition is called.
Reading 3,000 fixed-size objects from input1 takes around 600 ms, from input2 it takes around 16 seconds.
apache-spark - 从 Spark RDD 读取 Kryo 文件
我是 Spark 和 Scala 的新手。
我需要读取和分析 Spark 中的一个文件,该文件用我的 scala 代码编写,并使用 Kryo 序列化:
这是用我的对象(myScalaObject)序列化创建文件的伪代码,这是一个复杂的对象。
该文件似乎写得很好,但是当我在 Spark RDD 中读取它时遇到问题
Spark中的伪代码:
当我尝试执行它时,我收到此错误:
可以在 Spark 中读取这种类型的文件吗?
如果此解决方案不可行,那么创建复杂文件结构以在 Spark 中读取的好解决方案是什么?
谢谢你
java - 将 kryo 对象存储在已编译的 jar 中?
我有一个HashMap
我想坚持并快速访问。我使用 Kryo 序列化对象
我可以成功反序列化
log.info 显示我的地图中有 231,045 个条目。
现在,我想在编译 *-jar-with-dependencies.jar 后访问我的 .kryo 文件(我正在使用 Maven)。因此,我使用的不是FileInputStream
读取自 的 asrc/main/resources/
MyClass.class.getResourceAsStream
log.error 永远不会显示,并且 log.info 说我的地图中有 0 个条目。为什么?isr
is not null 所以它正在读取一些东西,Kryo 似乎无法反序列化它并且不提供任何错误。
java - 如何在 Hazelcast 中使用 kryo 实现多个序列化器?
我有一个现有的域模型,我不想更改它以使用 Hazelcast。为此,我想使用 StreamSerializer 接口和 Kryo。我查看了https://github.com/hazelcast/hazelcast-book-examples/blob/master/chapter-serialization/kryo-serializer/src/main/java/PersonKryoSerializer.java示例(或类似的http:// /blog.hazelcast.com/2013/10/16/kryo-serializer/),但我想知道如何继续为其他类添加更多序列化程序。
是否建议再次使用构造创建一个新StreamSerializer
类?ThreadLocal
这意味着,将再次创建一个新的 Kryo 对象,可以吗?还是Kryo
在整个应用程序中只有 1 个对象更好?
有些类没有默认构造函数,我该如何适应?
java - kryo.readObject 导致 NullPointerException 与 ArrayList
当我使用 kryo 反序列化 ArrayList 对象时,我得到一个 NullPointerException。
我可以看到 StdInstantiatorStrategy 创建了一个 ArrayList 而没有调用其构造函数,而其中一个字段未初始化导致异常。
文档说应该首先调用无参数构造函数,如果没有可用的,则应该使用 StdInstantiatorStrategy 逐个字段进行初始化。
我究竟做错了什么?
scala - 如何使用 chill-avro 在 Spark 中加载 Avro GenericRecords?
我尝试在 Spark 中使用 Avro GenericRecords,但得到了 java.io.NotSerializableException: org.apache.avro.mapred.AvroWrapper
https://gist.github.com/rjurney/8b90e9b709d061cc0b94
chill 项目增加了对 Scala 的 Kryo/Avro 支持。如何结合 Kryo、Avro、chill 和 Spark 来加载 Avros?
apache-storm - Storm 0.9.1 和 Titan 图数据库 0.4.2 中的 Kryo 兼容性,使用 apache cassandra 2.0.7 作为存储后端
我们使用的是使用 Kryo 2.17 的 Storm 0.9.1,我们有将数据插入到内部使用 Kryo 2.21 的 Titan 图形数据库的模块,这会导致以下问题:
java.lang.RuntimeException: com.esotericsoftware.kryo.KryoException: java.lang.IllegalArgumentException: 无法将 com.thinkaurelius.titan.graphdb.types.TypeAttributeType 字段 com.thinkaurelius.titan.graphdb.types.TypeAttribute.type 设置为 com .thinkaurelius.titan.graphdb.types.TypeAttribute 序列化跟踪:type (com.thinkaurelius.titan.graphdb.types.TypeAttribute)
我们如何解决这个问题,因为在 Storm 中将 Kryo 升级到 2.21 不会导致此类方法错误。我们还尝试在泰坦图数据库中将 Kryo 降级到 2.17,但是我们面临与上述相同的问题。
java - Kryo 反序列化失败并出现“KryoException:缓冲区下溢”
我使用 Kryo 将对象写入字节数组。它工作正常。但是当字节数组转换为对象时,它会抛出com.esotericsoftware.kryo.KryoException: Buffer underflow.
异常。
这是我的反序列化:
此外,始终无法在我的应用程序中定义对象类型。在最后的过程中,发生了类转换。所以,
如何解决上述反序列化错误
有没有办法在不将类放入 readObject(...,ClassName) 的情况下创建 Object ?
java - 在 Titan 数据库中使用 kryo 序列化对象
我会序列化 Titan 数据库中的一个基本对象。但不起作用。我想序列化我的对象以便在我的 Titan 数据库中注册它。但我不明白为什么会出现这个问题。我发布了我的源代码,如果您有文档,我很高兴接受。
通常我创建我的对象:
在我尝试这个之后:
但我有一个例外:
你能帮我吗 ?
谢谢。
netty - 带有字符串的消息的 Netty 编解码器
我怀疑我的 Netty 4.0.19 客户端服务器应用程序性能缓慢的编解码器不好。简单的消息对象由一个整数 id 和两个带有它们的长度的字符串组成。我在 ReplayingDecoder 中使用 CharsetDecoder 从字节中获取字符串:
在 ByteToMessageDecoder 我使用快速 Kryo 库进行序列化(可以避免在这里创建间接堆缓冲区吗?):
目前,ReplayingDecoder 似乎在某种程度上优于 ByteToMessageDecoder。此外,我在 DefaultEventExecutorGroup 中运行了一些简单的后端逻辑(所以我认为它不会阻塞事件线程),它使用 writeAndFlush 查找 HashMaps 并将消息写入 ChannelHandlerContext。谢谢