Spec-Zone.ru › AWS CLI v2

[ aws . emr ]

create-cluster

Описание

Создает кластер Amazon EMR с указанными конфигурациями.

Синтаксис

 create-cluster
--release-label <value>   | --ami-version <value>
--instance-fleets <value> | --instance-groups <value> | --instance-type <value> --instance-count <value>
[--os-release-label <value>]
[--auto-terminate | --no-auto-terminate]
[--use-default-roles]
[--service-role <value>]
[--configurations <value>]
[--name <value>]
[--log-uri <value>]
[--log-encryption-kms-key-id <value>]
[--additional-info <value>]
[--ec2-attributes <value>]
[--termination-protected | --no-termination-protected]
[--unhealthy-node-replacement | --no-unhealthy-node-replacement]
[--scale-down-behavior <value>]
[--visible-to-all-users | --no-visible-to-all-users]
[--enable-debugging | --no-enable-debugging]
[--tags <value>]
[--applications <value>]
[--emrfs <value>]
[--bootstrap-actions <value>]
[--steps <value>]
[--restore-from-hbase-backup <value>]
[--security-configuration <value>]
[--custom-ami-id <value>]
[--ebs-root-volume-size <value>]
[--ebs-root-volume-iops <value>]
[--ebs-root-volume-throughput <value>]
[--repo-upgrade-on-boot <value>]
[--kerberos-attributes <value>]
[--managed-scaling-policy <value>]
[--placement-group-configs <value>]
[--auto-termination-policy <value>]

Параметры

--release-label (строка)

Указывает версию релиза Amazon EMR, которая определяет версии прикладного программного обеспечения, установленного в кластере. Например, --release-label emr-5.15.0 устанавливает версии и функции приложений, доступные в этой версии. Подробную информацию о версиях и функциях приложений, доступных в каждом релизе, см. в руководстве по выпуску Amazon EMR:

https://docs.aws.amazon.com/emr/latest/ReleaseGuide

Используйте --release-label только для версии релиза Amazon EMR 4.0 и более поздних. Используйте --ami-version для более ранних версий. Вы не можете указать одновременно метку выпуска и версию AMI.

--os-release-label (строка)

Указывает конкретный выпуск Amazon Linux для всех узлов в запросе на запуск кластера. Если выпуск не указан, EMR использует последнюю проверенную версию Amazon Linux для запуска кластера.

--ami-version (строка)

Применимо только к версиям релиза Amazon EMR, предшествующим 4.0. Используйте --release-label для версий 4.0 и новее. Указывает версию Amazon Linux Amazon Machine Image (AMI), которую следует использовать при запуске экземпляров Amazon EC2 в кластере. Например, --ami-version 3.1.0.

--instance-groups (список)

Указывает количество и тип экземпляров Amazon EC2, которые нужно создать для каждого типа узла в кластере, используя однородные группы экземпляров. Вы можете указать либо --instance-groups, либо --instance-fleets, но не оба параметра одновременно. Дополнительную информацию см. в следующем разделе руководства по управлению EMR:

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html

Вы можете указывать аргументы индивидуально, используя несколько блоков аргументов InstanceGroupType, по одному для группы экземпляров MASTER, по одному для группы экземпляров CORE и необязательно несколько групп экземпляров TASK.

Если вы указываете вложенные JSON-структуры, заключите весь блок аргументов InstanceGroupType в одинарные кавычки.

Каждый блок InstanceGroupType принимает следующие вложенные аргументы. Необязательные аргументы показаны в квадратных скобках.

  • [Name] - Необязательное дружественное имя для группы экземпляров.
  • InstanceGroupType - MASTER, CORE или TASK.
  • InstanceType - Тип экземпляра EC2, например, m4.large, который следует использовать для всех узлов в группе экземпляров.
  • InstanceCount - Количество экземпляров EC2, которые необходимо зарезервировать в группе экземпляров.
  • [BidPrice] - При указании, указывает, что группа экземпляров использует Spot-экземпляры. Это максимальная цена, которую вы готовы заплатить за Spot-экземпляры. Укажите OnDemandPrice, чтобы установить значение, равное цене On-Demand, или укажите сумму в долларах США.
  • [EbsConfiguration] - Указывает дополнительные тома Amazon EBS, подключенные к экземплярам EC2, используя вложенную JSON-структуру.
  • [AutoScalingPolicy] - Указывает политику автоматического масштабирования для группы экземпляров, используя вложенную JSON-структуру.

(структура)

Name -> (строка)

Дружественное имя, заданное группе экземпляров.

InstanceGroupType -> (строка)

Тип группы экземпляров в кластере.

BidPrice -> (строка)

Ставка предложения для каждого экземпляра Amazon EC2 в группе экземпляров при запуске узлов как Spot-экземпляров, выраженная в долларах США.

InstanceType -> (строка)

Тип экземпляра Amazon EC2 для всех экземпляров в группе экземпляров.

InstanceCount -> (целое число)

Целевое количество экземпляров Amazon EC2 для группы экземпляров

CustomAmiId -> (строка)

Идентификатор AMI настраиваемой AMI, который следует использовать при подготовке экземпляров EC2 Amazon EMR.

EbsConfiguration -> (структура)

Конфигурация EBS, которая будет связана с группой экземпляров.

EbsOptimized -> (логическое значение)

Флаг логического типа, используемый для маркировки EBS-оптимизированных экземпляров.

EbsBlockDeviceConfigs -> (список)

(структура)

VolumeSpecification -> (структура)

Спецификация тома EBS, которая будет создана и подключена к каждому экземпляру в этой группе экземпляров.

VolumeType -> (строка)

Тип тома EBS, подключенного ко всем экземплярам в группе экземпляров. Допустимые типы: gp2, io1 и стандартный.

SizeInGB -> (целое число)

Размер тома EBS в ГБ, подключенный ко всем экземплярам в группе экземпляров.

Iops -> (целое число)

IOPS тома EBS, подключенного ко всем экземплярам в группе экземпляров.

Throughput -> (целое число)

Пропускная способность тома EBS, подключенного ко всем экземплярам в группе экземпляров.

VolumesPerInstance -> (целое число)

Количество томов EBS, которые будут созданы и подключены к каждому экземпляру в группе экземпляров.

AutoScalingPolicy -> (структура)

Политика автоматического масштабирования, которая будет связана с группой экземпляров.

Constraints -> (структура)

Ограничения, которые будут связаны с политикой автоматического масштабирования.

MinCapacity -> (целое число)

Минимальное значение для экземпляров, которые будут масштабироваться в ответ на операции масштабирования.

MaxCapacity -> (целое число)

Максимальное значение для экземпляров, которые будут масштабироваться наружу в ответ на операции масштабирования.

Rules -> (список)

Правила, связанные с политикой автоматического масштабирования.

(структура)

Name -> (строка)

Имя правила автоматического масштабирования.

Description -> (строка)

Описание правила автоматического масштабирования.

Action -> (структура)

Действие, связанное с правилом автоматического масштабирования.

Market -> (строка)

Тип рынка экземпляров Amazon EC2, используемых для создания узла кластера действием автоматического масштабирования.

SimpleScalingPolicyConfiguration -> (структура)

Конфигурация простого масштабирования, которая будет связана с действием автоматического масштабирования.

AdjustmentType -> (строка)

Указывает, как интерпретируется параметр ScalingAdjustment.

ScalingAdjustment -> (целое число)

Величина масштабирования на основе указанного типа регулировки.

CoolDown -> (целое число)

Время в секундах после завершения операции масштабирования и до начала следующей операции масштабирования.

Trigger -> (структура)

Триггер, связанный с правилом автоматического масштабирования.

CloudWatchAlarmDefinition -> (структура)

Сигнализация, которая должна быть зарегистрирована в CloudWatch, для запуска операций масштабирования.

ComparisonOperator -> (строка)

Арифметическая операция для сравнения указанного параметра Statistic и Threshold.

EvaluationPeriods -> (целое число)

Количество периодов, в течение которых данные сравниваются с заданным пороговым значением.

MetricName -> (строка)

Имя метрики, связанной с сигнализацией.

Namespace -> (строка)

Пространство имен для метрики, связанной с сигнализацией.

Period -> (целое число)

Период в секундах, в течение которого применяется указанная статистика.

Statistic -> (строка)

Статистика, применяемая к метрике, связанной с сигнализацией.

Threshold -> (дробное число)

Значение, с которым сравнивается указанная статистика.

Unit -> (строка)

Единица измерения статистики.

Dimensions -> (список)

Размеры метрики, связанной с сигнализацией.

(структура)

Key -> (строка)

Ключ измерения.

Value -> (строка)

Значение измерения.

Configurations -> (список)

Конфигурации приложений группы экземпляров.

(структура)

Classification -> (строка)

Имя классификации конфигурации приложения

Properties -> (карта)

Свойства конфигурации приложения

key -> (строка)

Ключ конфигурации

value -> (строка)

Значение конфигурации

JSON Синтаксис:

