Класс Stormcrawler Topology не работает, поскольку мы работаем с es-injector.flux

У меня есть несколько URL-адресов, которые нужно очистить с помощью Stormcrawler. Согласно [ссылка]https://medium.com/analytics-vidhya/web-scraping-and-indexing-with-stormcrawler-and-elasticsearch-a105cb9c02ca[/link ] Я следил все шаги и получил поскреб и загрузил содержимое в мою резинку.

Согласно приведенному выше блогу, он использовал команду Flux для внедрения топологии в ES.

      spouts: 
  - 
    className: com.digitalpebble.stormcrawler.spout.FileSpout
    constructorArgs: 
      - "stormcrawlertest-master/"
      - seeds.txt
      - true
    id: spout
    parallelism: 1
streams: 
  - 
    from: spout
    grouping: 
      customClass: 
        className: com.digitalpebble.stormcrawler.util.URLStreamGrouping
        constructorArgs: 
          - byHost
      streamId: status
      type: CUSTOM
    to: status

это добавит URL-адреса в ES. Я следил за тем же классом в Flux и создал основной класс

      String[] argsa = new String[] { "-conf","/crawler-conf.yaml", "-conf","/es-conf.yaml", "-local" };      
ConfigurableTopology.start(new InjectorTopology(), argsa);
      public class InjectorTopology extends ConfigurableTopology {
    @Override
    protected int run(String[] args) {
        TopologyBuilder builder = new TopologyBuilder();
        builder.setSpout("spout", new FileSpout("stormcrawlertest-master/","seeds.txt", true), 1);
        builder.setBolt("status", new StatusUpdaterBolt(), 1).customGrouping("spout",new URLStreamGrouping(Constants.PARTITION_MODE_HOST));
        return submit("ESInjectorInstance", conf, builder);
    }}

и очистить и упаковать с помощью maven, запустите python storm.py jar target / stormcrawlertest-1.0-SNAPSHOT.jar com.my.sitescraper.main.SiteScraper, это не вводит никаких URL-адресов в ES.

Что мне не хватает.

0 ответов

Другие вопросы по тегам