关于storm 升级 。
关于storm 升级 。
storm 启动 supervisor 报错!
2013-11-26 17:39:20 event [ERROR] Error when processing event
java.lang.RuntimeException: java.io.InvalidClassException: clojure.lang.APersistentMap; local class incompatible: stream classdesc serialVersionUID = 7921415892740123219, local class serialVersionUID = 270281984708184947
at backtype.storm.utils.Utils.deserialize(Utils.java:59)
at backtype.storm.utils.LocalState.snapshot(LocalState.java:24)
at backtype.storm.utils.LocalState.get(LocalState.java:28)
at backtype.storm.daemon.supervisor$sync_processes.invoke(supervisor.clj:190)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:603)
at clojure.core$partial$fn__4070.doInvoke(core.clj:2343)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at backtype.storm.event$event_manager$fn__2173.invoke(event.clj:24)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.InvalidClassException: clojure.lang.APersistentMap; local class incompatible: stream classdesc serialVersionUID = 7921415892740123219, local class serialVersionUID = 270281984708184947
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at java.util.HashMap.readObject(HashMap.java:1149)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1846)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at backtype.storm.utils.Utils.deserialize(Utils.java:55)
... 11 more
2013-11-26 17:39:20 util [INFO] Halting process: ("Error when processing an event")
版本冲突了。
原因:storm.local.dir: "/data2/storm"
storm.local.dir: Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限 。
当第一次使用低版本的时候,worknode的这个目录下的数据保存的是低版本的。
当升级后,masternode 使用的是新版本的jar包,当Supervisor启动时,本地的(即/data2/storm下的包与masternode 包冲突) 导致序列号的id号不一致。
解决方案:在worknode执行:
rm -rf /data2/storm/*
启动Supervisor,进入正常工作。
关于升级流程:
1、确认storm的依赖正常安装
详细可参考:
https://github.com/nathanmarz/storm/wiki/Installing-native-dependencies
2、zookeeper需要正常工作。
安装可参考:
http://blog.csdn.net/shirdrn/article/details/7183503