问题标签 [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 - 在 kryonet 中发送和接收数组
我正在使用 kryonet 创建一个服务器/客户端系统。
我正在尝试从服务器向我的客户端发送一个int[][] 。为了完成这个任务,我尝试了这个:
然后,在服务器监听器中,我写道:
最后,在客户端监听器中,我收到了 ArrayPacket:
我像这样注册所有内容:
但是,当我运行它时,我会报错说我必须注册 int[].class。所以我这样做了,再次运行程序,编译器会抛出一个BufferOverflowException:
那么,我该如何解决这个错误呢?
提前致谢。
serialization - Kryo - 序列化/反序列化 JComboBox 时出错
我对 Kryo 很陌生,所以如果我犯了一个愚蠢的错误,请原谅我......我已经阅读了手册,并且我想我大致了解 Kryo 是如何序列化的,但是我在反序列化 JComboBox 时遇到了麻烦。
首先,我试过这个:
然后读...
这样做会生成“缺少无参数构造函数”异常。所以我设置了回退实例化策略:
但是,现在我得到了这个例外:
我不确定到底发生了什么,有人可以帮忙吗?
另外,kryo 是如何选择实例化策略的?每个序列化程序是否有不同的实例化策略,或者 kryo 对它反序列化的所有对象只有一个默认值和一个后备?
如果你这样做:
(实际上它确实序列化/反序列化没有任何错误) - 本机 java 反序列化不调用构造函数(除了第一个不实现可序列化的超类中的无参数),但是如果你没有告诉 kryo将实例化策略设置为 StdInstantiatorStrategy(),它是否仍然尝试使用构造函数?或者它使用它的 JavaSerializer 的事实是否使它使用其他一些实例化策略?(这可能会使实例化策略序列化程序特定于?
我希望这是有道理的,如果没有,请告诉我!!
java - java序列化实践
我正在阅读不同的方法/工具来序列化对象,并且正在为我的应用程序寻找最新的建议(因为我可以从 2012 年、2010 年......中找到很多类似的问题+答案)。
我需要将一些 java 对象写入磁盘。我很想节省磁盘空间,因为这些对象可能包含大量数据,而且我想做得相当快。
到目前为止,它已经完成了 java 标准序列化,但实现可能不是很好(没有明确的 serialID 设置,...)。我阅读了有关 kryo 库的信息,但我有点害怕使用 3rd 方库,因为我不知道它们的维护情况/它们的使用有多普遍。或者我应该只改进可序列化接口的使用,如果是的话,是否有任何关于正确实现的好的文档?
java - 克里奥 VS 杰克逊
我正在检查 Java 序列化、Kryo 和 Jackson。
我创建了一些将随机对象序列化 N 次的小代码。我测量序列化和反序列化的时间以及对象的大小。
我对 Kryo 与 Jackson 的大小不太满意,我一直在阅读有关基准的信息,人们在 Kryo 和 Jackson 之间有很大的不同,但是,我在 Kryo 中得到的结果少了大约 5-10%。我不知道我是否遗漏了代码中的某些内容。
这是我给 Kryo 的代码:
我尝试注册对象并且没有注册,我得到了相同的大小并且时间也相似。
我怎样才能用 Kryo 提高尺寸?我得到的大小和时间:
我执行了很多次代码,我对 Jackson 的反序列化时间感到惊讶,25000 毫秒???
apache-spark - Apache Spark 中的 Kryo
Spark 文档指出,您所要做的就是注册您的类并在 conf 中添加两个变量:
我已经在我的代码中实现了这一点,但是在尝试对(文本,文本)的键/值序列文件进行排序时,我仍然会遇到序列化错误。我的 MyRegistrator 版本如下所示:
我还在 MyRegistrator 中添加了日志记录,但没有看到任何日志语句。我还故意拼错了 MyRegistrator 的名称,并且作业不会出错。除了文档允许的内容之外,还必须有更多内容。还有什么我需要做的吗?
我正在使用 Apache Spark 1.0.2。
谢谢
hadoop - 在 hive 0.13 中找不到类 Kryo 异常 - Hadoop
我有一个在 Hadoop-1 和 Hive-0.12 上运行良好的 GenericUDF(参见下面的代码)。但是当使用 Hive-0.13 + Hadoop-2 测试相同的 GenericUDF 时,我收到以下错误。
顶点失败,vertexName=Map 12,vertexId=vertex_1409698731658_42202_1_00,diagnostics=[Vertex Input: ccv initializer failed., org.apache.hive.com.esotericsoftware.kry o.KryoException: Unable to find class: com.xxx.xxx.Id1
这是我的 UDF 的代码。
我确定这与 Hive-0.13 有关,但看不到任何与此错误相关的帖子。
java - TCP Socket 交换 kryo 序列化对象
我目前正在开发一个通过 TCP 套接字发送/接收对象的项目。我选择使用 Kryo 序列化框架,因为它是目前最流行的框架之一。我看到对于网络通信,推荐使用 KryoNet,但是出于我自己的原因,我选择使用自己的 TCP Socket 框架(主要是因为我想在我的项目中自定义控制 TCP 流和线程)。我遇到的问题是我为 Messages 创建了以下类:
在服务器端,我有以下代码用于从 TCP 套接字读取输入:
服务器线程类:
另一方面,客户端代码如下:
问题是在 ServerThread.run() 函数上, kryo.readObject() 调用阻塞,之后什么也没做。难道我做错了什么?我是否正确打开流以与 Kryo 序列化框架一起使用?
java - 如何在storm中注册kryo序列化程序实例?
我拼命地尝试配置序列化程序实例以在我的风暴拓扑中使用。
风暴文档指出,有两种注册序列化程序的方法:
我想用2。->
不幸的是,这导致
关于拓扑提交。
有谁知道如何做到这一点(注册序列化程序实例)?
非常感谢
java - 如何在storm中将配置参数传递给kryo序列化器?
Storm Config 提供了一些方便的方法来注册序列化器。(我说的是storm 0.9.2-incubating..)
如果我理解正确,第三个签名适用于您想要将新的序列化程序添加到给定配置的情况。
但是如何配置序列化程序实例?有装饰器,但你只能提供装饰器类,不能提供实例。
我正在寻找一种在我的 java 代码中将配置参数传递给序列化程序本身的方法。
任何帮助表示赞赏
谢谢,帕特里克
exception - Gradle 构建/测试失败 - kryo.KryoException:缓冲区溢出
在运行 Gradle 构建时,测试失败。
PS:
1. Gradle 使用正确的 JDK (1.6) 构建。
2.我用JDK 1.7试过这个,同样的错误也出现了。
3. 当我在 linux/windows 4. 机器上本地构建它(使用 JDK 1.6)时,我没有看到这个错误,
但是其中一台机器给了我这个错误。
我的?s
1. 可以做些什么来修复 com.esotericsoftware.kryo.KryoException:缓冲区溢出错误。
2. 为什么 Gradle 进程失败,即使 build.gradle 中的测试部分说:
任何提示/帮助表示赞赏。错误快照如下所示: