Storm初始化时抛出NotSerializableException

现代数据工程师必掌握的5大核心大数据框架 大数据框架是构建可扩展、高可靠数据基础设施的基石。从分布式存储(HDFS)到实时消息管道(Kafka),再到批流一体计算引擎(Spark/Flink)和统一SQL层(Hive),这些技术共同定义了数据处理的底层语义与工程边界。其核心价值在于支撑PB级数据规模下的低延迟、强一致性与可运维性,广泛应用于实时推荐、用户行为分析、风控建模与电商大屏等关键场景。本文聚焦Apache Spark、Flink、Kafka、Hive和Hadoop五大工业级框架,深入解析其在真实生产环境中的关键配置、性能命门与典型故障模式, 阅读详情

启动topo抛出如下异常:

Exception in thread "main" java.lang.IllegalStateException: Spout 'DetrUpdateEvent' contains a non-serializable field of type com.gdl.trolley.stormclient.TrolleySpout$StormMessageListner, which was instantiated prior to topology creation. com.gdl.trolley.stormclient.TrolleySpout$StormMessageListner should be instantiated within the prepare method of 'DetrUpdateEvent at the earliest.
    at backtype.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:138)
    at com.gdl.gdl.gdlpsr.processor.detrupdate.DetrupdateTopology.main(DetrupdateTopology.java:42)
Caused by: java.lang.RuntimeException: java.io.NotSerializableException: com.gdl.trolley.stormclient.TrolleySpout$StormMessageListner
    at backtype.storm.utils.Utils.javaSerialize(Utils.java:196)
    at backtype.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:135)
    ... 1 more
Caused by: java.io.NotSerializableException: com.gdl.trolley.stormclient.TrolleySpout$StormMessageListner
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
    at backtype.storm.utils.Utils.javaSerialize(Utils.java:192)
    ... 2 more

在storm和bolt和spout中不能包含非静态且在对象创建时初始化的字段。如下面代码时不被允许的。

