我有一个非常简单的Storm螺栓,它从Kafka喷口输入,应该只写入标准输出。它扩展了BaseRichBolt。两个相关的方法是:
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);
}
它是这样连线的:
builder_ = new TopologyBuilder();
builder_.setSpout("kafka-spout",kafkaSpout,1);
builder_.setBolt("echo-bolt",echoBolt)
.shuffleGrouping("kafka-spout");
当我将拓扑提交到在本地计算机上运行的集群时,我看到构造函数的输出,但我从未看到任何来自bolt的输出。 Storm UI显示正在发送,执行和确认的元组,没有错误。
我的输出在哪里?
(这是Storm 0.9.5和Kafka 0.8.2.1。)
答案 0 :(得分:1)
马蒂亚斯在评论中得到了正确答案。除非在$ STORM_HOME / conf / storm.yaml中设置了storm.log.dir属性,否则所有输出都将转到$ STORM_HOME / logs。
输出将在... / logs / worker - * .log文件中。