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 (строка)
--ami-version (строка)
--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 -> (строка)
InstanceType -> (строка)
InstanceCount -> (целое число)
CustomAmiId -> (строка)
EbsConfiguration -> (структура)
Конфигурация EBS, которая будет связана с группой экземпляров.
EbsOptimized -> (логическое значение)
EbsBlockDeviceConfigs -> (список)
(структура)
VolumeSpecification -> (структура)
Спецификация тома EBS, которая будет создана и подключена к каждому экземпляру в этой группе экземпляров.
VolumeType -> (строка)
SizeInGB -> (целое число)
Iops -> (целое число)
Throughput -> (целое число)
VolumesPerInstance -> (целое число)
AutoScalingPolicy -> (структура)
Политика автоматического масштабирования, которая будет связана с группой экземпляров.
Constraints -> (структура)
Ограничения, которые будут связаны с политикой автоматического масштабирования.
MinCapacity -> (целое число)
MaxCapacity -> (целое число)
Rules -> (список)
Правила, связанные с политикой автоматического масштабирования.
(структура)
Name -> (строка)
Description -> (строка)
Action -> (структура)
Действие, связанное с правилом автоматического масштабирования.
Market -> (строка)
SimpleScalingPolicyConfiguration -> (структура)
Конфигурация простого масштабирования, которая будет связана с действием автоматического масштабирования.
AdjustmentType -> (строка)
ScalingAdjustment -> (целое число)
CoolDown -> (целое число)
Trigger -> (структура)
Триггер, связанный с правилом автоматического масштабирования.
CloudWatchAlarmDefinition -> (структура)
Сигнализация, которая должна быть зарегистрирована в CloudWatch, для запуска операций масштабирования.
ComparisonOperator -> (строка)
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)
TargetSpotCapacity -> (integer)
InstanceTypeConfigs -> (list)
(структура)
InstanceType -> (string)
WeightedCapacity -> (integer)
BidPrice -> (string)
BidPriceAsPercentageOfOnDemandPrice -> (double)
CustomAmiId -> (string)
Priority -> (double)
EbsConfiguration -> (structure)
Конфигурация EBS, связанная с группой экземпляров.
EbsOptimized -> (boolean)
EbsBlockDeviceConfigs -> (list)
(структура)
VolumeSpecification -> (structure)
Спецификация тома EBS, создаваемого и подключаемого к каждому экземпляру в группе экземпляров.
VolumeType -> (string)
SizeInGB -> (integer)
Iops -> (integer)
Throughput -> (integer)
VolumesPerInstance -> (integer)
Configurations -> (list)
Конфигурации приложений группы экземпляров.
(структура)
Classification -> (string)
Properties -> (map)
Свойства конфигурации приложения
key -> (string)
value -> (string)
LaunchSpecifications -> (structure)
OnDemandSpecification -> (structure)
AllocationStrategy -> (string)
CapacityReservationOptions -> (structure)
UsageStrategy -> (string)
CapacityReservationPreference -> (string)
CapacityReservationResourceGroupArn -> (string)
SpotSpecification -> (structure)
TimeoutDurationMinutes -> (integer)
TimeoutAction -> (string)
BlockDurationMinutes -> (integer)
AllocationStrategy -> (string)
ResizeSpecifications -> (structure)
SpotResizeSpecification -> (structure)
TimeoutDurationMinutes -> (integer)
AllocationStrategy -> (string)
OnDemandResizeSpecification -> (structure)
TimeoutDurationMinutes -> (integer)
AllocationStrategy -> (string)
CapacityReservationOptions -> (structure)
UsageStrategy -> (string)
CapacityReservationPreference -> (string)
CapacityReservationResourceGroupArn -> (string)
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)
--log-encryption-kms-key-id (string)
--service-role (string)
--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 -> (строка)
SubnetId -> (строка)
SubnetIds -> (список)
Список SubnetIds.
(строка)
AvailabilityZone -> (строка)
AvailabilityZones -> (список)
Список AvailabilityZones.
(строка)
InstanceProfile -> (строка)
create-default-roles.EmrManagedMasterSecurityGroup -> (строка)
EmrManagedSlaveSecurityGroup -> (строка)
ServiceAccessSecurityGroup -> (строка)
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 (булево)
--unhealthy-node-replacement | --no-unhealthy-node-replacement (булево)
--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 (булево)
--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 -> (строка)
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 -> (булево)
SSE -> (булево)
RetryCount -> (целое число)
RetryPeriod -> (целое число)
Args -> (список)
Список аргументов для дополнительных параметров конфигурации EMRFS.
(строка)
Encryption -> (строка)
ProviderType -> (строка)
KMSKeyId -> (строка)
CustomProviderLocation -> (строка)
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 -> (строка)
Args -> (список)
Список аргументов командной строки, которые нужно передать шагу.
(строка)
MainClass -> (строка)
Properties -> (строка)
Сокращенная запись:
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 (строка)
{"clusterType":"development"} .--restore-from-hbase-backup (структура)
Применяется только при использовании версий Amazon EMR, более ранних, чем 4.0. Запускает новый кластер HBase и заполняет его данными из предыдущей резервной копии кластера HBase. HBase должен быть установлен с использованием параметра --applications.
Dir -> (строка)
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 (строка)
--ebs-root-volume-iops (строка)
--ebs-root-volume-throughput (строка)
--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 -> (строка)
KdcAdminPassword -> (строка)
CrossRealmTrustPrincipalPassword -> (строка)
ADDomainJoinUser -> (строка)
ADDomainJoinPassword -> (строка)
Сокращенная запись:
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 -> (целое число)
MaximumCapacityUnits -> (целое число)
MaximumOnDemandCapacityUnits -> (целое число)
UnitType -> (строка)
MaximumCoreCapacityUnits -> (целое число)
ScalingStrategy -> (строка)
UtilizationPerformanceIndex -> (целое число)
Сокращенная запись:
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 -> (строка)
Сокращенная запись:
InstanceRole=string,PlacementStrategy=string ...
Синтаксис JSON:
[
{
"InstanceRole": "MASTER"|"CORE"|"TASK",
"PlacementStrategy": "SPREAD"|"PARTITION"|"CLUSTER"|"NONE"
}
...
]
--auto-termination-policy (структура)
Политика автоматического завершения для кластера Amazon EMR. Конфигурация указывает порог времени простоя для автоматического завершения кластера.
IdleTimeout -> (длинное целое число)
Сокращенная запись:
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.