public class TrolleySpout extends KafkaSpout {
    private static KafkaSpoutConfig.Builder builder = KafkaSpoutConfig.builderStringBytes(UpdateConfig.getInstance().getBrokerHosts()
            , UpdateConfig.getInstance().getAppid());
    private StormMessageListner stormMessageListner = new StormMessageListner();

解决方案:对于bolt,在pepare方法中完成初始化。对于spout,要么重构,要么冒险进行序列化。
实行序列化有什么危险呢?

项目启动时,rocketMQ发送失败 rocketMQ报错分析及解决:The producer service state not OK, CREATE_JUST 阅读详情

相关推荐

信道估计准则演进:从LS、MMSE到LMMSE的工程权衡

本文深入探讨了信道估计准则的演进历程,从LS、MMSE到LMMSE的工程权衡。通过对比分析三大经典算法的数学本质、工程实现及适用场景,揭示了在计算复杂度、实时性和性能之间的关键取舍。文章结合4G/5G基站项目实战经验,提供了算法选型的三维决策模型和前沿发展建议,为无线通信系统设计提供实用指导。

weixin_29327525的博客 282

storm spout读取mysql_聊聊storm的CheckpointSpout

序本文主要研究一下storm的CheckpointSpoutTopologyBuilderstorm-2.0.0/storm-client/src/jvm/org/apache/storm/topology/TopologyBuilder.javapublic StormTopology createTopology() {Map boltSpecs = new HashMap<>()...

weixin_42113754的博客 195

QMI8658姿态传感器实战:从校准到自检的完整避坑指南

本文详细解析了QMI8658姿态传感器的校准与自检流程,提供了从硬件环境搭建到高级功能开发的完整避坑指南。通过真实案例揭示电源设计、接口优化、温度补偿等关键细节,帮助开发者提升传感器精度和可靠性,适用于工业级应用场景。

weixin_29184075的博客 455

java序列化 代码变化_处理中的Java序列化

我理解整个概念,但是在处理3.5.3时尝试它并不能使它工作,我觉得我遗漏了一些东西,但是经过几个小时的串行化搜索,我得到了这段代码。import java.io.*;import java.util.*;void setup() {Test test = new Test("Pedro", "1337");String fileName = "test.bin";try {ObjectOutput...

weixin_28824127的博客 195

docker部署zabbix6.2.7+grafana

docker部署zabbix6.2.7+grafana。

qq_48391148的博客 3654

【一起学UniGUI】--UniGUI的部署选项(5)

uniGUI支持Windows平台下所有主要部署选项。 1.Standalone Server (独立服务器) 最简单的部署方法是独立服务器。在这种模式下,应用程序服务器像桌面应用程序一样直接运行。它也是用于调试应用程序的模式。运行应用程序可执行文件后(它是一个EXE文件),它将最小化到托盘图标,并运行到用户手动终止为止。见下图: 一个独立的应用程序可以...

5777

FindBugs规则整理

FindBugs是基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug,主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等 一、Security 关于代码安全性防护 1.Dm: Hardcoded constant database password

我行我速 1万+

基于ROS2 Humble与Livox Mid-360的双雷达点云融合实战解析

本文详细解析了基于ROS2 Humble与Livox Mid-360的双雷达点云融合实战方案。从环境搭建、驱动安装、双雷达配置、外参标定、时间同步到点云融合核心实现,全面介绍了技术要点与避坑指南,并提供了工程化部署与性能优化建议,助力开发者高效实现高精度点云合成应用。

ss78901的博客 1093

java.io.NotSerializableException错误解决方法

.在重启Tomcat 5时发现报此错误. 查阅后发现tomcat 5之后重启服务后tomcat会尝试恢复session. 解决方法: 方法一 (通过配置,使tomcat重启后不重新恢复session): 在关闭和重启Tomcat 5时, tomcat 会试图 serialize存在的session资源. 如果 sessions中相关的对象没有实现 serializabl...

摩卡&Java 813

广东电信兆能Z82盒子救砖记:手把手教你用U盘强刷HI3798MV100固件(附短接图)

本文详细介绍了广东电信兆能Z82盒子变砖后的救砖方法,重点讲解了使用U盘强刷HI3798MV100固件的全流程,包括诊断、准备工作、短接操作及刷机后的优化设置。特别针对m8233主板和8188无线方案的机型,提供了实用的短接图和操作技巧,帮助用户成功恢复设备。

weixin_30325487的博客 403

别再写前端了!用Gradio 3.x + HuggingFace Spaces,5分钟把你的Python算法变成网页应用

本文介绍如何利用Gradio 3.x和HuggingFace Spaces快速将Python算法转化为网页应用,无需前端开发经验。通过5行代码和简单的Git命令,即可实现专业级Web界面部署,大幅提升算法展示效率。特别适合算法工程师和数据科学家快速分享模型成果。

weixin_33443333的博客 332

java.io.NotSerializableException错误解决方法(com.landray.sso.client.EKPSSOUserData)

【问题】           SSH的学习过程中,见到这样的一个错误:   org.apache.catalina.session.StandardManager doLoad 严重: IOException while loading persisted sessions: Java.io.WriteAbortedException: writing aborted; java.i

风吹麦浪的专栏 4365

智能驾驶感知模块评测实战:如何用回灌测试提升BEV模型准确率(附数据集处理技巧)

本文深入探讨了如何通过诊断型回灌测试系统性地提升智能驾驶BEV感知模型的准确率与鲁棒性。文章详细拆解了从场景切片、时空对齐到多维指标分析的完整评测流水线,并针对BEV模型特有的深度估计、特征融合等环节提供了优化思路,旨在帮助工程师将海量路采数据转化为精准的模型迭代燃料。

weixin_29045585的博客 395

链式法则与马尔可夫假设:N-gram语言模型的原理与工程实践

在自然语言处理中,如何计算一个句子出现的概率?核心难题在于联合概率的组合爆炸与数据稀疏。链式法则将整句概率拆解为逐词条件概率的乘积,为概率建模提供了分解框架;而马尔可夫假设通过限定历史长度,将不可计算的无穷依赖压缩为有限窗口,由此衍生出N-gram语言模型。这一统计建模思路在文本生成、输入法联想、拼写纠错等场景中仍有广泛应用。文章从条件概率的概念出发,梳理N-gram的估计、平滑策略与困惑度评估等工程要点,并揭示其作为现代深度学习语言模型(如RNN、Transformer)底层范式的延续与演变,帮助读者建立

aofan9566的博客 399

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Storm初始化报错java.io.NotSerializableException

最近在做实时数据分析,使用到了twitter开源的storm,在初始化的时候报了一个序列化的错: java.lang.RuntimeException: java.io.NotSerializableException: org.joda.time.format.DateTimeFormatter 报错信息很明显,因为DateTimeFormatter不支持序列化。但是我只是在bolt里使用到

朝着梦想 渐行前进 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

关于storm出现 NotSerializableException: java.io.BufferedWriter

错误代码: org.apache.storm.zookeeper.server.NIOServerCnxnFactory - Thread Thread[main,5,main] died java.lang.RuntimeException: java.io.NotSerializableException: java.io.BufferedWriter at backtype.s...

qq_41302130的博客 599

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

storm NotSerializableException: java.io.BufferedWriter解决

org.apache.storm.zookeeper.server.NIOServerCnxnFactory - Thread Thread[main,5,main] died java.lang.RuntimeException: java.io.NotSerializableException: java.io.BufferedWriter at backtype.storm.seriali

linux_ja的专栏 1833

storm java.lang.RuntimeException: java.io.NotSerializableException: 异常

java.lang.RuntimeException: java.io.NotSerializableException: java.lang.Object

kk_2015的博客 2659

storm与spring框架集成问题

storm与spring框架集成问题                                                                                             ——by comaple.zhang               在进行storm与spring集成时,本来想着一次就能成功,抱着很大的希望可是运行时竟然报了个java.

comaple 7678

java.io.NotSerializableException: org.apache.log4j.Logger

storm整合kafka和hbase 查看maven dependencies,看项目引用日志jar如下: log4j-1.2.17.jar logback-classic-1.0.6.jar logback-core-1.0.6.jar slf4j-api-1.7.5.jar 错误定位:在topology中添加HbaseBolt时报错,经过查找发现HbaseBolt中

一个人一种思想,相互交换就有两种思想 5498

Storm入门教程(二)

Storm入门例子详解-单词计数器 概念 Storm 分布式计算结构称为 topology(拓扑),由 stream(数据流), spout(数据流的生成者), bolt(运算)组成。 Storm 的核心数据结构是 tuple。 tuple是 包 含 了 一 个 或 者 多 个 键 值 对 的 列 表,Stream 是 由 无 限 制 的 tuple 组 成 的 序 列。 spout

djw0406的专栏 317

数据工程师实战指南:Hadoop、Spark、Flink等五大框架生产调优与避坑

大数据(Big Data)指在分布式环境下对海量、高速、多样数据进行采集、存储、计算与服务的系统性工程能力。其核心原理在于通过分而治之(Shuffle/Partition)、容错重试(Speculative Execution/Checkpointing)和统一资源调度(YARN/K8s)保障SLA。技术价值体现在降低TCO、提升分析时效性与支撑实时决策闭环。典型应用场景包括电商用户行为分析、金融风控实时拦截、IoT设备时序处理等。本文聚焦Hadoop、Spark、Flink、Hive、Storm五大高频框

weixin_30772105的博客 779

eclipse插件FindBugs各种bug描述及解决方法

1 )原代码如下: protected String[] a = null; public void test(String[] str){     this.a = str; } findbugs描述为: This code stores a reference to an externally mutable object into the internal representat...

sundful的专栏 901

聊聊storm TridentTopology的构建

序 本文主要研究一下storm TridentTopology的构建 实例 @Test public void testDebugTopologyBuild(){ FixedBatchSpout spout = new FixedBatchSpout(new Fields("user", "score"), 3, new Values...

weixin_33845477的博客 200

配置FindBugs和常见FindBugs错误

配置FindBugs: 在这里可以对FindBugs规则等进行详细设置。   选择你的项目,右键 => Properties => FindBugs => 1 Run Automatically开关 当此项选中后,FindBugs将会在你修改Java类时自动运行,如你设置了Eclipse自动编译开关后,当你修改完Java文件保存,FindBugs就会运行,并将相...

weixin_30354675的博客 1312

java对象的克隆

java对象的克隆 待补充。。。

daimeijin的博客 325
上一篇: 计算机主板的结构
下一篇: Kafka和Storm的整合
define_us
博客等级 码龄14年 157粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值