来自:https://forums.aws.amazon.com/thread.jspa?messageID=766424
的交叉发布嗨,
尝试将此策略应用于核心实例组:
{
"Constraints": {
"MinCapacity": 0,
"MaxCapacity": 2
},
"Rules": [
{
"Name": "ScaleUp",
"Action": {
"Market": "ON_DEMAND",
"SimpleScalingPolicyConfiguration": {
"AdjustmentType": "EXACT_CAPACITY",
"ScalingAdjustment": 5,
"CoolDown": 300
}
},
"Trigger": {
"CloudWatchAlarmDefinition": {
"ComparisonOperator": "GREATER_THAN",
"MetricName": "AppsPending",
"Threshold": 0,
"Period": 300
}
}
},
{
"Name": "ScaleDown",
"Action": {
"Market": "ON_DEMAND",
"SimpleScalingPolicyConfiguration": {
"AdjustmentType": "EXACT_CAPACITY",
"ScalingAdjustment": 0,
"CoolDown": 300
}
},
"Trigger": {
"CloudWatchAlarmDefinition": {
"ComparisonOperator": "LESS_THAN_OR_EQUAL",
"MetricName": "AppsRunning",
"Threshold": 0,
"Period": 300
}
}
}
]
}
但是我收到了这个错误:
调用时发生错误(ValidationException) PutAutoScalingPolicy操作:Auto Scaling约束参数 核心实例组的minCapacity应该至少为1。
我不是EMR的专家,但是我认为这是可行的文档(我可以在UI中手动创建一个仅限主集群,为什么存在这种差异?)。主节点正在cron调度上运行作业,当它启动时生成作业,然后AutoScaling激活核心实例来处理它,在作业完成时缩减。
有什么建议吗?
谢谢,Alex
PS。为了阐明功能要求,我正在尝试在master上运行zeppelin仪表板服务,让它每24小时启动一次批处理作业,这将需要一些节点,然后在其余时间缩减回0节点。很高兴考虑其他建议,如果我有错误的结束。
答案 0 :(得分:2)
确实,您可以启动没有任何核心节点的单节点,仅限主节点的群集,但这是一种特殊的“群集”,可以在主节点上运行所有内容。无法从多节点群集转换为单节点群集,反之亦然。因此,即使使用自动扩展,核心实例组也至少有1个实例。
答案 1 :(得分:0)
单节点群集不可扩展。您需要至少有一个核心节点以及主节点。因此,在应用扩展策略时,核心节点的最小数量应为1。
有关更多详细信息,请参阅链接: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-scale-on-demand.html