1、异常:Caused by: java.util.jar.JarException:file:/...storm/supervisor/stormdist/testtest22-38-1408443230/stormjar.jarhas unsigned entries - 。。。
at javax.crypto.JarVerifier.verifySingleJar(JarVerifier.java:462)
解决方法:maven中不打包
将bcprov-jdk16-1.40.jar放入jre/ext/下面,原因是该包是签名jar,使用时不能修改。maven默认打包会解压jar。
2、flume遇到乱码停止 ,报异常:java.nio.charset.MalformedInputException:
解决方法:flume配置文件加入 producer.sources.s.decodeErrorPolicy=IGNORE,忽略错误数据。默认是FAIL,抛异常报错,flume会停止。
3、flume中读取的一条记录长度超过2048字符,也就是4096字节就会截断记录
解决方法:flume配置文件加入producer.sources.s.deserializer=LINE producer.sources.s.deserializer.maxLineLength=65535。
4、storm日志报错:s.k.PartitionManager [INFO] Skippingfailed tuple at offset=40590727 because it's more than maxOffsetBehind=100000behind _emittedToOffset=4071485
解决方法:kafkaConfig.maxOffsetBehind=Long.MAX_VALUE;
参考:http://qnalist.com/questions/5005701/0-9-2-incubating-kafka-spout-setting-to-latest-offset
5、storm报OOM的错误,总结了相关需要设置的内存参数,以及增大任务的并行度,spout的获取数据速度。
drpc.childopts-Xmx2048m
nimbus.childopts: "-Xmx4096m"
supervisor.childopts: "-Xmx4096m"
worker.childopts: "-Xmx2048m"
6、java.lang.RuntimeException:net.sf.json.JSONException: java.lang.IllegalArgumentException: Cannot invokecom.。。。.setM on bean class 'classcom.xxx' -
java.lang.ClassCastException@3cb15770- had objects of type "[Ljava.lang.String;" but expected signature"java.lang.String"
是json2.4的一个bug,参考 https://github.com/aalmiray/Json-lib/issues/14。期望返回string时,如果返回的string是个json,当做对象处理了。
目前解决方法是在storm代码里捕获一下。
7、flume 异常停止,不报错,数据不处理。
原因:flume正在读的文件不能修改(数据追加,重命名文件等),用cp的方式会导致这个问题。
解决方法:文件拷贝到此目录后不处理,重命名文件后再处理。
10、worker自动重启,ui 上fail数量较多。
解决方法:bolt逻辑为写本地文件,代码逻辑中return之前要emit该event。