Как установить требования к ресурсам компонентов для топологии Storm, работающей в Heron? - PullRequest
0 голосов
/ 22 октября 2018

Недавно я хочу перенести топологию шторма на Heron.Но с этим есть некоторые проблемы.В топологии Heron я могу установить ресурсы components и containers, например:

conf.setComponentRam("spout", ByteAmount.fromMegabytes(512));
conf.setComponentRam("split", ByteAmount.fromMegabytes(512));
conf.setComponentRam("count", ByteAmount.fromMegabytes(512));
conf.setContainerDiskRequested(ByteAmount.fromGigabytes(3));
conf.setContainerRamRequested(ByteAmount.fromGigabytes(3));
conf.setContainerCpuRequested(2);

Но в топологии Storm я не могу установить эти требования к ресурсам.Поэтому, когда я пытаюсь запустить топологию Storm в Heron, используя RoundRobin Packing, он будет использовать default resource settings следующим образом:

DEFAULT_DISK_PADDING_PER_CONTAINER = ByteAmount.fromGigabytes(12);
DEFAULT_CPU_PADDING_PER_CONTAINER = 1;
MIN_RAM_PER_INSTANCE = ByteAmount.fromMegabytes(192);
DEFAULT_RAM_PADDING_PER_CONTAINER = ByteAmount.fromGigabytes(2);

Но проблема заключается в следующем: рабочий узел вмой кластер Heron не имеет так много ресурсов RAM или Disk.Таким образом, когда передается топология шторма, состояние этой топологии в Авроре будет pending из-за Insufficient: disk or ram.

Я не очень знаком с Storm, могу ли я установить требования к ресурсам компонентов в топологии Storm?Если нет, то помимо увеличения ресурсной емкости рабочих узлов в кластере, есть ли другой способ решения этой проблемы?Любая помощь очень благодарна.

1 Ответ

0 голосов
/ 22 октября 2018

Во-первых, позвольте мне попытаться понять ваш вопрос: вы спрашиваете о том, как установить ограничения cpu / memory / disk для каждого компонента в вашей топологии при использовании алгоритма упаковки ресурсов RoundRobinPacking.

Во-вторых, если яправильно понимаю ваш вопрос.Тогда ответ - это только первая часть вашего вопроса.Вы можете установить эти ограничения с помощью объекта conf, предоставленного инфраструктурой heron.Следует помнить следующее:

  1. Вы можете установить только ресурсы контейнера.В этом случае носики / болты в одном контейнере будут совместно использовать эти ресурсы.
  2. Вы можете установить ресурсы для каждого типа болта / носика.В этом случае общие ресурсы, используемые для каждого контейнера, представляют собой сумму этих носиков / болтов, упакованных в этот контейнер.
  3. Вы можете объединить два вышеупомянутых.В этом случае неуказанные носики / болты будут использовать оставшиеся ресурсы.

В-третьих, базовая архитектура Heron сильно отличается от Storm.Я не думаю, что Storm предлагает такой детальный уровень контроля ресурсов.И у Шторма нет этих конфигов.

...