立即注册 登录
About云-梭伦科技 返回首页

linux_ja的个人空间 https://www.aboutyun.com/?3823 [收藏] [复制] [分享] [RSS]

日志

storm NotSerializableException: java.io.BufferedWriter解决

已有 1426 次阅读2014-12-20 21:42 |个人分类:storm

  1. org.apache.storm.zookeeper.server.NIOServerCnxnFactory - Thread Thread[main,5,main] died  
  2. java.lang.RuntimeException: java.io.NotSerializableException: java.io.BufferedWriter  
  3.     at backtype.storm.serialization.DefaultSerializationDelegate.serialize(DefaultSerializationDelegate.java:43) ~[storm-core-0.9.3.jar:0.9.3]  
  4.     at backtype.storm.utils.Utils.serialize(Utils.java:85) ~[storm-core-0.9.3.jar:0.9.3]  
  5.     at   

storm NotSerializableException统一解决方法:


       不能在构造方法中初始化OutputStreamWriter(类似的对象),因为storm先初始化supervisor中的bolt对象,然后发送给worker,在调用prepare()方法

        解决的办法就是,从supervisor发送到bolt这一步并不是初始化OutputStreamWriter类,可以先声明相关的对象,然后等发送到 worker了以后,在bolt的prepare()里进行实例化,就可以避免此问题。下面是google来的一段话:

Thesupervisor instantiates the bolts, sends them to the workers, and then callsprepare() on all of them. Therefore, anything that isn't serializable that isinstantiated before prepare() causes this process to fail

路过

雷人

握手

鲜花

鸡蛋

全部作者的其他最新日志

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条