[
  {
    "Name": "string",
    "InstanceGroupType": "MASTER"|"CORE"|"TASK",
    "BidPrice": "string",
    "InstanceType": "string",
    "InstanceCount": integer,
    "CustomAmiId": "string",
    "EbsConfiguration": {
      "EbsOptimized": true|false,
      "EbsBlockDeviceConfigs": [
        {
          "VolumeSpecification": {
            "VolumeType": "string",
            "SizeInGB": integer,
            "Iops": integer,
            "Throughput": integer
          },
          "VolumesPerInstance": integer
        }
        ...
      ]
    },
    "AutoScalingPolicy": {
      "Constraints": {
        "MinCapacity": integer,
        "MaxCapacity": integer
      },
      "Rules": [
        {
          "Name": "string",
          "Description": "string",
          "Action": {
            "Market": "ON_DEMAND"|"SPOT",
            "SimpleScalingPolicyConfiguration": {
              "AdjustmentType": "CHANGE_IN_CAPACITY"|"PERCENT_CHANGE_IN_CAPACITY"|"EXACT_CAPACITY",
              "ScalingAdjustment": integer,
              "CoolDown": integer
            }
          },
          "Trigger": {
            "CloudWatchAlarmDefinition": {
              "ComparisonOperator": "string",
              "EvaluationPeriods": integer,
              "MetricName": "string",
              "Namespace": "string",
              "Period": integer,
              "Statistic": "string",
              "Threshold": double,
              "Unit": "string",
              "Dimensions": [
                {
                  "Key": "string",
                  "Value": "string"
                }
                ...
              ]
            }
          }
        }
        ...
      ]
    },
    "Configurations": [
      {
        "Classification": "string",
        "Properties": {"string": "string"
          ...},
        "Configurations": [
          {
            "Classification": "string",
            "Properties": {"string": "string"
              ...}
          }
          ...
        ]
      }
      ...
    ]
  }
  ...
]

--instance-type (строка)

Сокращенный параметр в качестве альтернативы --instance-groups. Указывает тип экземпляра Amazon EC2, который следует использовать в кластере. Если используется без параметра --instance-count, кластер состоит из одного узла-мастера, работающего на указанном типе экземпляра EC2. При использовании совместно с --instance-count один экземпляр используется для узла-мастера, а оставшиеся — для типа основного узла.

--instance-count (строка)

Сокращенный параметр как альтернатива --instance-groups при совместном использовании с --instance-type. Указывает количество экземпляров Amazon EC2, которые нужно создать для кластера. Один экземпляр используется для узла-мастера, а оставшиеся — для основного типа узла.

--auto-terminate | --no-auto-terminate (логическое значение)

Указывает, должен ли кластер завершаться после выполнения всех шагов. Автоматическое завершение отключено по умолчанию.

--instance-fleets (список)

Применяется только к версии Amazon EMR 5.0 и более поздним. Указывает количество и тип экземпляров Amazon EC2, которые нужно создать для каждого типа узла в кластере, используя группы экземпляров. Вы можете указать либо --instance-fleets, либо --instance-groups, но не оба варианта. Дополнительную информацию и примеры см. в соответствующем разделе руководства по администрированию Amazon EMR:

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-fleet.html

Вы можете указывать аргументы индивидуально, используя несколько блоков аргументов InstanceFleetType, по одному для группы экземпляров MASTER, для группы экземпляров CORE и необязательно для группы экземпляров TASK.

Для каждой группы экземпляров можно указать следующие аргументы. Необязательные аргументы показаны в квадратных скобках.

  • [Name] - Необязательное дружественное имя для группы экземпляров.
  • InstanceFleetType - MASTER, CORE или TASK.
  • TargetOnDemandCapacity - Целевое количество единиц On-Demand для группы экземпляров, определяющее количество экземпляров On-Demand, которые нужно зарезервировать. Указанное WeightedCapacity для типа экземпляра в InstanceTypeConfigs учитывается в этом общем количестве, когда запускается экземпляр типа с опцией покупки On-Demand.
  • TargetSpotCapacity - Целевое количество единиц Spot для группы экземпляров, определяющее количество экземпляров Spot, которые нужно зарезервировать. Указанное WeightedCapacity для типа экземпляра в InstanceTypeConfigs учитывается в этом общем количестве, когда запускается экземпляр типа с опцией покупки Spot.
  • [LaunchSpecifications] - Когда указано TargetSpotCapacity, задает длительность блока и действие при истечении времени ожидания для экземпляров Spot.
  • InstanceTypeConfigs - Укажите до пяти типов экземпляров EC2 для использования в группе экземпляров, включая такие данные, как цена Spot и конфигурация Amazon EBS. При использовании стратегии распределения экземпляров On-Demand или Spot вы можете указать до 30 типов экземпляров на одну группу экземпляров.

(структура)

Name -> (string)

Дружественное имя, заданное для группы экземпляров.

InstanceFleetType -> (string)

Тип группы экземпляров в кластере.

TargetOnDemandCapacity -> (integer)

Целевое количество емкости On-demand для группы экземпляров.

TargetSpotCapacity -> (integer)

Целевое количество емкости Spot для группы экземпляров.

InstanceTypeConfigs -> (list)

(структура)

InstanceType -> (string)

Тип экземпляра Amazon EC2 для группы экземпляров.

WeightedCapacity -> (integer)

Вес, назначенный типу экземпляра, который повлияет на общее выполнение емкости.

BidPrice -> (string)

Цена ставки для каждого экземпляра Amazon EC2 в группе экземпляров при запуске узлов в качестве экземпляров Spot, выраженная в USD.

BidPriceAsPercentageOfOnDemandPrice -> (double)

Цена ставки в процентах от цены On-demand.

CustomAmiId -> (string)

Идентификатор AMI настраиваемого AMI для использования при развертывании экземпляров EC2 Amazon EMR.

Priority -> (double)

Приоритет, с которым Amazon EMR запускает экземпляры EC2 с этим типом экземпляра. Приоритет начинается с 0, что является максимальным приоритетом. Amazon EMR рассматривает приоритеты в порядке убывания.

EbsConfiguration -> (structure)

Конфигурация EBS, связанная с группой экземпляров.

EbsOptimized -> (boolean)

Флаг булевого типа, используемый для маркировки экземпляров EBS-optimized.

EbsBlockDeviceConfigs -> (list)

(структура)

VolumeSpecification -> (structure)

Спецификация тома EBS, создаваемого и подключаемого к каждому экземпляру в группе экземпляров.

VolumeType -> (string)

Тип тома EBS, подключаемый ко всем экземплярам в группе экземпляров. Допустимые типы: gp2, io1 и standard.

SizeInGB -> (integer)

Размер тома EBS в ГБ, подключаемый ко всем экземплярам в группе экземпляров.

Iops -> (integer)

IOPS тома EBS, подключаемого ко всем экземплярам в группе экземпляров.

Throughput -> (integer)

Пропускная способность тома EBS, подключаемого ко всем экземплярам в группе экземпляров.

VolumesPerInstance -> (integer)

Количество томов EBS, которые будут созданы и подключены к каждому экземпляру в группе экземпляров.

Configurations -> (list)

Конфигурации приложений группы экземпляров.

(структура)

Classification -> (string)

Имя классификации конфигурации приложения

Properties -> (map)

Свойства конфигурации приложения

key -> (string)

Ключ конфигурации

value -> (string)

Значение конфигурации

LaunchSpecifications -> (structure)

OnDemandSpecification -> (structure)

AllocationStrategy -> (string)

Стратегия запуска групп экземпляров On-Demand.

CapacityReservationOptions -> (structure)

UsageStrategy -> (string)

Стратегия использования резервированной емкости для выполнения емкости On-Demand.

CapacityReservationPreference -> (string)

Предпочтение резервирования емкости для экземпляра.

CapacityReservationResourceGroupArn -> (string)

ARN группы ресурсов резервирования емкости, в которой должен выполняться экземпляр.

SpotSpecification -> (structure)

TimeoutDurationMinutes -> (integer)

Время в минутах, по истечении которого будет выполнено действие, указанное в поле TimeoutAction, если запрошенные ресурсы недоступны.

TimeoutAction -> (string)

Действие, которое выполняется после TimeoutDurationMinutes.

BlockDurationMinutes -> (integer)

Продолжительность блока в минутах.

AllocationStrategy -> (string)

Стратегия запуска групп экземпляров Spot.

ResizeSpecifications -> (structure)

SpotResizeSpecification -> (structure)

TimeoutDurationMinutes -> (integer)

Время в минутах, по истечении которого изменение размера будет остановлено, если запрошенные ресурсы недоступны.

AllocationStrategy -> (string)

Стратегия запуска групп экземпляров Spot.

OnDemandResizeSpecification -> (structure)

TimeoutDurationMinutes -> (integer)

Время в минутах, по истечении которого изменение размера будет остановлено, если запрошенные ресурсы недоступны.

AllocationStrategy -> (string)

Стратегия запуска групп экземпляров On-Demand.

CapacityReservationOptions -> (structure)

UsageStrategy -> (string)

Стратегия использования резервированной емкости для выполнения емкости On-Demand.

CapacityReservationPreference -> (string)

Предпочтение резервирования емкости для экземпляра.

