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

Storm bolt无法从喷口反序列化对象

宁飞宇
2023-03-14

由于某种原因,bolt A接收来自spout的消息并打印它们并不困难,但每次消息到达bolt B时,它都会抛出一个异常com.esotericsoftware.kryo.kryoException:类无法创建(缺少无参数构造函数):my.package.myprotobufmessage。我看到您可以为类注册序列化器,但是为什么bolt B不能处理消息,而bolt A却能够处理消息呢?

另一个单独的问题,但当我添加第三个拓扑时,nimbus不会为它分配一个主管。一个拓扑将包含2个works和9个execs,第二个拓扑将包含2个workers和6个execs,然后我将添加第三个拓扑,它将显示在UI和Nimbus日志中,但不显示在supervisor日志中。在UI中,第三个拓扑将有0个workers、execs和0个分配的mem

共有1个答案

施自珍
2023-03-14

你可能“幸运”,因为喷口和螺栓A在同一工人,而螺栓B在另一个工人。Storm不序列化元组,除非它们被转移到另一个工作者,这可能是bolt A能够读取消息的原因。

关于第三个拓扑问题,您需要确保您的主管有足够的工作插槽用于您的拓扑。每个supervisor在Storm配置(Storm.yaml)中定义它愿意运行多少个工作JVM。我猜前两种拓扑占据了所有的插槽。

supervisor的默认配置为

supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703
 类似资料:
  • (数据类)实体。JAVA (数据类)实体。JAVA 我试着说: 我犯了一个错误: 我已经把和我错过了什么?

  • 问题内容: 使用取消序列化对象时出现以下错误: JSONMappingException无法构造org.springframework.data.Page的实例,问题:抽象类型只能用其他类型信息实例化。 我正在尝试将JSON字符串序列化为表示类型页面的Spring数据对象T。 该User班是一个简单的与和名称。我要反序列化的字符串是: 这将导致异常: 由于是对象,因此无法修改它,我认为这与我在别处

  • 问题内容: 我试图序列化和反序列化内部对象的数组列表: HairList对象也是一个可序列化的对象。 此代码执行返回以下错误: 排队 我不知道我在做什么错。你能给个小费吗? 更新: 解决: 仅使用HairBirt的本机数组而不是ArrayList即可工作: 代替 感谢大家的帮助。 问题答案: 不要使用-而是使用二进制数据并对它进行base64编码,以将其转换为字符串而不会丢失信息。 我强烈怀疑这是

  • 问题内容: 我有一个Java类,它是DynamoDB中表的数据模型。我想使用Dynamo 的to 和item。班上一名成员是一名。因此,我使用来对该字段进行序列化和反序列化。 该列表可以通过成功地序列化。但是,当我尝试取回条目并阅读列表时,它会引发异常:。好像将数据反序列化为而不是。我如何摆脱这个问题? MCVE: 问题答案: 问题的一部分是整个DynamoDB Mapper SDK如何处理泛型。

  • 问题内容: 我似乎无法使用BSON json_util反序列化我的MongoDB JSON文档。 json.loads函数使字符串阻塞。我了解json_util能够处理MongoDB的ObjectId格式并将其转换为可用的JSON。 Python代码: 我得到了解码器异常: 我想念什么吗? 问题答案: 我认为您的字符串形式实际上看起来像python表示形式… 对于实际的json字符串表示形式中存在

  • 问题内容: 作为一个小项目,我一直在尝试做一个小事,它可以读取序列化的lambda(从本地或从FTP)并调用它们的运行函数作为测试的一部分,以测试Windows中的文件关联(即打开某些文件类型)使用特定程序打开它们),但不管如何,无论如何,它似乎从未正确地反序列化。 lambda被这样声明 并使用由ObjectOutputStream包装的[n可选] BufferedOutputStream包装的