某天線上JStorm叢集某台supervisor實體故障重新開機之後,進入/home/admin/jstorm/bin執行
./start.sh
發現supervisor的正常啟動,nimbus.log的日志如下
[ERROR 2018-01-18 11:51:44 Supervisor:220 run main] Failed to start supervisor
java.lang.RuntimeException: java.io.EOFException
at backtype.storm.utils.Utils.deserialize(Utils.java:124)
at backtype.storm.utils.Utils.deserialize(Utils.java:131)
at backtype.storm.utils.LocalState.snapshot(LocalState.java:28)
at backtype.storm.utils.LocalState.get(LocalState.java:40)
at com.alibaba.jstorm.daemon.supervisor.Supervisor.mkSupervisor(Supervisor.java:92)
at com.alibaba.jstorm.daemon.supervisor.Supervisor.run(Supervisor.java:206)
at com.alibaba.jstorm.daemon.supervisor.Supervisor.main(Supervisor.java:239)
Caused by: java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2325)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2794)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:801)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
at backtype.storm.utils.Utils.deserialize(Utils.java:118)
... 6 more
解決辦法:進入conf/storm.yaml找到 storm.local.dir,将該目錄下supervisor和workers這兩個目錄清空