【发布时间】:2018-10-22 09:11:39
【问题描述】:
最近,我想将 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 拓扑中,我无法设置这些资源要求。因此,当我尝试使用 RoundRobin Packing 在 Heron 中运行 Storm 拓扑时,它将使用 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 资源。所以当提交 Storm 拓扑时,这个拓扑在 Aurora 中的状态会是pending,因为Insufficient: disk or ram.
我对Storm不是很熟悉,可以在Storm拓扑中设置组件的资源需求吗?如果没有,除了增加集群中工作节点的资源容量,还有其他方法可以解决这个问题吗?任何帮助都非常感谢。
【问题讨论】:
标签: apache-storm heron