我在名为WordCountTopology.java
的Heron示例拓扑中修改了RAM要求,并使用mvn assembly:assembly
命令重建文件。当我将修改后的WordCountTopology提交给Heron集群时,我发现Heron Instance的RAM要求没有改变。
构建.jar
的过程是成功的。 WordCountTopology的默认RAM要求如下:
// configure component resources
conf.setComponentRam("word",
ByteAmount.fromMegabytes(ExampleResources.COMPONENT_RAM_MB * 2));
conf.setComponentRam("consumer",
ByteAmount.fromMegabytes(ExampleResources.COMPONENT_RAM_MB * 2));
// configure container resources
conf.setContainerDiskRequested(
ExampleResources.getContainerDisk(2 * parallelism, parallelism));
conf.setContainerRamRequested(
ExampleResources.getContainerRam(2 * parallelism, parallelism));
conf.setContainerCpuRequested(2);
在上面的代码中。 ExampleResources.COMPONENT_RAM_MB = 512mb
。 parallelism
的默认值为1
有关ExampleResources的内容如下:
static ByteAmount getContainerDisk(int components, int containers) {
return ByteAmount.fromGigabytes(Math.max(components / containers, 1));
}
static ByteAmount getContainerRam(int components, int containers) {
final int componentsPerContainer = Math.max(components / containers, 1);
return ByteAmount.fromMegabytes(COMPONENT_RAM_MB * componentsPerContainer);
}
我将ExampleResources.COMPONENT_RAM_MB=512mb
的值更改为256mb
但是,拓扑的要求在Aurora scheduler
中显示如下:
极光中的所有实例都是 FAILED :
我的问题:我应该怎样做才能有效地改变拓扑中的RAM要求?我不知道为什么任务在mesos和极光中运行失败。谢谢你的帮助。
答案 0 :(得分:0)
你知道你使用的是哪种版本的苍鹭吗?我们最近切换到一种称为资源合规循环调度的新打包算法。最终,资源分配将是自动的。