jstorm0.9.6.3 hbase1.1.5整合,本地pom文件配置

来源:互联网 发布:java parseint 编辑:程序博客网 时间:2024/05/17 21:44

由于jstorm0.9.x的版本不提供maven源下载,所以之前一直使用storm的maven配置替代。但是引用hbase后由于引用的zookeeper版本不同:storm引用了zookeeper3.3.3.jar而hbase引用了zookeeper3.4.6.jar,会导致项目启动出错。即使通过exclusions hbase的 ZooKeeper,也会在控制面板里不断的打印zookeeper连接异常。

17253 [Thread-98-SendMsgFilter-SendThread(dev07.badinfo.rcs:2181)] WARN  org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnectjava.net.ConnectException: Connection refused: no further informationat sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_79]at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) ~[na:1.7.0_79]at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119) ~[zookeeper-3.3.3.jar:3.3.3-1073969]

如果将storm自带的zookeeper排除掉,则会报以下异常:

Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.server.NIOServerCnxn$Factoryat java.net.URLClassLoader$1.run(URLClassLoader.java:366)at java.net.URLClassLoader$1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:354)at java.lang.ClassLoader.loadClass(ClassLoader.java:425)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)at java.lang.ClassLoader.loadClass(ClassLoader.java:358)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:191)at backtype.storm.zookeeper$loading__4784__auto__.invoke(zookeeper.clj:1)at backtype.storm.zookeeper__init.load(Unknown Source)at backtype.storm.zookeeper__init.<clinit>(Unknown Source)... 90 more

最终找到了一个解决的办法,不引用storm,而是引用storm-core,具体的引用配置如下:

<dependency><groupId>org.apache.storm</groupId><artifactId>storm-core</artifactId><version>0.9.6</version></dependency>

这样可以完美解决jstorm本地调试的问题。





0 0
原创粉丝点击