CapacityReservationResourceGroupArn -> (string)

ARN группы ресурсов резервирования емкости, в которой должен выполняться экземпляр.

Context -> (string)

Зарезервировано.

Синтаксис JSON:

[
  {
    "Name": "string",
    "InstanceFleetType": "MASTER"|"CORE"|"TASK",
    "TargetOnDemandCapacity": integer,
    "TargetSpotCapacity": integer,
    "InstanceTypeConfigs": [
      {
        "InstanceType": "string",
        "WeightedCapacity": integer,
        "BidPrice": "string",
        "BidPriceAsPercentageOfOnDemandPrice": double,
        "CustomAmiId": "string",
        "Priority": double,
        "EbsConfiguration": {
          "EbsOptimized": true|false,
          "EbsBlockDeviceConfigs": [
            {
              "VolumeSpecification": {
                "VolumeType": "string",
                "SizeInGB": integer,
                "Iops": integer,
                "Throughput": integer
              },
              "VolumesPerInstance": integer
            }
            ...
          ]
        },
        "Configurations": [
          {
            "Classification": "string",
            "Properties": {"string": "string"
              ...},
            "Configurations": [
              {
                "Classification": "string",
                "Properties": {"string": "string"
                  ...}
              }
              ...
            ]
          }
          ...
        ]
      }
      ...
    ],
    "LaunchSpecifications": {
      "OnDemandSpecification": {
        "AllocationStrategy": "lowest-price"|"prioritized",
        "CapacityReservationOptions": {
          "UsageStrategy": "use-capacity-reservations-first",
          "CapacityReservationPreference": "open"|"none",
          "CapacityReservationResourceGroupArn": "string"
        }
      },
      "SpotSpecification": {
        "TimeoutDurationMinutes": integer,
        "TimeoutAction": "TERMINATE_CLUSTER"|"SWITCH_TO_ONDEMAND",
        "BlockDurationMinutes": integer,
        "AllocationStrategy": "capacity-optimized"|"price-capacity-optimized"|"lowest-price"|"diversified"|"capacity-optimized-prioritized"
      }
    },
    "ResizeSpecifications": {
      "SpotResizeSpecification": {
        "TimeoutDurationMinutes": integer,
        "AllocationStrategy": "capacity-optimized"|"price-capacity-optimized"|"lowest-price"|"diversified"|"capacity-optimized-prioritized"
      },
      "OnDemandResizeSpecification": {
        "TimeoutDurationMinutes": integer,
        "AllocationStrategy": "lowest-price"|"prioritized",
        "CapacityReservationOptions": {
          "UsageStrategy": "use-capacity-reservations-first",
          "CapacityReservationPreference": "open"|"none",
          "CapacityReservationResourceGroupArn": "string"
        }
      }
    },
    "Context": "string"
  }
  ...
]

--name (string)

Имя кластера. Если не указано, по умолчанию используется «Разработчиский кластер».

--log-uri (string)

Указывает расположение в Amazon S3, в которое периодически записываются журналы. Если значение не указано, журналы не записываются в Amazon S3 с узла-мастера, и они будут потеряны, если узел-мастер завершит работу.

--log-encryption-kms-key-id (string)

Указывает идентификатор KMS, используемый для шифрования журналов. Если значение не указано, файлы журналов будут шифроваться с использованием метода шифрования по умолчанию AES-256. Этот атрибут доступен только с версией EMR 5.30.0 и более поздними, за исключением EMR 6.0.0.

--service-role (string)

Указывает роль службы IAM, которая требуется Amazon EMR для вызова других служб AWS от вашего имени во время работы кластера. Этот параметр обычно указывается при использовании настроенной роли службы. Чтобы указать роль службы по умолчанию, а также профиль экземпляра по умолчанию, используйте параметр --use-default-roles. Если роль и профиль экземпляра еще не существуют, используйте команду aws emr create-default-roles для их создания.

--auto-scaling-role (string)

Укажите --auto-scaling-role EMR_AutoScaling_DefaultRole, если для группы экземпляров указана политика автоматического масштабирования с использованием параметра --instance-groups. Эта роль службы IAM по умолчанию позволяет функции автоматического масштабирования запускать и завершать экземпляры Amazon EC2 во время операций масштабирования.

--use-default-roles (boolean)

Указывает, что кластер должен использовать роль службы по умолчанию (EMR_DefaultRole) и профиль экземпляра по умолчанию (EMR_EC2_DefaultRole) для разрешений на доступ к другим службам AWS.

Убедитесь, что роль и профиль экземпляра существуют. Чтобы их создать, используйте команду create-default-roles.

--configurations (string)

