Максимальный объем носика

Я использую Heron для выполнения потоковой аналитики данных IoT. На данный момент в архитектуре есть только один носик с коэффициентом параллелизма 1.

Я пытаюсь сравнить статистику по объему данных, которые Heron может хранить в очереди, которую он внутренне использует в spout.

Я играю с методом setMaxSpoutPending(), передавая ему значение. Я хочу знать, есть ли ограничение на количество, которое мы передаем этому методу?

Можем ли мы изменить метод параметров, увеличив конфигурацию системы или предоставив больше ресурсов топологии?


person tourist    schedule 15.12.2017    source источник
comment
Вы уверены, что этот вопрос следует пометить как вопрос Storm/Spark? Вроде конкретно про Херона.   -  person Stig Rohde Døssing    schedule 30.12.2017
comment
@StigRohdeDøssing Но я не смог найти тег Heron при добавлении вопроса :(   -  person tourist    schedule 31.12.2017
comment
Извините, я думаю, что вы правы, и, кажется, нет тега Heron. Я просто немного смущен тем, почему это было помечено как вопрос Storm :)   -  person Stig Rohde Døssing    schedule 04.01.2018


Ответы (2)


Итак, если у вас есть один носик и один болт, то максимальное количество ожидаемых носиков — лучший способ контролировать количество ожидающих кортежей. Ожидание Max Spout может быть увеличено до бесконечности. Однако увеличение его сверх определенного значения увеличивает вероятность возникновения ошибок тайм-аута, и в худшем случае продвижение вперед может отсутствовать. Также более высокий MSP обычно требует больше кучи, необходимой для носика и других компонентов топологии.

person Sanjeev Kulkarni    schedule 18.12.2017
comment
Ваш ответ больше направлен на поиск разъяснений, чем на фактический ответ на проблему. Лучше бы это было сделано в виде комментария к вопросу. - person Nick; 19.12.2017
comment
@Sanjeev Я получаю закодированные данные (температура) в носике и передаю их болту в топологии для вычисления скользящего среднего значения декодированных данных (температуры). Я проверяю данные, которые носик может обрабатывать в полете. Чтобы мы могли настроить распределение ресурсов по топологии и посмотреть, изменится ли что-то. - person tourist; 20.12.2017

MSP используется для управления скоростью приема топологии; он сообщает Storm максимальное количество кортежей, которые могут быть неподтверждены в любой момент времени. Если MSP ниже, чем параллелизм топологии, это может быть узким местом. С другой стороны, увеличение MSP сверх уровня параллелизма топологии может привести к тому, что топология будет «затоплена» и не сможет справиться с входящими кортежами. В такой ситуации «тайм-аут сообщений» топологии будет превышен, и Storm попытается воспроизвести их, продолжая подавать новые кортежи. Storm перестанет передавать новые входящие кортежи только при достижении предела MSP.

Так что да, вы можете настроить его, но следите за увеличением времени ожидания кортежей, указывающим на то, что ваша топология перегружена.

Кстати, если вы обрабатываете события IoT, вы можете увеличить параллелизм, сгруппировав кортежи spout по идентификатору устройства (поток кортежей на устройство) с помощью группировки полей.

person S. Hines    schedule 04.01.2018