后续会不断更新
package lesson;
import java.util.Map;
import org.apache.storm.task.OutputCollector;
import org.apache.storm.task.TopologyContext;
import org.apache.storm.topology.IRichBolt;
import org.apache.storm.topology.OutputFieldsDeclarer;
import org.apache.storm.tuple.Fields;
import org.apache.storm.tuple.Tuple;
public class MyBolt implements IRichBolt {
OutputCollector collector = null;
@Override
public void cleanup() {
// TODO 自动生成的方法存根
}
int num = 0;
String valueString = null;
@Override
public void execute(Tuple input) {
// TODO 自动生成的方法存根
// input.getValueByField("log");
// 接受第一列为0,第二列为1,以此类推,当然也可以用名称来接收
// input.getValue(0);
try {
valueString = input.getStringByField("log");
if(valueString != null)
{
num ++;
System.out.println("lines :"+num+" sesion_id:"+valueString.split("\t")[1]);
}
collector.ack(input);
Thread.sleep(3000);
} catch (Exception e) {
// TODO 自动生成的 catch 块
collector.fail(input);
//失败了之后,spout端就会重新发射
e.printStackTrace();
}
}
@Override
public void prepare(Map arg0, TopologyContext arg1, OutputCollector collector) {
// TODO 自动生成的方法存根
this.collector = collector;
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
// TODO 自动生成的方法存根
declarer.declare(new Fields(""));
}
@Override
public Map<String, Object> getComponentConfiguration() {
// TODO 自动生成的方法存根
return null;
}
}