Указывает файл JSON, содержащий классификации конфигураций, которые можно использовать для настройки приложений, которые устанавливает Amazon EMR при запуске экземпляров кластера. Применяется только к Amazon EMR 4.0 и более поздним версиям. Ссылаемый файл может храниться локально (например, --configurations file://configurations.json) или в Amazon S3 (например, --configurations https://s3.amazonaws.com/myBucket/configurations.json). Каждая классификация обычно соответствует файлу конфигурации xml для приложения, например, yarn-site для YARN. Список доступных классификаций конфигураций и пример JSON см. в разделе руководства по выпуску Amazon EMR:

https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html

--ec2-attributes (structure)

Настраивает конфигурации кластера и экземпляров Amazon EC2. Принимает следующие аргументы:

  • KeyName - Указывает имя пары ключей AWS EC2, которая будет использоваться для SSH-соединений с узлом-мастером и другими экземплярами в кластере.
  • AvailabilityZone - Применимо к кластерам, использующим конфигурацию унифицированной группы экземпляров. Указывает зону доступности, в которой будет запущен кластер. Например, us-west-1b . AvailabilityZone используется для унифицированных групп экземпляров, а AvailabilityZones (множественное число) используется для флотов экземпляров.
  • AvailabilityZones - Применимо к кластерам, использующим конфигурацию флота экземпляров. Когда указано несколько зон доступности, Amazon EMR оценивает их и запускает экземпляры в оптимальной зоне доступности. AvailabilityZone используется для унифицированных групп экземпляров, а AvailabilityZones (множественное число) используется для флотов экземпляров.
  • SubnetId - Применимо к кластерам, использующим конфигурацию унифицированной группы экземпляров. Укажите подсеть VPC, в которой должен быть создан кластер. SubnetId используется для унифицированных групп экземпляров, а SubnetIds (множественное число) используется для флотов экземпляров.
  • SubnetIds - Применимо к кластерам, использующим конфигурацию флота экземпляров. Когда указано несколько идентификаторов подсетей EC2, Amazon EMR оценивает их и запускает экземпляры в оптимальной подсети. SubnetId используется для унифицированных групп экземпляров, а SubnetIds (множественное число) используется для флотов экземпляров.
  • InstanceProfile - IAM-роль, которая предоставляет экземплярам EC2 доступ к другим службам AWS, таким как Amazon S3, необходимым для операций.
  • EmrManagedMasterSecurityGroup - Идентификатор группы безопасности Amazon EC2 для узла-мастера.
  • EmrManagedSlaveSecurityGroup - Идентификатор группы безопасности Amazon EC2 для узлов-рабочих.
  • ServiceAccessSecurityGroup - Идентификатор группы безопасности Amazon EC2 для доступа Amazon EMR к кластерам в частных подсетях VPC.
  • AdditionalMasterSecurityGroups - Список дополнительных идентификаторов групп безопасности Amazon EC2 для узла-мастера.
  • AdditionalSlaveSecurityGroups - Список дополнительных идентификаторов групп безопасности Amazon EC2 для узлов-рабочих.

KeyName -> (строка)

Имя пары ключей Amazon EC2, которое можно использовать для подключения по SSH к узлу-мастеру в качестве пользователя ‘hadoop’.

SubnetId -> (строка)

Для запуска кластера в Amazon Virtual Private Cloud (Amazon VPC) установите этот параметр в идентификатор подсети Amazon VPC, где вы хотите запустить кластер. Если вы не укажете это значение, кластер запускается в обычном облаке Amazon Web Services, вне Amazon VPC.

SubnetIds -> (список)

Список SubnetIds.

(строка)

AvailabilityZone -> (строка)

Зона доступности, в которой будет работать кластер.

AvailabilityZones -> (список)

Список AvailabilityZones.

(строка)

InstanceProfile -> (строка)

IAM-роль для кластера. Экземпляры EC2 кластера принимают эту роль. По умолчанию роль — EMR_EC2_DefaultRole. Чтобы использовать роль по умолчанию, вы должны были предварительно создать её, используя команду create-default-roles.

EmrManagedMasterSecurityGroup -> (строка)

Идентификатор группы безопасности Amazon EC2 для узла-мастера.

EmrManagedSlaveSecurityGroup -> (строка)

Идентификатор группы безопасности Amazon EC2 для узлов-рабочих.

ServiceAccessSecurityGroup -> (строка)

Идентификатор группы безопасности Amazon EC2 для доступа Amazon EMR к кластерам в частных подсетях VPC.

AdditionalMasterSecurityGroups -> (список)

Список дополнительных идентификаторов групп безопасности Amazon EC2 для узла-мастера

(строка)

AdditionalSlaveSecurityGroups -> (список)

Список дополнительных идентификаторов групп безопасности Amazon EC2 для узлов-рабочих.

(строка)

Сокращенная синтаксическая запись:

KeyName=string,SubnetId=string,SubnetIds=string,string,AvailabilityZone=string,AvailabilityZones=string,string,InstanceProfile=string,EmrManagedMasterSecurityGroup=string,EmrManagedSlaveSecurityGroup=string,ServiceAccessSecurityGroup=string,AdditionalMasterSecurityGroups=string,string,AdditionalSlaveSecurityGroups=string,string

Синтаксис JSON:

{
  "KeyName": "string",
  "SubnetId": "string",
  "SubnetIds": ["string", ...],
  "AvailabilityZone": "string",
  "AvailabilityZones": ["string", ...],
  "InstanceProfile": "string",
  "EmrManagedMasterSecurityGroup": "string",
  "EmrManagedSlaveSecurityGroup": "string",
  "ServiceAccessSecurityGroup": "string",
  "AdditionalMasterSecurityGroups": ["string", ...],
  "AdditionalSlaveSecurityGroups": ["string", ...]
}

--termination-protected | --no-termination-protected (булево)

Указывает, нужно ли заблокировать кластер, чтобы предотвратить завершение работы экземпляров Amazon EC2 вызовом API, вмешательством пользователя или ошибкой.

--unhealthy-node-replacement | --no-unhealthy-node-replacement (булево)

Замена неисправных узлов для кластера Amazon EMR.

--scale-down-behavior (строка)

Указывает способ завершения отдельных экземпляров Amazon EC2 при автоматическом масштабировании или изменении размера группы экземпляров.

Допустимые значения:

  • TERMINATE_AT_TASK_COMPLETION - Указывает, что Amazon EMR помещает узлы в черный список и отключает задачи с узлов перед завершением работы экземпляра.
  • TERMINATE_AT_INSTANCE_HOUR - Указывает, что Amazon EMR завершит работу экземпляров EC2 на границе часа работы экземпляра, независимо от времени отправки запроса на завершение.

--visible-to-all-users | --no-visible-to-all-users (булево)

Указывает, виден ли кластер всем пользователям IAM учетной записи AWS, связанной с кластером. Если пользователь имеет соответствующие разрешения в политике, он также может управлять кластером.

Видимость включена по умолчанию. Опция --no-visible-to-all-users больше не поддерживается. Чтобы ограничить видимость кластера, используйте политику IAM.

--enable-debugging | --no-enable-debugging (булево)

Указывает, что инструмент отладки включен для кластера, что позволяет просматривать файлы журналов с помощью консоли Amazon EMR. Включение отладки требует указания --log-uri, поскольку файлы журналов должны храниться в Amazon S3, чтобы Amazon EMR мог индексировать их для просмотра в консоли. С 23 января 2023 года Amazon EMR прекратит поддержку инструмента отладки для всех версий.

--tags (список)

Список тегов для добавления к кластеру, которые применяются к каждому экземпляру Amazon EC2 в кластере. Теги — это пары ключ-значение, состоящие из обязательного ключа-строки максимальной длиной 128 символов и необязательного значения-строки максимальной длиной 256 символов.

Вы можете указать теги в формате key=value или добавить тег без значения, используя только имя ключа, например key . Используйте пробел для разделения нескольких тегов.

(строка)

Синтаксис:

"string" "string" ...

--bootstrap-actions (список)

Указывает список действий загрузки для выполнения на каждом экземпляре EC2 при создании кластера. Действия загрузки выполняются на каждом экземпляре сразу после подготовки экземпляра EC2 Amazon EMR и перед установкой Amazon EMR указанных приложений.

Вы можете указать действие загрузки в виде встроенной структуры JSON в одинарных кавычках или использовать сокращенный синтаксис, указывая несколько действий загрузки, каждое разделенное пробелом. При использовании сокращенного синтаксиса каждое действие загрузки принимает следующие параметры, разделенные запятыми без последующего пробела. Необязательные параметры показаны в квадратных скобках.

  • Path - Путь и имя файла скрипта для выполнения, который должен быть доступен каждому экземпляру в кластере. Например, Path=s3://mybucket/myscript.sh .
  • [Name] - Название действия загрузки для облегчения идентификации. Например, Name=BootstrapAction1
  • [Args] - Список аргументов, передаваемых скрипту действия загрузки, разделенных запятыми. Аргументы могут быть либо списком значений (Args=arg1,arg2,arg3 ), либо списком пар ключ-значение, а также необязательных значений, заключенных в квадратные скобки (Args=[arg1,arg2=arg2value,arg3]) .

(структура)

Name -> (строка)

Path -> (строка)

Расположение скрипта, который будет выполняться во время действия загрузки. Может быть расположением в Amazon S3 или локальной файловой системе.

Args -> (список)

Список аргументов командной строки, передаваемых скрипту действия загрузки

(строка)

Сокращенная синтаксическая запись:

Name=string,Path=string,Args=string,string ...

Синтаксис JSON:

[
  {
    "Name": "string",
    "Path": "string",
    "Args": ["string", ...]
  }
  ...
]

--applications (список)

Указывает приложения для установки в кластере. Доступные приложения и их соответствующие версии различаются в зависимости от выпуска Amazon EMR. Дополнительную информацию см. в Руководстве по выпуску Amazon EMR:

https://docs.aws.amazon.com/emr/latest/ReleaseGuide/

При использовании версий Amazon EMR ранее 4.0 некоторые приложения принимают необязательные аргументы для настройки. Аргументы должны быть либо списком значений, разделенных запятыми (Args=arg1,arg2,arg3 ), либо списком значений и пар ключ-значение в квадратных скобках (Args=[arg1,arg2=arg3,arg4] ).

(структура)

Name -> (строка)

Название приложения.

Args -> (список)

Список аргументов, передаваемых приложению.

(строка)

Сокращенная синтаксическая запись:

Name=string,Args=string,string ...

Синтаксис JSON:

[
  {
    "Name": "MapR"|"HUE"|"HIVE"|"PIG"|"HBASE"|"IMPALA"|"GANGLIA"|"HADOOP"|"SPARK",
    "Args": ["string", ...]
  }
  ...
]

--emrfs (структура)

Указывает параметры конфигурации EMRFS, такие как согласованный вид и параметры шифрования Amazon S3.

При использовании версии Amazon EMR 4.8.0 или более поздней рекомендуется использовать параметр --configurations вместе с классификацией конфигурации emrfs-site для настройки EMRFS и использовать конфигурации безопасности для настройки шифрования данных EMRFS в Amazon S3. Дополнительную информацию см. в соответствующем разделе Руководства по управлению Amazon EMR:

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emrfs-configure-consistent-view.html

Consistent -> (булево)

Включить согласованный вид EMRFS.

SSE -> (булево)

Включить шифрование Amazon S3 на стороне сервера для файлов, записанных в S3 с помощью EMRFS.

RetryCount -> (целое число)

Максимальное количество попыток повторной обработки при несогласованности S3.

RetryPeriod -> (целое число)

Время (в секундах) до первой попытки повторной обработки. Последующие попытки используют экспоненциальное возвратное ожидание.

Args -> (список)

Список аргументов для дополнительных параметров конфигурации EMRFS.

(строка)

Encryption -> (строка)

Тип шифрования EMRFS.

ProviderType -> (строка)

Тип поставщика шифрования на стороне клиента EMRFS.

KMSKeyId -> (строка)

Идентификатор главного ключа шифрования AWS KMS.

CustomProviderLocation -> (строка)

Расположение JAR-файла пользовательского поставщика шифрования.

CustomProviderClass -> (строка)

Полное имя класса пользовательского поставщика шифрования.

Сокращенная синтаксическая запись:

Consistent=boolean,SSE=boolean,RetryCount=integer,RetryPeriod=integer,Args=string,string,Encryption=string,ProviderType=string,KMSKeyId=string,CustomProviderLocation=string,CustomProviderClass=string

Синтаксис JSON:

{
  "Consistent": true|false,
  "SSE": true|false,
  "RetryCount": integer,
  "RetryPeriod": integer,
  "Args": ["string", ...],
  "Encryption": "SERVERSIDE"|"CLIENTSIDE",
  "ProviderType": "KMS"|"CUSTOM",
  "KMSKeyId": "string",
  "CustomProviderLocation": "string",
  "CustomProviderClass": "string"
}

--steps (список)

Указывает список шагов, которые должен выполнить кластер. Шаги выполняются только на узле-мастере после установки приложений и используются для отправки работы в кластер. Шаг можно указать с помощью сокращенной записи, со ссылкой на файл JSON или указав встроенную структуру JSON. Args, указанные со шагами, должны быть списком значений, разделенных запятыми (Args=arg1,arg2,arg3 ), или списком значений и пар «ключ-значение» в квадратных скобках (Args=[arg1,arg2=value,arg4 ).

(структура)

Тип -> (строка)

Тип шага, который необходимо добавить в кластер.

Имя -> (строка)

Имя шага.

ДействиеПриОшибке -> (строка)

Действие, которое должно быть выполнено в случае сбоя шага кластера.

Jar -> (строка)

Путь к файлу JAR, который выполняется во время шага.

Args -> (список)

Список аргументов командной строки, которые нужно передать шагу.

(строка)

MainClass -> (строка)

Имя главного класса в указанном файле Java. Если не указано, файл JAR должен указать Main-Class в файле манифеста.

Properties -> (строка)

Список свойств Java, которые устанавливаются при выполнении шага. Вы можете использовать эти свойства для передачи пар «ключ-значение» в вашу главную функцию.

Сокращенная запись:

Type=string,Name=string,ActionOnFailure=string,Jar=string,Args=string,string,MainClass=string,Properties=string ...

Синтаксис JSON:

[
  {
    "Type": "CUSTOM_JAR"|"STREAMING"|"HIVE"|"PIG"|"IMPALA",
    "Name": "string",
    "ActionOnFailure": "TERMINATE_CLUSTER"|"CANCEL_AND_WAIT"|"CONTINUE",
    "Jar": "string",
    "Args": ["string", ...],
    "MainClass": "string",
    "Properties": "string"
  }
  ...
]

--additional-info (строка)

Указывает дополнительную информацию при создании кластера. Для установки режима разработки при запуске кластера EMR установите этот параметр в {"clusterType":"development"} .

--restore-from-hbase-backup (структура)

Применяется только при использовании версий Amazon EMR, более ранних, чем 4.0. Запускает новый кластер HBase и заполняет его данными из предыдущей резервной копии кластера HBase. HBase должен быть установлен с использованием параметра --applications.

Dir -> (строка)

Расположение резервной копии Hbase в Amazon S3. Пример: s3://mybucket/mybackup , где mybucket — указанный бакет Amazon S3, а mybackup — указанное расположение резервной копии. Путь должен начинаться с s3://, что относится к бакету Amazon S3.

BackupVersion -> (строка)

Версия резервной копии для восстановления. Если не указано, используется последняя резервная копия в указанном расположении.

Сокращенная запись:

Dir=string,BackupVersion=string

Синтаксис JSON:

{
  "Dir": "string",
  "BackupVersion": "string"
}

--security-configuration (строка)

Указывает имя конфигурации безопасности, которую нужно использовать для кластера. Конфигурация безопасности определяет параметры шифрования данных и другие параметры безопасности. Дополнительную информацию см. в соответствующей теме руководства по администрированию Amazon EMR:

https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-encryption-enable-security-configuration.html

Используйте list-security-configurations, чтобы получить список доступных конфигураций безопасности в активной учетной записи.

--custom-ami-id (строка)

Применяется только для версии Amazon EMR 5.7.0 и более поздних. Указывает идентификатор AMI пользовательской AMI, которую следует использовать при предоставлении Amazon EMR экземпляров EC2. Пользовательская AMI может использоваться для шифрования корневого тома Amazon EBS. Она также может использоваться вместо действий bootstrap для настройки узлов кластера. Дополнительную информацию см. в соответствующей теме руководства по администрированию Amazon EMR:

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html

--ebs-root-volume-size (строка)

Этот параметр доступен только с Amazon EMR версии 4.x и более поздними. Указывает размер, в GiB, тома корневого устройства EBS Amazon Linux AMI, который используется для каждого экземпляра EC2 в кластере.

--ebs-root-volume-iops (строка)

Этот параметр доступен только с Amazon EMR версии 6.15.0 и более поздними. Указывает IOPS корневого тома EBS Amazon Linux AMI, используемого для каждого экземпляра EC2 в кластере.

--ebs-root-volume-throughput (строка)

Этот параметр доступен только с Amazon EMR версии 6.15.0 и более поздними. Указывает пропускную способность, в MiB/с, корневого тома EBS Amazon Linux AMI, используемого для каждого экземпляра EC2 в кластере.

--repo-upgrade-on-boot (строка)

Применяется только при указании --custom-ami-id. При первом запуске Amazon Linux AMI по умолчанию подключаются к репозиториям пакетов для установки обновлений безопасности до запуска других служб. Вы можете установить этот параметр с помощью --rep-upgrade-on-boot NONE, чтобы отключить эти обновления. ВНИМАНИЕ: это создаёт дополнительные риски безопасности.

--kerberos-attributes (структура)

Указывает необходимые атрибуты кластера для Kerberos при включении аутентификации Kerberos в указанной --security-configuration. Принимает следующие аргументы:

  • Realm — Указывает имя домена Kerberos, к которому принадлежат все узлы в кластере. Например, Realm=EC2.INTERNAL.
  • KdcAdminPassword — Указывает пароль, используемый в кластере для службы kadmin, которая управляет принципами Kerberos, политиками паролей и ключом для кластера.
  • CrossRealmTrustPrincipalPassword — Требуется при установлении доверия между доменами с KDC в другом домене. Это пароль для принципа междоменного доверия, который должен быть одинаковым во всех доменах.
  • ADDomainJoinUser — Требуется при установлении доверия с доменом Active Directory. Это имя пользователя входа в AD с достаточными привилегиями для присоединения ресурсов к домену.
  • ADDomainJoinPassword — Пароль AD для ADDomainJoinUser.

Realm -> (строка)

Имя домена Kerberos.

KdcAdminPassword -> (строка)

Пароль администратора Kerberos.

CrossRealmTrustPrincipalPassword -> (строка)

Пароль для установления междоменного доверия.

ADDomainJoinUser -> (строка)

Имя пользователя с привилегиями для присоединения экземпляров к Active Directory.

ADDomainJoinPassword -> (строка)

Пароль пользователя с привилегиями для присоединения экземпляров к Active Directory.

Сокращенная запись:

Realm=string,KdcAdminPassword=string,CrossRealmTrustPrincipalPassword=string,ADDomainJoinUser=string,ADDomainJoinPassword=string

Синтаксис JSON:

{
  "Realm": "string",
  "KdcAdminPassword": "string",
  "CrossRealmTrustPrincipalPassword": "string",
  "ADDomainJoinUser": "string",
  "ADDomainJoinPassword": "string"
}

--step-concurrency-level (целое число) Эта команда указывает уровень конкуретности шагов кластера. По умолчанию 1, что означает отсутствие конкурентности.

--managed-scaling-policy (структура)

Политика управляемого масштабирования для кластера Amazon EMR. Политика определяет пределы для ресурсов, которые могут быть добавлены или удалены из кластера. Вы можете указать ComputeLimits, которые включают MaximumCapacityUnits, MaximumCoreCapacityUnits, MinimumCapacityUnits, MaximumOnDemandCapacityUnits и UnitType. Для кластера InstanceFleet UnitType должен быть InstanceFleetUnits. Для кластеров InstanceGroup UnitType может быть либо VCPU, либо Instances.

ComputeLimits -> (структура)

Пределы EC2 единиц для политики управляемого масштабирования. Активность управляемого масштабирования кластера не должна превышать или опускаться ниже этих пределов. Пределы применяются к группам CORE и TASK и не включают объём группы MASTER.

MinimumCapacityUnits -> (целое число)

Нижняя граница EC2 единиц. Она измеряется в ядрах VCPU или экземплярах для групп экземпляров и измеряется в единицах для флотов экземпляров. Действия управляемого масштабирования не допускаются за пределами этой границы.

MaximumCapacityUnits -> (целое число)

Верхняя граница EC2 единиц. Она измеряется в ядрах VCPU или экземплярах для групп экземпляров и измеряется в единицах для флотов экземпляров. Действия управляемого масштабирования не допускаются за пределами этой границы.

MaximumOnDemandCapacityUnits -> (целое число)

Верхняя граница EC2 единиц с запросом по требованию. Она измеряется в ядрах VCPU или экземплярах для групп экземпляров и измеряется в единицах для флотов экземпляров. Единицы с запросом по требованию не допускаются для масштабирования за пределами этой границы. Это значение должно быть меньше MaximumCapacityUnits.

UnitType -> (строка)

Тип единицы, используемый для указания политики управляемого масштабирования.

MaximumCoreCapacityUnits -> (целое число)

Верхняя граница EC2 единиц для типа узла ядра в кластере. Она измеряется в ядрах VCPU или экземплярах для групп экземпляров и измеряется в единицах для флотов экземпляров. Единицы ядра не допускаются для масштабирования за пределами этой границы. Параметр используется для разделения распределения ресурсов между ядровыми и рабочими узлами.

ScalingStrategy -> (строка)

Определяет, можно ли установить пользовательский индекс производительности масштабирования.

UtilizationPerformanceIndex -> (целое число)

Целое число, представляющее расширенную стратегию масштабирования. Установка более высокого значения оптимизирует производительность. Установка более низкого значения оптимизирует использование ресурсов. Установка значения 50 балансирует производительность и экономию ресурсов. Возможные значения составляют 1, 25, 50, 75 и 100.

Сокращенная запись:

ComputeLimits={MinimumCapacityUnits=integer,MaximumCapacityUnits=integer,MaximumOnDemandCapacityUnits=integer,UnitType=string,MaximumCoreCapacityUnits=integer},ScalingStrategy=string,UtilizationPerformanceIndex=integer

Синтаксис JSON:

{
  "ComputeLimits": {
    "MinimumCapacityUnits": integer,
    "MaximumCapacityUnits": integer,
    "MaximumOnDemandCapacityUnits": integer,
    "UnitType": "VCPU"|"Instances"|"InstanceFleetUnits",
    "MaximumCoreCapacityUnits": integer
  },
  "ScalingStrategy": "DEFAULT"|"ADVANCED",
  "UtilizationPerformanceIndex": integer
}

--placement-group-configs (список)

Конфигурация группы размещения для кластера Amazon EMR. Конфигурация указывает стратегию группы размещения EC2, связанную с каждой ролью экземпляра EMR.

В настоящее время мы поддерживаем группы размещения только для роли MASTER со стратегией SPREAD по умолчанию. Вы можете включить её, передав --placement-group-configs InstanceRole=MASTER при создании кластера.

(структура)

InstanceRole -> (строка)

Роль экземпляра в кластере.

PlacementStrategy -> (строка)

Стратегия группы размещения EC2, связанная с ролью экземпляра.

Сокращенная запись:

InstanceRole=string,PlacementStrategy=string ...

Синтаксис JSON:

[
  {
    "InstanceRole": "MASTER"|"CORE"|"TASK",
    "PlacementStrategy": "SPREAD"|"PARTITION"|"CLUSTER"|"NONE"
  }
  ...
]

--auto-termination-policy (структура)

Политика автоматического завершения для кластера Amazon EMR. Конфигурация указывает порог времени простоя для автоматического завершения кластера.

IdleTimeout -> (длинное целое число)

Указывает время простоя в секундах, после которого кластер автоматически завершается. Вы можете указать значение от 60 секунд до 604800 секунд (семь дней).

Сокращенная запись:

IdleTimeout=long

Синтаксис JSON:

{
  "IdleTimeout": long
}

Общие параметры

--debug (boolean)

Включить отладку логов.

--endpoint-url (string)

Переопределить стандартный URL команды на заданный URL.

--no-verify-ssl (boolean)

По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет стандартное поведение проверки SSL-сертификатов.

--no-paginate (boolean)

Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.

--output (string)

Стиль форматирования вывода команды.

  • json
  • text
  • table
  • yaml
  • yaml-stream

--query (string)

Запрос JMESPath для фильтрации данных ответа.

--profile (string)

Использовать определенный профиль из файла учетных данных.

--region (string)

Регион для использования. Переопределяет настройки конфигурации/окружения.

--version (string)

Отобразить версию этого инструмента.

--color (string)

Включить/выключить цветной вывод.

  • on
  • off
  • auto

--no-sign-request (boolean)

Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.

--ca-bundle (string)

Файл сертификатов CA для проверки SSL-сертификатов. Переопределяет настройки конфигурации/окружения.

--cli-read-timeout (int)

Максимальное время чтения сокета в секундах. Если значение равно 0, чтение сокета будет блокирующим и без таймаута. Значение по умолчанию — 60 секунд.

--cli-connect-timeout (int)

Максимальное время подключения сокета в секундах. Если значение равно 0, подключение сокета будет блокирующим и без таймаута. Значение по умолчанию — 60 секунд.

--cli-binary-format (string)

Стиль форматирования для двоичных блоков. По умолчанию используется формат base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как строка, закодированная в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны передаваться буквально. При предоставлении содержимого из файла, которое соответствует двоичному блоку fileb:// всегда будет рассматриваться как двоичное и будет использовать содержимое файла напрямую независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (boolean)

Отключить пейджер CLI для вывода.

--cli-auto-prompt (boolean)

Автоматически запрашивать входные параметры CLI.

--no-cli-auto-prompt (boolean)

Отключить автоматический запрос входных параметров CLI.

Примеры

Большинство следующих примеров предполагают, что вы указали роль службы Amazon EMR и профиль экземпляра Amazon EC2. Если вы этого не сделали, вы должны указать каждую необходимую роль IAM или использовать параметр --use-default-roles при создании кластера. Дополнительную информацию об указании ролей IAM см. в руководстве Amazon EMR Management Guide в разделе Настройка ролей IAM для разрешений Amazon EMR на службы AWS.

Пример 1: Создание кластера

Следующий create-cluster пример создает простой кластер EMR.

aws emr create-cluster \
    --release-label emr-5.14.0 \
    --instance-type m4.large \
    --instance-count 2

Эта команда не выводит никакого результата.

Пример 2: Создание кластера Amazon EMR с роли ServiceRole и InstanceProfile по умолчанию

Следующий create-cluster пример создает кластер Amazon EMR, который использует конфигурацию --instance-groups.

aws emr create-cluster \
    --release-label emr-5.14.0 \
    --service-role EMR_DefaultRole \
    --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Пример 3: Создание кластера Amazon EMR, использующего флот экземпляров

Следующий create-cluster пример создает кластер Amazon EMR, использующий конфигурацию --instance-fleets, указывая два типа экземпляров для каждого флота и два подсети EC2.

aws emr create-cluster \
    --release-label emr-5.14.0 \
    --service-role EMR_DefaultRole \
    --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \
    --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m4.large}'] InstanceFleetType=CORE,TargetSpotCapacity=11,InstanceTypeConfigs=['{InstanceType=m4.large,BidPrice=0.5,WeightedCapacity=3}','{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}

Пример 4: Создание кластера с ролями по умолчанию

Следующий create-cluster пример использует параметр --use-default-roles для указания ролей службы и профилей экземпляров по умолчанию.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --use-default-roles \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Пример 5: Создание кластера и указание приложений для установки

Следующий create-cluster пример использует параметр --applications для указания приложений, которые устанавливает Amazon EMR. В этом примере устанавливаются Hadoop, Hive и Pig.

aws emr create-cluster \
    --applications Name=Hadoop Name=Hive Name=Pig \
    --release-label emr-5.9.0 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Пример 6: Создание кластера, включающего Spark

В данном примере устанавливается Spark.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --applications Name=Spark \
    --ec2-attributes KeyName=myKey \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Пример 7: Указание пользовательской AMI для использования экземплярами кластера

Следующий create-cluster пример создает экземпляр кластера на основе Amazon Linux AMI с идентификатором ami-a518e6df.

aws emr create-cluster \
    --name "Cluster with My Custom AMI" \
    --custom-ami-id ami-a518e6df \
    --ebs-root-volume-size 20 \
    --release-label emr-5.9.0 \
    --use-default-roles \
    --instance-count 2 \
    --instance-type m4.large

Пример 8: Настройка конфигураций приложений

Следующие примеры используют параметр --configurations для указания JSON-файла конфигурации, содержащего настройки приложений для Hadoop. Дополнительную информацию см. в разделе Настройка приложений в руководстве Amazon EMR Release Guide.

Содержание файла configurations.json:

[
    {
       "Classification": "mapred-site",
       "Properties": {
           "mapred.tasktracker.map.tasks.maximum": 2
       }
    },
    {
        "Classification": "hadoop-env",
        "Properties": {},
        "Configurations": [
            {
                "Classification": "export",
                "Properties": {
                    "HADOOP_DATANODE_HEAPSIZE": 2048,
                    "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19"
                }
            }
        ]
    }
]

Следующий пример ссылается на файл configurations.json в качестве локального файла.

aws emr create-cluster \
    --configurations file://configurations.json \
    --release-label emr-5.9.0 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Следующий пример ссылается на файл configurations.json в Amazon S3.

aws emr create-cluster \
    --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/configurations.json \
    --release-label emr-5.9.0 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Пример 9: Создание кластера с группами экземпляров Master, Core и Task

Следующий create-cluster пример использует --instance-groups для указания типа и количества экземпляров EC2, которые будут использоваться для групп экземпляров Master, Core и Task.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --instance-groups Name=Master,InstanceGroupType=MASTER,InstanceType=m4.large,InstanceCount=1 Name=Core,InstanceGroupType=CORE,InstanceType=m4.large,InstanceCount=2 Name=Task,InstanceGroupType=TASK,InstanceType=m4.large,InstanceCount=2

Пример 10: Указание, что кластер должен завершиться после выполнения всех этапов

Следующий create-cluster пример использует --auto-terminate для указания, что кластер должен автоматически завершиться после выполнения всех этапов.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large  InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Пример 11: Указание подробностей конфигурации кластера, таких как пара ключей Amazon EC2, конфигурация сети и группы безопасности

Следующий create-cluster пример создает кластер с парой ключей Amazon EC2 под названием myKey и настроенным профилем экземпляра под названием myProfile. Пары ключей используются для авторизации подключений SSH к узлам кластера, чаще всего к мастер-узлу. Дополнительную информацию см. в разделе Использование пары ключей Amazon EC2 для учетных данных SSH в руководстве Amazon EMR Management Guide.

aws emr create-cluster \
    --ec2-attributes KeyName=myKey,InstanceProfile=myProfile \
    --release-label emr-5.9.0 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Следующий пример создает кластер в подсети Amazon VPC.

aws emr create-cluster \
    --ec2-attributes SubnetId=subnet-xxxxx \
    --release-label emr-5.9.0 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Следующий пример создает кластер в зоне доступности us-east-1b.

aws emr create-cluster \
    --ec2-attributes AvailabilityZone=us-east-1b \
    --release-label emr-5.9.0 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Следующий пример создает кластер и указывает только управляемые Amazon EMR группы безопасности.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --service-role myServiceRole \
    --ec2-attributes InstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Следующий пример создает кластер и указывает только дополнительные группы безопасности Amazon EC2.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --service-role myServiceRole \
    --ec2-attributes InstanceProfile=myRole,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4] \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Следующий пример создает кластер и указывает управляемые Amazon EMR группы безопасности, а также дополнительные группы безопасности.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --service-role myServiceRole \
    --ec2-attributes InstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4] \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Следующий пример создает кластер в частной подсети VPC и использует определённую группу безопасности Amazon EC2 для включения доступа к службе Amazon EMR, который необходим для кластеров в частных подсетях.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --service-role myServiceRole \
    --ec2-attributes InstanceProfile=myRole,ServiceAccessSecurityGroup=sg-service-access,EmrManagedMasterSecurityGroup=sg-master,EmrManagedSlaveSecurityGroup=sg-slave \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Следующий пример указывает параметры конфигурации группы безопасности, используя JSON-файл с именем ec2_attributes.json, хранящийся локально. ПРИМЕЧАНИЕ: JSON-аргументы должны включать опции и значения как свои собственные элементы в списке.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --service-role myServiceRole \
    --ec2-attributes file://ec2_attributes.json  \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Содержание файла ec2_attributes.json:

