我想在我的拓扑中包含 tika 解析器。我已jsoup.treat.non.html.as.error
按照false
配置中的设置进行设置,并且按照 Storm crawler 文档中的说明设置了 tika 拓扑。
爬取拓扑的设置如下:
builder.setSpout("spout", new MemorySpout(testURLs));
builder.setBolt("partitioner", new URLPartitionerBolt()).shuffleGrouping("spout");
builder.setBolt("fetch", new FetcherBolt()).fieldsGrouping("partitioner", new Fields("key"));
builder.setBolt("sitemap", new SiteMapParserBolt()).localOrShuffleGrouping("fetch");
builder.setBolt("jsoup", new JSoupParserBolt()).localOrShuffleGrouping("sitemap");
builder.setBolt("shunt", new RedirectionBolt()).localOrShuffleGrouping("jsoup");
builder.setBolt("tika", new ParserBolt()).localOrShuffleGrouping("shunt", "tika");
builder.setBolt("indexer", new HBaseIndexerBolt(), numWorkers).localOrShuffleGrouping("shunt")
.localOrShuffleGrouping("tika");
builder.setBolt("status", new MemoryStatusUpdater()).localOrShuffleGrouping(Constants.StatusStreamName)
.localOrShuffleGrouping("sitemap", Constants.StatusStreamName)
.localOrShuffleGrouping("shunt", Constants.StatusStreamName)
.localOrShuffleGrouping("tika", Constants.StatusStreamName)
.localOrShuffleGrouping("indexer", Constants.StatusStreamName);
return submit("crawl", conf, builder);
使用此拓扑,我收到了 Invalid Topology 异常。该问题似乎是由状态螺栓引起的。因为,当我排除状态螺栓时,我的爬网拓扑工作没有任何问题。我应该如何配置状态螺栓?