项目中storm下发的bolt有2层:
首先编写一个topology:
public class HomeBandToplogy {
private static final String TOPOLOGY_NAME = "HomeBandToplogy"
private static final String KAFKA_SPOUT = "kafkaSpout"
private static final String KAFKA_BOLT = "kafkaBolt"
private static final String ANYNASIS_BOLT = "AnynasisBolt"
private static final Log log = LogFactory.getLog(HomeBandToplogy.class)
}
然后编写一个kafkabolt和一个AnynasisBolt,如下:
kafkabolt:
public class KafkaBolt extends BaseRichBolt {
OutputCollector collector
Log logger
}
AnynasisBolt:
public class AnynasisBolt extends BaseRichBolt {
private OutputCollector collector
Log logger
}
工厂类:
public class BoxFactory {
}
接口类:
public interface BoxService extends Serializable {
}
抽象类:
**
@override
public Boolean executeRedis( return null)
@override
public Boolean executeHbase( return null)
}
storm程序启动以后,小批量数据运行正常。
继续加大数据测试,数据量达到几十万的时候,出现异常,异常如下:
[ERROR] connection attempt 9 to Netty-Client-node5/172.16.1.100:6700 failed: java.net.ConnectException: Connection refused: node5/172.16.1.100:6700
2018-11-16 17:46:11.533 o.a.s.u.StormBoundedExponentialBackoffRetry client-boss-1 [WARN] WILL SLEEP FOR 420ms (MAX)
同时storm程序大量ack失败。
开始以后是线程数过多,以及环境资源紧张导致此种异常。
后来经过重重排查,将接口去掉,将抽象类中的方法变为抽象方法后,程序运行正常。
为何出现这样的异常呢?
原因在于,storm在处理的时候只会处理当前进程下的任务,跨进程的调度是无法实现的,故产生这样的故障。
storm.dll是暴雪游戏相关动态链接库文件,出现在StarCraft和Diablo等游戏中。出现提示缺少dll文件问题的大部分原因是因该文件被木马病毒破坏导致系统程序找不到此文件,出现错误提示框,或程序无法运行,解决此问题只需找到专业的dll文件下载网站,下载该文件后,找到适合程序的文件版本,复制到相应目录。即可解决。
1、Windows 95/98/Me系统,则复制到C:\WINdows\system32\ 目录下。
2、Windows NT/2000系统,则复制到C:\WINNT\system32\ 目录下。
3、Windows XP系统,则复制到C:\WINdows\system32\ 目录下。
4、Windows 7/8系统,则复制到C:\WINdows\system32\目录下。
你要把跳出来的报错对话框发上来才行如果是直接HS读条完了之后就报错的话\r\n最大的可能性就是洛奇和你的电脑里其他正在运行的软件冲突了\r\n比如\r\n跳出来的对话框写的是类似这样一句话\r\n0x00000指令不能为0X0000内存 不能为read?\r\n就说明欢迎分享,转载请注明来源:内存溢出
评论列表(0条)