当前,我们正在使用EMR中的config.json文件创建实例以配置集群。该文件指定一个子网(“ Ec2SubnetId”)。
我的EMR实例的ALL最终使用此子网...如何让它使用多个子网?这是我要推送到S3的Terraform模板。
{
"Applications": [
{"Name": "Spark"},
{"Name": "Hadoop"}
],
"BootstrapActions": [
{
"Name": "Step1-stuff",
"ScriptBootstrapAction": {
"Path": "s3://${artifact_s3_bucket_name}/artifacts/${build_commit_id}/install-stuff.sh",
"Args": ["${stuff_args}"]
}
},
{
"Name": "setup-cloudWatch-agent",
"ScriptBootstrapAction": {
"Path": "s3://${artifact_s3_bucket_name}/artifacts/${build_commit_id}/setup-cwagent-emr.sh",
"Args": ["${build_commit_id}"]
}
}
],
"Configurations": [
{
"Classification": "spark",
"Properties": {
"maximizeResourceAllocation": "true"
}
],
"Instances": {
"AdditionalMasterSecurityGroups": [ "${additional_master_security_group}" ],
"AdditionalSlaveSecurityGroups": [ "${additional_slave_security_group}" ],
"Ec2KeyName": "privatekey-${env}",
"Ec2SubnetId": "${data_subnet}",
"InstanceGroups": [
您目前无法实现您想做的事情。 EMR群集始终以其所有节点都在同一子网中结尾。
使用实例队列,您确实能够配置一组子网..但是在启动时,AWS将选择最佳的one并将所有实例放在此处。
从EMR Documentation的“使用控制台配置实例队列”下:
- 对于Network,输入一个值。如果为网络选择VPC,请选择单个EC2子网或CTRL +单击以选择多个EC2子网。您选择的子网必须具有相同的类型(公共或私有)。如果仅选择一个,则群集将在该子网中启动。 如果选择一个组,则在群集启动时将从该组中选择最适合的子网。