【发布时间】:2015-07-09 19:58:02
【问题描述】:
我有一个非常简单的 Storm bolt,它从 Kafka spout 获取输入,应该只写入标准输出。它扩展了 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");
当我将拓扑提交到在本地机器上运行的集群时,我看到了构造函数的输出,但我从未看到螺栓的任何输出。 Storm UI 显示正在发出、执行和确认的元组,没有错误。
我的输出在哪里?
(这是 Storm 0.9.5 和 Kafka 0.8.2.1。)
【问题讨论】:
-
System.out 应该被重定向到工作日志文件。
-
storm.local.dir 设置为“/tmp/storm”,但我在工作目录中看不到任何日志文件。
-
日志文件位于 $STORM_HOME/logs(storm.local.dir 用于内部执行)
-
就是这样。我需要设置storm.log.dir 以将它们带到我想要的位置。谢谢!
-
要不要留下自己的答案并接受它,以便其他人可以有很好的参考?
标签: apache-storm