1) В чем разница между AggreationsSpout или CollapsingSpout?Я попробовал AggregationSpout, но производительность была равна производительности 1 машины с конфигурацией по умолчанию.
Как следует из названия, AggregationSpout использует агрегаты в качестве механизма для группировки URL-адресов по хосту (или домену или IP-адресу или как угодно)в то время как CollapsingSpout использует сворачивание .Последнее, вероятно, будет медленнее, если вы настроите его так, чтобы оно имело более 1 URL для каждого сегмента ( es.status.max.urls.per.bucket ), поскольку оно выдает подзапросы для каждого сегмента.AggregationSpout должен иметь хорошую производительность, особенно если для es.status.sample установлено значение true.CollapsingSpouts на данном этапе являются экспериментальными.
2) Правильна ли эта конфигурация параллелизма?
Вероятно, JSoupParserBolts больше, чем необходимо.На практике соотношение 1: 4 по сравнению с Fetcherbolts хорошо даже с 500 нитями извлечения.Интерфейс Storm полезен для выявления узких мест и компонентов, которые необходимо масштабировать.Все остальное выглядит хорошо, но практически вы должны взглянуть на пользовательский интерфейс Storm и метрики, чтобы настроить топологию для наилучших настроек для вашего сканирования.
3) Я обнаружил, что «ОШИБКА ВЫБОРА» увеличилась на ~20% и много сайтов не выбирались правильно, когда я перешел с 1 узла на 5 узлов конфигурации.В чем может быть причина?
Это может означать, что вы насыщаете свое сетевое соединение, но это не должно иметь место при использовании большего количества узлов, напротив.Возможно, проверьте с помощью Storm UI, как FetcherBolts распределяется по узлам.Один рабочий работает на всех экземплярах или все они получают одинаковое число?Посмотрите журналы, чтобы увидеть, что происходит, например, существует ли множество исключений тайм-аута?