Patrick
Patrick

Reputation: 362

No output from Storm bolt

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

Answers (1)

Patrick
Patrick

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

Related Questions