Недавно я хочу перенести топологию шторма на 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?Если нет, то помимо увеличения ресурсной емкости рабочих узлов в кластере, есть ли другой способ решения этой проблемы?Любая помощь очень благодарна.