[
    {
        "SubnetId": "subnet-xxxxx",
        "KeyName": "myKey",
        "InstanceProfile":"myRole",
        "EmrManagedMasterSecurityGroup": "sg-master1",
        "EmrManagedSlaveSecurityGroup": "sg-slave1",
        "ServiceAccessSecurityGroup": "sg-service-access",
        "AdditionalMasterSecurityGroups": ["sg-addMaster1","sg-addMaster2","sg-addMaster3","sg-addMaster4"],
        "AdditionalSlaveSecurityGroups": ["sg-addSlave1","sg-addSlave2","sg-addSlave3","sg-addSlave4"]
    }
]

Пример 12: Включение отладки и указание URI журнала

Следующий create-cluster пример использует параметр --enable-debugging, который позволяет легко просматривать файлы журналов с помощью инструмента отладки в консоли Amazon EMR. Параметр --log-uri необходим с параметром --enable-debugging.

aws emr create-cluster \
    --enable-debugging \
    --log-uri s3://amzn-s3-demo-bucket/myLog \
    --release-label emr-5.9.0 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Пример 13: Добавление тегов при создании кластера

Теги — это пары ключ-значение, которые помогают идентифицировать и управлять кластерами. Следующий create-cluster пример использует параметр --tags для создания трёх тегов для кластера: первый с именем ключа name и значением Shirley Rodriguez, второй с именем ключа age и значением 29, и третий тег с именем ключа department и значением Analytics.

