storm通过kafka传入数据的时候,有时候会出现并发修改的问题(这很可能是有static变量造成的),界面会出现spout fail的状况,此时可以通过设置参数进行一部分数据的抛弃。
builder.setSpout("Data", new SpoutA(args[1]), 1);
builder.setBolt("test", new BoltA(args[2]), 1).shuffleGrouping(
"Data");
args[0]是拓扑名,args[1]是传入spout的数,紧跟着args[1],args[2]是传入bolt的数据,紧跟着args[2]
例如 storm jar test.jar storm.Topology s abc 10
则args[0]=s,args[1]=abc,args[2]=10
下面就是修改spout和bolt的构造函数了
SpoutA中作如下修改
public SpoutA(String s) {
str=s;
}
BoltA中作如下修改
public BoltA(String s) {
x = Integer.parseInt(s);
}

本文探讨了在使用Storm从Kafka读取数据时遇到的并发修改问题,并提供了一种解决方案:通过设置参数来丢弃部分数据。文章还介绍了如何修改Spout和Bolt的构造函数。
6434

被折叠的 条评论
为什么被折叠?



