Ускорить процесс сканирования - PullRequest
0 голосов
/ 21 ноября 2018

Работа на ES 6.5.x и штормовой гусеничной машине 1.10.Как я могу ускорить сканер, чтобы получить записи. Когда я проверяю метрики на его показах, в среднем 0,4 страницы в секунду.Есть ли что-то, что мне нужно изменить в конфигурации ниже.enter image description here

Crawler-Conf:

config: 
  topology.workers: 2
  topology.message.timeout.secs: 300
  topology.max.spout.pending: 100
  topology.debug: false
  fetcher.server.delay: .25
  fetcher.threads.number: 200
  fetcher.threads.per.queue: 5

  worker.heap.memory.mb: 2048

  topology.kryo.register:
    - com.digitalpebble.stormcrawler.Metadata

  http.content.limit: -1
  fetchInterval.default: 1440
  fetchInterval.fetch.error: 120
  fetchInterval.error: -1
  topology.metrics.consumer.register:
     - class: "org.apache.storm.metric.LoggingMetricsConsumer"
       parallelism.hint: 1

1 Ответ

0 голосов
/ 23 ноября 2018

Если вы сканируете один сайт, вам не нужно 2 рабочих или более одного осколка ES и носика!в любом случае все URL-адреса будут направлены на один сегмент!

Вы используете 5 потоков в очереди, но извлекаете только 2 URL-адреса на группу из ES ( es.status.max.urls.per.bucket:2 ) и форсирование 2 с между вызовами в ES ( spout.min.delay.queries: 2000 ), поэтому в среднем носик не может выдавать более 1 URL в секунду.Кроме того, refresh_interval в ES_IndexInit.sh влияет на то, как быстро изменения видны в индексе и, следовательно, насколько вероятно, что вы получите свежие URL-адреса из запроса.

Просто измените es.status.max.urls.per.bucket до большего значения, например 10, и сбросьте spout.min.delay.queries до того же значения, что и refresh_interval в ES_IndexInit.sh например, 1 сек.Это даст вам гораздо больше URL.

...