把storm-core改为jstorm-core遇到的坑

原创 2018年04月15日 20:31:06
在pom中把apache的storm-core包依赖(版本2.1.1)改为alibaba的jstorm-core包依赖,运行程序报错,打印最多的是下面的异常日志。在网上也没有找到相应的解决办法。所有就记录下来:
ava.lang.RuntimeException: java.lang.IllegalStateException: Attempting to call unbound fn: #'carbonite.api/register-serializers
	at backtype.storm.serialization.SerializationFactory.getKryo(SerializationFactory.java:75) ~[jstorm-core-2.1.1.jar:na]
	at backtype.storm.serialization.KryoValuesDeserializer.<init>(KryoValuesDeserializer.java:33) ~[jstorm-core-2.1.1.jar:na]
	at backtype.storm.serialization.KryoTupleDeserializer.<init>(KryoTupleDeserializer.java:52) ~[jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.daemon.worker.WorkerData.updateKryoSerializer(WorkerData.java:420) ~[jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.daemon.worker.WorkerData.<init>(WorkerData.java:376) ~[jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.daemon.worker.Worker.<init>(Worker.java:67) ~[jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.daemon.worker.Worker.mk_worker(Worker.java:262) ~[jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.daemon.supervisor.SyncProcessEvent.launchWorker(SyncProcessEvent.java:446) ~[jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.daemon.supervisor.SyncProcessEvent.startNewWorkers(SyncProcessEvent.java:991) ~[jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.daemon.supervisor.SyncProcessEvent.run(SyncProcessEvent.java:187) ~[jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.daemon.supervisor.SyncSupervisorEvent.run(SyncSupervisorEvent.java:192) [jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.event.EventManagerImp.run(EventManagerImp.java:71) [jstorm-core-2.1.1.jar:na]
	at com.alibaba.jstorm.callback.AsyncLoopRunnable.run(AsyncLoopRunnable.java:95) [jstorm-core-2.1.1.jar:na]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]
Caused by: java.lang.IllegalStateException: Attempting to call unbound fn: #'carbonite.api/register-serializers
	at clojure.lang.Var$Unbound.throwArity(Var.java:43) ~[clojure-1.6.0.jar:na]
	at clojure.lang.AFn.invoke(AFn.java:36) ~[clojure-1.6.0.jar:na]
	at clojure.lang.Var.invoke(Var.java:383) ~[clojure-1.6.0.jar:na]
	at carbonite.JavaBridge.registerPrimitives(JavaBridge.java:43) ~[carbonite-1.4.0.jar:na]
	at backtype.storm.serialization.SerializationFactory.getKryo(SerializationFactory.java:72) ~[jstorm-core-2.1.1.jar:na]
	... 13 common frames omitted

在打印的很多日志中,终于发现了一处不同的错误日志:根据类的名字是序列号的相关类。

java.lang.ClassNotFoundException: com.twitter.chill.java.RegexSerializer, compiling:(carbonite/serializer.clj:1:1)
	at clojure.lang.Compiler.load(Compiler.java:7142)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.loadResourceScript(RT.java:361)
	at clojure.lang.RT.load(RT.java:440)
	at clojure.lang.RT.load(RT.java:411)
	at clojure.core$load$fn__5066.invoke(core.clj:5641)
	at clojure.core$load.doInvoke(core.clj:5640)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invoke(core.clj:5446)
	at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
	at clojure.core$load_lib.doInvoke(core.clj:5485)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invoke(core.clj:626)
	at clojure.core$load_libs.doInvoke(core.clj:5524)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invoke(core.clj:626)
	at clojure.core$require.doInvoke(core.clj:5607)
	at clojure.lang.RestFn.invoke(RestFn.java:421)
	at carbonite.api$eval3$loading__4958__auto____4.invoke(api.clj:1)
	at carbonite.api$eval3.invoke(api.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:6703)
	at clojure.lang.Compiler.eval(Compiler.java:6692)
	at clojure.lang.Compiler.load(Compiler.java:7130)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.loadResourceScript(RT.java:361)
	at clojure.lang.RT.load(RT.java:440)
	at clojure.lang.RT.load(RT.java:411)
	at clojure.core$load$fn__5066.invoke(core.clj:5641)
	at clojure.core$load.doInvoke(core.clj:5640)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invoke(core.clj:5446)
	at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
	at clojure.core$load_lib.doInvoke(core.clj:5485)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invoke(core.clj:626)
	at clojure.core$load_libs.doInvoke(core.clj:5524)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invoke(core.clj:626)
	at clojure.core$require.doInvoke(core.clj:5607)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.lang.Var.invoke(Var.java:379)
	at carbonite.JavaBridge.initialize(JavaBridge.java:24)
	at carbonite.JavaBridge.registerPrimitives(JavaBridge.java:42)
	at backtype.storm.serialization.SerializationFactory.getKryo(SerializationFactory.java:72)
	at backtype.storm.serialization.KryoValuesDeserializer.<init>(KryoValuesDeserializer.java:33)
	at backtype.storm.serialization.KryoTupleDeserializer.<init>(KryoTupleDeserializer.java:52)
	at com.alibaba.jstorm.daemon.worker.WorkerData.updateKryoSerializer(WorkerData.java:420)
	at com.alibaba.jstorm.daemon.worker.WorkerData.<init>(WorkerData.java:376)
	at com.alibaba.jstorm.daemon.worker.Worker.<init>(Worker.java:67)
	at com.alibaba.jstorm.daemon.worker.Worker.mk_worker(Worker.java:262)
	at com.alibaba.jstorm.daemon.supervisor.SyncProcessEvent.launchWorker(SyncProcessEvent.java:446)
	at com.alibaba.jstorm.daemon.supervisor.SyncProcessEvent.startNewWorkers(SyncProcessEvent.java:991)
	at com.alibaba.jstorm.daemon.supervisor.SyncProcessEvent.run(SyncProcessEvent.java:187)
	at com.alibaba.jstorm.daemon.supervisor.SyncSupervisorEvent.run(SyncSupervisorEvent.java:192)
	at com.alibaba.jstorm.event.EventManagerImp.run(EventManagerImp.java:71)
	at com.alibaba.jstorm.callback.AsyncLoopRunnable.run(AsyncLoopRunnable.java:95)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.twitter.chill.java.RegexSerializer
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:61)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at carbonite.serializer$eval9$loading__4958__auto____10.invoke(serializer.clj:1)
	at carbonite.serializer$eval9.invoke(serializer.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:6703)
	at clojure.lang.Compiler.eval(Compiler.java:6692)
	at clojure.lang.Compiler.load(Compiler.java:7130)
	... 56 more

最后在项目中pom加入jstorm-core和chill-java依赖。问题解决了。另外也可以下载jstorm的源码,在jstorm-core的工程下的pom.xml文件中加入chill-java依赖,然后mvn install 到本地的maven仓库。以后使用jstorm-core,就不需要再要导入chill-java依赖。

<dependency>
    <groupId>com.twitter</groupId>
    <artifactId>chill-java</artifactId>
    <version>0.9.2</version>
</dependency>
这有个问题。为什么在jstorm中没有依赖这个包。在导入jstorm-core包,要导入chill-java包。在jstorm-core中需要序列化数据实现rpc中数据的传输,反而pom中缺少这个依赖。

前端开发遇到的坑(纯属吐槽)

沟通问题!! 没别的就是沟通问题!!!
  • qq_2842405070
  • qq_2842405070
  • 2017-04-17 16:44:47
  • 1181

vue遇到的坑

父级组件采用数据驱动渲染出来的导航栏之后,由于页面渲染的是子组件,这个时候在子组件中去触发父级组件上的事件并没有发生,这个时候反复找了网上查找了一些资料,刚开始百度到了一个关于v-for与click事...
  • limy_cxm
  • limy_cxm
  • 2017-06-08 16:07:44
  • 1194

写js过程中遇到的坑

1.js中的变量提升机制 2.js中原生js的兼容性问题:eg:nextSibling和nextElementSibling在不同浏览器的应用范围 3.js中jquery对象和javaScript...
  • flying461
  • flying461
  • 2017-02-16 14:48:12
  • 503

Android开发遇到的坑

最近在开发中总会遇到各种坑,由于记忆力不好,先记录在这里。 以前看过的一些总结,基本上很齐全了: http://jcodecraeer.com/plus/view.php?aid=3773 https...
  • ly635676581
  • ly635676581
  • 2016-11-25 16:31:30
  • 601

工作中经常遇到的坑以及解决的办法(一),欢迎光临!

相信大家在敲代码的过程中,会遇到无数的坑,不要悲伤,不要气馁。俗话说,坑就是经验。嗯,没错,俗话是我说的。闲言少叙,本文为长篇小说,致我们代码中的坑,以及一些常用的小方法,会逐步写下,欢迎您的到来,下...
  • kongkongyou
  • kongkongyou
  • 2016-12-30 16:07:36
  • 312

mysql遇到的坑

环境:ubuntu16.4 mysql版本5.7.19 2.用户无法通过SSH远程访问 先用root运行mysql -uroot -p,启动mysql 然后再mys...
  • weixin_40105364
  • weixin_40105364
  • 2017-10-22 08:26:55
  • 220

工作中遇到的小坑合集(java)

工作中遇到的小坑合集fastjson fastjson在使用复杂的集合类型的使用,要使用TypeReference.如下 Map map = JSONObject.parseObject(string...
  • u010632868
  • u010632868
  • 2016-08-21 20:53:21
  • 403

iOS开发-做项目中遇到的坑

最近项目中遇到的问题和实际的解决方案的分享,还有一款小插件的分享,希望对遇到同类问题的作者有所帮助。 问题一 使用WebView加载网页时候进行加载时候,如果出现网络请求缓慢,并且使用MBProgre...
  • Zhai19931004
  • Zhai19931004
  • 2016-05-20 10:44:07
  • 525

在项目中遇到的一些关于vue的坑

在项目中遇到的关于vue v-for 的坑1. 关于v-for,动态生成DOM节点的报错问题
  • Revan_g
  • Revan_g
  • 2017-12-18 09:50:34
  • 152

java项目开发过程中自己挖过的坑

当时项目可发时,有这样的一个场景:文件上传的文件内容封装成一个A类型的对象,为了数据库中不出现重复内容,需要通过唯一字段进行查询,此时通过dao层返回一个A类型的对象,由于鄙人才疏学浅,直接用文件上传...
  • LQW_java_home
  • LQW_java_home
  • 2016-04-13 10:55:54
  • 478
收藏助手
不良信息举报
您举报文章:把storm-core改为jstorm-core遇到的坑
举报原因:
原因补充:

(最多只允许输入30个字)