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

如何注册接收器[]与Kryo?

申屠浩歌
2023-03-14

在将Spark 1.6应用程序移植到Spark 2.0.2的过程中,日志中出现了以下投诉:

com.esotericsoftware.kryo.KryoException: java.lang.IllegalArgumentException: Class is not registered: org.apache.spark.streaming.receiver.Receiver[]
Note: To register this class use: kryo.register(org.apache.spark.streaming.receiver.Receiver[].class);

此操作失败,原因是:java。lang.ClassNotFoundException:org/apache/spark/streaming/receiver/receiver[]/类

sparkConf.set("spark.kryo.classesToRegister", "org.apache.spark.streaming.receiver.Receiver[].class")

此操作失败,原因是:java。lang.ClassNotFoundException:org/apache/spark/streaming/receiver/receiver[]:

sparkConf.set("spark.kryo.classesToRegister", "org.apache.spark.streaming.receiver.Receiver[]")

此操作失败,因为类未注册:org。阿帕奇。火花流动。接受者接收器[]:

sparkConf.set("spark.kryo.classesToRegister", "org.apache.spark.streaming.receiver.Receiver")

此操作失败,因为类未注册:org。阿帕奇。火花流动。接受者接收器[]:

sparkConf.registerKryoClasses(Array(
    classOf[org.apache.spark.streaming.receiver.Receiver[_]]
))

我怎样才能注册这个类?我已经可以在Kryo注册其他课程了,但这门课没有。

编辑:

在所有这些情况下,完成此设置:

sparkConf.set("spark.kryo.registrationRequired", "true")
sparkConf.set("spark.serializer", classOf[KryoSerializer].getName)
GraphXUtils.registerKryoClasses(sparkConf)

共有1个答案

方祺
2023-03-14

找到了一种在这里工作的方法:Kryo序列化拒绝注册类

简而言之,将[org.apache.spark.streaming.receiver.receiver[\u]]的类更改为[Array[org.apache.spark.streaming.receiver.receiver[\u]]的类

 类似资料:
  • 我是android新手。我的项目有一个活动和一个服务。我的服务有一个广播接收器,而活动有一个广播发送器,它在PeriodSender方法中。动态地,当我注册接收者时,在服务开始时它不会调用,但是如果我在几分钟后发送了一些东西,它就会调用。但是我想在清单中注册它,我已经在清单中包含了接收方的详细信息,但是接收方没有调用。我的接收方类名是MyReceiver21,意图操作是My_ACTION1。实际上

  • 我已经实现了这样的接收器(在清单文件中) 如果电话的状态改变,则调用记录器广播接收器。一切都很好。但是,如果我重新启动设备,接收器永远不会被调用,直到我运行我的应用程序。 我需要在启动后注册(不调用)这个接收器。 许多感谢, [编辑] 我通过向清单文件添加以下接收者解决了这个问题 不过,我没有在java代码中注册RecorderBroadcastReceiver。我只加了上面的接收器。这意味着从应

  • 我已经在创建服务方法上注册了接收者,并在销毁方法上取消注册?它工作得很好,但在某些三星Galaxy s3上,即使我停止服务,我仍然会收到接收器。如何找到解决办法?有可能吗?请帮帮我.提前致谢 }

  • 我在OnReceive()方法中使用smsmsmanager发送消息,我想为smsmsmanager添加发送和传递报告意图,当我通过编程和清单在另一个接收方中注册接收方时,它不会调用发送的sms接收方。 是否可以在onReceive()中执行,或者帮助我实现这一点?

  • 问题内容: 对于我来说,目前尚不清楚,在这种情况下,我想使用值接收器而不是始终使用指针接收器。 回顾一下文档: 该 文档 还说:“对于基本类型,切片和小型结构之类的类型,值接收器非常便宜,因此,除非该方法的语义要求使用指针,否则值接收器是高效且清晰的。” 首先, 它说“非常便宜”,但问题是它比指针接收器便宜。因此,我做了一个小的基准测试(基于要点的代码),向我展示了,即使对于只有一个字符串字段的结

  • 我有一个broadcastreciever开始了一个长的操作(上传过程)。在一个从活动类开始的服务的代码中,我需要在一个新线程中注册这个接收器。 我已经检查了这篇文章Android的广播接收器是在一个新的线程中启动的吗?但是我需要一个关于使用Context.RegisterReceiver的更具体的示例(BroadcastReceiver receiver、IntentFilter filter、