aws emr create-cluster \
    --tags name="Shirley Rodriguez" age=29 department="Analytics" \
    --release-label emr-5.32.0 \
    --instance-type m5.xlarge \
    --instance-count 3 \
    --use-default-roles

Следующий пример выводит список применённых к кластеру тегов.

aws emr describe-cluster \
    --cluster-id j-XXXXXXYY \
    --query Cluster.Tags

Пример 14: Использование конфигурации безопасности, которая включает шифрование и другие функции безопасности

Следующий create-cluster пример использует параметр --security-configuration для указания конфигурации безопасности для кластера EMR. Вы можете использовать конфигурации безопасности с Amazon EMR версии 4.8.0 или более поздней.

aws emr create-cluster \
    --instance-type m4.large \
    --release-label emr-5.9.0 \
    --security-configuration mySecurityConfiguration

Пример 15: Создание кластера с дополнительными томами EBS, настроенными для групп экземпляров

При указании дополнительных томов EBS необходимы следующие аргументы: VolumeType, SizeInGB, если указан параметр EbsBlockDeviceConfigs.

Следующий create-cluster пример создаёт кластер с несколькими томами EBS, подключёнными к экземплярам EC2 в группе экземпляров core.

aws emr create-cluster \
    --release-label emr-5.9.0  \
    --use-default-roles \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=d2.xlarge 'InstanceGroupType=CORE,InstanceCount=2,InstanceType=d2.xlarge,EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,SizeInGB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iops=100},VolumesPerInstance=4}]}' \
    --auto-terminate

