flume+kafka+storm整合02---问题

###1、启动storm时总是报错

storm Session 0x0 for server null, unexpected error, closing socket connection

###原因:由于我将zookeeper的端口改为了3384, 而storm连接zookeeper集群,使用的默认端口时2181, 所以无法连接
###解决: 使用storm.zookeeper.port来设置zookeeper集群的端口

#zookeeper集群的端口改为3384
storm.zookeeper.port: 3384

###2、依赖冲突

Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError. See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.

flume+kafka+storm整合02---问题_第1张图片

###解决: exclusions 剔除依赖
flume+kafka+storm整合02---问题_第2张图片
###3、stomr-core不应该打包到jar中, 会导致defaults.yaml冲突

Caused by: java.lang.RuntimeException: java.io.IOException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar. [jar:file:/opt/bigdata/TestDemo1-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/defaults.yaml, jar:file:/usr/hdp/2.4.2.0-258/storm/lib/storm-core-0.10.0.2.4.2.0-258.jar!/defaults.yaml]

解决:
flume+kafka+storm整合02---问题_第3张图片

###4、NoClassDefFoundError: org/json/simple/JSONValue at
flume+kafka+storm整合02---问题_第4张图片

原因: 由于2.2中为了解决defaults.jaml冲突使用provided, 导致storm-core的依赖在
打包时候没有打进去,而运行时候需要的json依赖正好在storm-core中, 所以需要重新引入jar包

这里写图片描述

你可能感兴趣的:(#,Storm,#,zookeeper)