如何在多个子网上运行AWS EMR集群? [英] How to run an AWS EMR cluster on multiple subnets?

查看:17
本文介绍了如何在多个子网上运行AWS EMR集群?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前,我们正在使用EMR中的config.json文件创建实例来配置集群。此文件指定了一个子网("Ec2SubnetID")。

我的所有EMR实例最终都使用此子网...我如何让它使用多个子网? 这是我推送到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": [

推荐答案

您当前无法实现您正在尝试的操作。电子病历群集最终总是将其所有节点放在同一子网中。

使用实例队列,您确实能够配置一组子网。但在启动时,AWS将选择最好的并将您的所有实例放在那里。

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

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

这篇关于如何在多个子网上运行AWS EMR集群?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