当前位置: 首页 > 知识库问答 >
问题:

Kryo类注册

谭翔
2023-03-14
private static inner class EntryWithID  
kryo.register(Class.forName("shared.SharedObjectFactory$Segment$EntryWithID")); 

kryo.register(Array.newInstance(Class.forName("shared.SharedObjectFactory$Segment$EntryWithID"), 0).getClass());

我想,问题出在深度嵌套的内部类EntryWithID上。我在登记上做错什么了吗?

共有1个答案

单于俊智
2023-03-14

您可以启用Kryo的跟踪日志并检查。

由于Kryo使用Minlog库进行日志记录,因此可以通过在源代码中添加com.esotericsoftware.Minlog.log.trace();来启用跟踪级别日志。

启用跟踪级别日志将打印所有在Kryo注册的类的详细信息。

 类似资料:
  • 我正在创建一个火花上下文通过使用- 然后我创建一个RDD- 现在,当我对这些数据执行一些操作时,比如(f/take rdd 3)等,我得到了一个错误- 17/11/28 14:35:00错误提示:组织遇到异常。阿帕奇。火花SparkException:未能在org向Kryo注册类。阿帕奇。火花序列化程序。KryoSerializer。newKryo(KryoSerializer.scala:129

  • 我正在尝试将kryo序列化用于: 我一直收到以下错误,说某个类没有注册: 但是,我确实注册了它: 当我设置日志时。TRACE()我得到以下输出: 当跟踪记录器打印出它已注册时,为什么会说它未注册。我找不到关于这件事的任何有用的文件。以前有人经历过这种情况吗?如果有帮助,我正在运行Apache Spark v0.8.1

  • 我不明白注册一个类用于kryo序列化是什么意思。为了给出一些背景,这里的链接说 Kryo不支持所有可序列化类型,并且要求您预先注册将在程序中使用的类以获得最佳性能。 还是那句话,我不明白注册一个班级的意义是什么?序列化代码不是静态的吗?就是应用相同的逻辑序列化所有类型的对象。在“高级”中提到将要序列化的类会有什么帮助呢? 谢谢!

  • 具有方法: 但是,它在属性提供的facade中不可用/公开 下面是有关RuntimeConfiguration的更多信息: 在创建自己的SparkSession时,有一个明确的解决方法:我们可以调用提供给 然后是一个不太清楚的... 但在运行Spark shell时,已经创建了sparkSession(sparkContext)。那么,如何使非运行时设置生效呢? 这里特别需要: 当尝试在可用于sp

  • 使用Spark,决定使用Kryo,因为它是推荐的反序列化程序。 假设我有: 我需要注册两个班级吗

  • 在将Spark 1.6应用程序移植到Spark 2.0.2的过程中,日志中出现了以下投诉: 此操作失败,原因是:java。lang.ClassNotFoundException:org/apache/spark/streaming/receiver/receiver[]/类 此操作失败,原因是:java。lang.ClassNotFoundException:org/apache/spark/st