Следующий пример создаёт кластер с несколькими томами EBS, подключёнными к экземплярам EC2 в группе экземпляров master.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --use-default-roles \
    --instance-groups 'InstanceGroupType=MASTER, InstanceCount=1, InstanceType=d2.xlarge, EbsConfiguration={EbsOptimized=true, EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=io1, SizeInGB=100, Iops=100}},{VolumeSpecification={VolumeType=standard,SizeInGB=50},VolumesPerInstance=3}]}' InstanceGroupType=CORE,InstanceCount=2,InstanceType=d2.xlarge \
    --auto-terminate

Пример 16: Создание кластера с политикой автоматического масштабирования

Вы можете присоединить политики автоматического масштабирования к группам экземпляров core и task, используя Amazon EMR версии 4.0 и более поздние. Политика автоматического масштабирования динамически добавляет и удаляет экземпляры EC2 в ответ на метрику Amazon CloudWatch. Дополнительную информацию см. в разделе Использование автоматического масштабирования в Amazon EMR <https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html> в руководстве Amazon EMR Management Guide.

При подключении политики автоматического масштабирования также необходимо указать роль по умолчанию для автоматического масштабирования с помощью параметра --auto-scaling-role EMR_AutoScaling_DefaultRole.

Следующий create-cluster пример указывает политику автоматического масштабирования для группы экземпляров CORE, используя аргумент AutoScalingPolicy со встроенной JSON-структурой, которая определяет конфигурацию политики масштабирования. Группы экземпляров со встроенной JSON-структурой должны иметь весь набор аргументов в одинарных кавычках. Использование одинарных кавычек необязательно для групп экземпляров без встроенной JSON-структуры.

aws emr create-cluster
    --release-label emr-5.9.0 \
    --use-default-roles --auto-scaling-role EMR_AutoScaling_DefaultRole \
    --instance-groups InstanceGroupType=MASTER,InstanceType=d2.xlarge,InstanceCount=1 'InstanceGroupType=CORE,InstanceType=d2.xlarge,InstanceCount=2,AutoScalingPolicy={Constraints={MinCapacity=1,MaxCapacity=5},Rules=[{Name=TestRule,Description=TestDescription,Action={Market=ON_DEMAND,SimpleScalingPolicyConfiguration={AdjustmentType=EXACT_CAPACITY,ScalingAdjustment=2}},Trigger={CloudWatchAlarmDefinition={ComparisonOperator=GREATER_THAN,EvaluationPeriods=5,MetricName=TestMetric,Namespace=EMR,Period=3,Statistic=MAXIMUM,Threshold=4.5,Unit=NONE,Dimensions=[{Key=TestKey,Value=TestValue}]}}}]}'

Следующий пример использует JSON-файл instancegroupconfig.json для определения конфигурации всех групп экземпляров в кластере. JSON-файл определяет конфигурацию политики автоматического масштабирования для группы экземпляров core.

aws emr create-cluster \
    --release-label emr-5.9.0 \
    --service-role EMR_DefaultRole \
    --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \
    --instance-groups file://myfolder/instancegroupconfig.json \
    --auto-scaling-role EMR_AutoScaling_DefaultRole

Содержание файла instancegroupconfig.json:

[
    {
        "InstanceCount": 1,
        "Name": "MyMasterIG",
        "InstanceGroupType": "MASTER",
        "InstanceType": "m4.large"
    },
    {
        "InstanceCount": 2,
        "Name": "MyCoreIG",
        "InstanceGroupType": "CORE",
        "InstanceType": "m4.large",
        "AutoScalingPolicy": {
            "Constraints": {
                "MinCapacity": 2,
                "MaxCapacity": 10
            },
            "Rules": [
                {
                    "Name": "Default-scale-out",
                    "Description": "Replicates the default scale-out rule in the console for YARN memory.",
                    "Action": {
                        "SimpleScalingPolicyConfiguration": {
                            "AdjustmentType": "CHANGE_IN_CAPACITY",
                            "ScalingAdjustment": 1,
                            "CoolDown": 300
                        }
                    },
                    "Trigger": {
                        "CloudWatchAlarmDefinition": {
                            "ComparisonOperator": "LESS_THAN",
                            "EvaluationPeriods": 1,
                            "MetricName": "YARNMemoryAvailablePercentage",
                            "Namespace": "AWS/ElasticMapReduce",
                            "Period": 300,
                            "Threshold": 15,
                            "Statistic": "AVERAGE",
                            "Unit": "PERCENT",
                            "Dimensions": [
                                {
                                    "Key": "JobFlowId",
                                    "Value": "${emr.clusterId}"
                                }
                            ]
                        }
                    }
                }
            ]
        }
    }
]

