如何在多个子网上运行AWS EMR集群?

时间:2019-12-02 22:53:04

标签: amazon-emr

当前,我们正在使用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": [

1 个答案:

答案 0 :(得分:3)

您目前无法实现您想要做的事情。 EMR群集始终以其所有节点位于同一子网中结束。

使用实例队列,您确实可以配置一组子网。.但是,在启动时,AWS将选择最佳的 one 并将所有实例放在此处

EMR Documentation的“使用控制台配置实例队列”下:

  1. 对于网络,输入一个值。如果为网络选择VPC,请选择单个 EC2子网,或按CTRL +单击以选择多个EC2子网。您选择的子网必须具有相同的类型(公共或私有)。如果仅选择一个,则群集将在该子网中启动。 如果选择一个组,则在群集启动时将从该组中选择最适合的子网。