Reputation: 362
I have a very simple Storm bolt that takes input from a Kafka spout and should just write to standard output. It extends BaseRichBolt. The two pertinent methods are:
public void prepare(Map stormConfig,
TopologyContext context,
OutputCollector collector)
{
collector_ = collector;
logger_.info("TestEchoBolt prepared.");
System.out.println("TestEchoBolt prepared.");
}
public void execute(Tuple input)
{
logger_.info(input.getFields().toString());
System.out.println(input.getFields().toString());
collector_.ack(input);
}
It's wired up like this:
builder_ = new TopologyBuilder();
builder_.setSpout("kafka-spout",kafkaSpout,1);
builder_.setBolt("echo-bolt",echoBolt)
.shuffleGrouping("kafka-spout");
I see output from the constructor when I submit the topology to a cluster running on my local machine, but I never see any output from the bolt. The Storm UI shows tuples being emitted, executed, and acked, with no errors.
Where's my output?
(This is Storm 0.9.5 and Kafka 0.8.2.1.)
Upvotes: 2
Views: 1619
Reputation: 362
Matthias had the correct answer in the comments. All output goes to $STORM_HOME/logs unless the storm.log.dir property is set in $STORM_HOME/conf/storm.yaml.
The output will be in the .../logs/worker-*.log files.
Upvotes: 1