Пример 17: Добавление пользовательских шагов JAR при создании кластера

Следующий create-cluster пример добавляет шаги, указав JAR-файл, хранящийся в Amazon S3. Шаги отправляют работу в кластер. Главная функция, определённая в JAR-файле, выполняется после развёртывания экземпляров EC2, выполнения всех действий загрузки и установки приложений. Шаги задаются с помощью параметра Type=CUSTOM_JAR.

Пользовательские JAR-шаги требуют параметра Jar=, который указывает путь и имя файла JAR. Необязательные параметры — Type, Name, ActionOnFailure, Args и MainClass. Если главный класс не указан, JAR-файл должен указывать Main-Class в файле манифеста.

aws emr create-cluster \
    --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,Args=arg1,arg2,arg3 Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3  \
    --release-label emr-5.3.1 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Пример 18: Добавление потоковых шагов при создании кластера

Следующие create-cluster примеры добавляют потоковый шаг в кластер, который завершается после выполнения всех шагов. Потоковые шаги требуют параметров Type и Args. Необязательные параметры потоковых шагов — Name и ActionOnFailure.

Следующий пример указывает шаг непосредственно.

aws emr create-cluster \
    --steps Type=STREAMING,Name='Streaming Program',ActionOnFailure=CONTINUE,Args=[-files,s3://elasticmapreduce/samples/wordcount/wordSplitter.py,-mapper,wordSplitter.py,-reducer,aggregate,-input,s3://elasticmapreduce/samples/wordcount/input,-output,s3://amzn-s3-demo-bucket/wordcount/output] \
    --release-label emr-5.3.1 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

В следующем примере используется локальный файл конфигурации JSON с именем multiplefiles.json. Файл JSON конфигурации определяет несколько файлов. Для указания нескольких файлов в шаге необходимо использовать файл конфигурации JSON для указания шага. Аргументы JSON должны содержать опции и значения как отдельные элементы списка.

aws emr create-cluster \
    --steps file://./multiplefiles.json \
    --release-label emr-5.9.0  \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Содержание файла multiplefiles.json:

[
    {
        "Name": "JSON Streaming Step",
        "Args": [
            "-files",
            "s3://elasticmapreduce/samples/wordcount/wordSplitter.py",
            "-mapper",
            "wordSplitter.py",
            "-reducer",
            "aggregate",
            "-input",
            "s3://elasticmapreduce/samples/wordcount/input",
            "-output",
            "s3://amzn-s3-demo-bucket/wordcount/output"
        ],
        "ActionOnFailure": "CONTINUE",
        "Type": "STREAMING"
    }
]

Пример 19: Добавление шагов Hive при создании кластера

В следующем примере добавляются шаги Hive при создании кластера. Шаги Hive требуют параметров Type и Args. Дополнительными параметрами шагов Hive являются Name и ActionOnFailure.

aws emr create-cluster \
    --steps Type=HIVE,Name='Hive program',ActionOnFailure=CONTINUE,ActionOnFailure=TERMINATE_CLUSTER,Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/model-build.q,-d,INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://amzn-s3-demo-bucket/hive-ads/output/2014-04-18/11-07-32,-d,LIBS=s3://elasticmapreduce/samples/hive-ads/libs] \
    --applications Name=Hive \
    --release-label emr-5.3.1 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Пример 20: Добавление шагов Pig при создании кластера

В следующем примере добавляются шаги Pig при создании кластера. Требуемые параметры шагов Pig — это Type и Args. Дополнительными параметрами шагов Pig являются Name и ActionOnFailure.

aws emr create-cluster \
    --steps Type=PIG,Name='Pig program',ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://amzn-s3-demo-bucket/pig-apache/output] \
    --applications Name=Pig \
    --release-label emr-5.3.1 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Пример 21: Добавление действий инициализации (bootstrap actions)

Следующий create-cluster пример выполняет два действия инициализации, определённых как скрипты, хранящиеся в Amazon S3.

aws emr create-cluster \
    --bootstrap-actions Path=s3://amzn-s3-demo-bucket/myscript1,Name=BootstrapAction1,Args=[arg1,arg2] Path=s3://amzn-s3-demo-bucket/myscript2,Name=BootstrapAction2,Args=[arg1,arg2] \
    --release-label emr-5.3.1 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \
    --auto-terminate

Пример 22: Включение согласованного представления EMRFS и настройка параметров RetryCount и RetryPeriod

В следующем create-cluster примере задаются счётчик и период повторных попыток для согласованного представления EMRFS. Аргумент Consistent=true обязателен.

aws emr create-cluster \
    --instance-type m4.large \
    --release-label emr-5.9.0 \
    --emrfs Consistent=true,RetryCount=6,RetryPeriod=30

В следующем примере задаётся та же конфигурация EMRFS, что и в предыдущем примере, но с использованием локального файла конфигурации JSON с именем emrfsconfig.json.

aws emr create-cluster \
    --instance-type m4.large \
    --release-label emr-5.9.0 \
    --emrfs file://emrfsconfig.json

Содержание файла emrfsconfig.json:

{
    "Consistent": true,
    "RetryCount": 6,
    "RetryPeriod": 30
}

Пример 23: Создание кластера с включенной Kerberos

Следующие create-cluster примеры создают кластер с включенной безопасностью Kerberos и устанавливают параметры Kerberos для кластера, используя --kerberos-attributes.

Следующая команда задаёт атрибуты Kerberos для кластера непосредственно.

aws emr create-cluster \
    --instance-type m3.xlarge \
    --release-label emr-5.10.0 \
    --service-role EMR_DefaultRole \
    --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \
    --security-configuration mySecurityConfiguration \
    --kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=123,CrossRealmTrustPrincipalPassword=123

Следующая команда задаёт те же атрибуты, но ссылается на локальный файл JSON с именем kerberos_attributes.json. В этом примере файл сохраняется в той же директории, где выполняется команда. Также можно сослаться на файл конфигурации, сохранённый в Amazon S3.

aws emr create-cluster \
    --instance-type m3.xlarge \
    --release-label emr-5.10.0 \
    --service-role EMR_DefaultRole \
    --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \
    --security-configuration mySecurityConfiguration \
    --kerberos-attributes file://kerberos_attributes.json

Содержание файла kerberos_attributes.json:

{
    "Realm": "EC2.INTERNAL",
    "KdcAdminPassword": "123",
    "CrossRealmTrustPrincipalPassword": "123",
}

Следующий create-cluster пример создаёт кластер Amazon EMR, использующий конфигурацию --instance-groups и имеющий политику управляемого масштабирования.

aws emr create-cluster \
    --release-label emr-5.30.0 \
    --service-role EMR_DefaultRole \
    --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
    --managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=2,MaximumCapacityUnits=4,UnitType=Instances}'

Следующий create-cluster пример создаёт кластер Amazon EMR, использующий «–log-encryption-kms-key-id» для определения идентификатора ключа KMS, используемого для шифрования логов.

aws emr create-cluster \
    --release-label emr-5.30.0 \
    --log-uri s3://amzn-s3-demo-bucket/myLog \
    --log-encryption-kms-key-id arn:aws:kms:us-east-1:110302272565:key/dd559181-283e-45d7-99d1-66da348c4d33 \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Следующий create-cluster пример создаёт кластер Amazon EMR, использующий конфигурацию «–placement-group-configs» для размещения узлов мастера в кластере высокой доступности (HA) внутри группы размещения EC2, используя стратегию размещения SPREAD.

aws emr create-cluster \
    --release-label emr-5.30.0 \
    --service-role EMR_DefaultRole \
    --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large \
    --placement-group-configs InstanceRole=MASTER

Следующий create-cluster пример создаёт кластер Amazon EMR, использующий конфигурацию «–auto-termination-policy» для установки порога автоматического завершения работы кластера при бездействии.

aws emr create-cluster \
    --release-label emr-5.34.0 \
    --service-role EMR_DefaultRole \
    --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large \
    --auto-termination-policy IdleTimeout=100

Следующий create-cluster пример создаёт кластер Amazon EMR, использующий «–os-release-label» для определения релиза Amazon Linux для запуска кластера.

aws emr create-cluster \
    --release-label emr-6.6.0 \
    --os-release-label 2.0.20220406.1 \
    --service-role EMR_DefaultRole \
    --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \
    --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large

Пример 24: Указание атрибутов тома EBS: размер, IOPS и пропускная способность для экземпляров кластера, созданных с релизами EMR 6.15.0 и более поздними

Следующий create-cluster пример создаёт кластер Amazon EMR, использующий атрибуты тома корня для настройки спецификаций томов корня для экземпляров EC2.

aws emr create-cluster \
    --name "Cluster with My Custom AMI" \
    --custom-ami-id ami-a518e6df \
    --ebs-root-volume-size 20 \
    --ebs-root-volume-iops 3000 \
    --ebs-root-volume-throughput 125 \
    --release-label emr-6.15.0 \
    --use-default-roles \
    --instance-count 2 \
    --instance-type m4.large

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API