storm使用中遇到的问题

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中不打包

 org.bouncycastle
 bcprov-jdk16
 1.40
 provided
 

将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。

你可能感兴趣的:(实时计算)