bolt是这么设计的,每个协议数据对应一个bolt,每种协议数据可以有多个业务。
每个业务通过一个单独的类实现。
bolt的事件来临时,发送给各个业务类对象去处理。
问题:
在某个业务类的构造函数中,生成文件夹失败了。nimbus所在的那个supervisor上是成功的,其它supervisor上失败。
分析:
刚开始以为是该协议的bolt都创建在nimbus服务器上,后来手动生成文件夹后,后续处理都正常了,问题定位到创建文件夹失败。
解决办法:
估计跟storm的序列化相关,此类操作不宜在构造函数中做。
生成init方法,在bolt的prepare中调。