最近,我想将 Storm 拓扑迁移到 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 拓扑中,我无法设置这些资源需求。因此,当我尝试使用在 Heron 中运行 Storm 拓扑时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 集群中的 worker 节点并没有那么多RAM
资源Disk
。所以当提交 Storm 拓扑时,这个拓扑的状态会是pending
Aurora,因为Insufficient: disk or ram.
我对Storm不是很熟悉,可以在Storm拓扑中设置组件的资源需求吗?如果不行,除了增加集群中工作节点的资源容量,还有没有其他办法解决这个问题?任何帮助都非常感谢。