Я пытаюсь настроить новый поток, чтобы соединить болт Tika с болтом warc.
import com.digitalpebble.stormcrawler.tika.ParserBolt;
import com.digitalpebble.stormcrawler.warc.WARCHdfsBolt;
builder.setBolt("tika", new ParserBolt(), numWorkers)
.localOrShuffleGrouping("shunt","tika");
WARCHdfsBolt warcbolt = getWarcBolt("XX");
builder.setBolt("warc", warcbolt, numWorkers)
.localOrShuffleGrouping("tika", "warc");
В определении Tika я изменил функцию outputDeclarerFields следующим образом, чтобы определить мой новый поток «warc»:
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("url", "content", "metadata", "text"));
declarer.declareStream(StatusStreamName, new Fields("url", "metadata", "status"));
declarer.declareStream("warc", new Fields("url", "content", "metadata", "text"));
}
Однако когда я запускаю топологию в локальном режиме, я получаю:
Любая помощь будет высоко ценится!!
Обратите внимание: если я использую поток StatusStreamName ("status") для соединения болтов tika и warc, он работает нормально.
Спасибо,
Этьен
WARC генерируются из необработанного, не проанализированного контента. Вы должны подключить WARC к выходу сборщика вместо болта синтаксического анализатора.