这是我的目标:使用EMR5.3.0或EMR 5.4.0以及Spark 2.1.0到按需Hadoop集群(即时指定的节点数) > AWS CLI ,同时在S3中存储输入和输出数据,无需担心管理24 * 7集群或HDFS进行数据存储。
以下是我的挑战/问题: a)我可以使用' aws create-cluster'命令并指定节点数?那是对的吗?例如,如果我指定参数
--instance-count 10
这会创建一个主节点和9个核心节点吗?
b)如果我使用'创建集群',我可以使用CLI动态添加更多工作节点(我猜它被称为任务节点)以加快工作速度吗?
c)如果我在集群上安装Anaconda和其他软件(即Master),然后将Master和所有从节点保存为AMI,我是否仍然可以从这些具有不同节点数的AMI启动按需Hadoop集群我可以使用AWS CLI快速指定吗?谢谢。感谢您的反馈。
答案 0 :(得分:2)
在AWS EMR上使用自动扩展,您可以扩展和扩展群集上的节点。可以使用Cloudwatch指标(YARNMemoryAvailablePercentage和ContainerPendingRatio)触发横向扩展操作。以下示例政策
"AutoScalingPolicy":
{
"Constraints":
{
"MinCapacity": 10,
"MaxCapacity": 50
},
"Rules":
[
{"Name": "Compute-scale-up",
"Description": "Scale out based on ContainerPending Mterics",
"Action":
{
"SimpleScalingPolicyConfiguration":
{"AdjustmentType": "CHANGE_IN_CAPACITY",
"ScalingAdjustment": 1,
"CoolDown":0}
},
"Trigger":
{"CloudWatchAlarmDefinition":
{"AlarmNamePrefix": "compute-scale-up",
"ComparisonOperator": "GREATER_THAN_OR_EQUAL",
"EvaluationPeriods": 3,
"MetricName": "ContainerPending",
"Namespace": "AWS/ElasticMapReduce",
"Period": 300,
"Statistic": "AVERAGE",
"Threshold": 10,
"Unit": "COUNT",
"Dimensions":
[
{"Key": "JobFlowId",
"Value": "${emr:cluster_id}"}
]
}
}
},
{"Name": "Compute-scale-down",
"Description": "Scale in",
"Action":
{
"SimpleScalingPolicyConfiguration":
{"AdjustmentType": "CHANGE_IN_CAPACITY",
"ScalingAdjustment": -1,
"CoolDown":300}
},
"Trigger":
{"CloudWatchAlarmDefinition":
{"AlarmNamePrefix": "compute-scale-down",
"ComparisonOperator": "GREATER_THAN_OR_EQUAL",
"EvaluationPeriods": 3,
"MetricName": "MemoryAvailableMB",
"Namespace": "AWS/ElasticMapReduce",
"Period": 300,
"Statistic": "AVERAGE",
"Threshold": 24000,
"Unit": "COUNT",
"Dimensions":
[
{"Key": "JobFlowId",
"Value": "${emr:cluster_id}"}
]
}
}
}
]
}
您可以参考此博客了解更多详情
AsType<T>
答案 1 :(得分:0)
a)我可以使用'aws create-cluster'命令完成上述操作并指定节点数量?那是对的吗?例如,如果我指定参数...
是。
如果我使用'aws create-cluster',我可以使用CLI动态添加更多工作节点(我猜它叫做任务节点)来加速工作吗?
由于你的目标是动态添加按需实例,我建议你照看保留或现场实例(根据你的用例/费用)。
我们使用50%出价的现货实例,并在完成工作后使用终止政策。
如果我在群集上安装Anaconda和其他软件(即Master),然后将Master和所有从属节点保存为AMI,我是否仍然可以使用不同数量的节点从这些AMI启动按需Hadoop群集,我可以使用AWS CLI即时指定?
是的,你可以。