

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对 Amazon EMR 集群资源进行标记和分类
<a name="emr-plan-tags"></a>

可以方便地以不同的方式对 AWS 资源进行分类；例如，按用途、所有者或环境进行分类。您可以通过使用标签将自定义元数据分配给 Amazon EMR，在 Amazon EMR 中实现分类。标签包含您定义的一个键和一个值。对于 Amazon EMR，集群是您可以进行标记的资源级内容。例如，您可以为账户的集群定义一组标签，用于帮助您跟踪每个集群的拥有者，或者标识是生产集群还是测试集群。我们建议您创建一组一致的标签以满足您的组织要求。

向 Amazon EMR 集群添加某个标签时，该标签也会传播到与该集群关联的每个活动 Amazon EC2 实例。同样，从 Amazon EMR 集群中删除某个标签时，该标签会从每个关联的活动 Amazon EC2 实例中删除。

**重要**  
应使用 Amazon EMR 控制台或 CLI（而不是 Amazon EC2 控制台或 CLI）对属于集群的 Amazon EC2 实例进行标签管理，因为在 Amazon EC2 中进行的更改不会同步回 Amazon EMR 标记系统。

您可以通过查找以下系统标签来标识属于 Amazon EMR 集群的 Amazon EC2 实例。在此示例中，*CORE*是实例组角色的值，*j-12345678*也是任务流（集群）标识符值的示例：
+ aws: elasticmapreduce: = instance-group-role *CORE*
+ aws: elasticmapreduce: = job-flow-id *j-12345678*

**注意**  
Amazon EMR 和 Amazon EC2 将您的标签解释为没有语义含义的字符串。

您可以使用 AWS 管理控制台、CLI 和 API 来处理标签。

可以在创建新 Amazon EMR 集群时添加标签，并且可以对正在运行的 Amazon EMR 集群添加、编辑或删除标签。编辑标签是适用于 Amazon EMR 控制台的概念，但是使用 CLI 和 API 时，要编辑标签，请删除旧标签并添加新标签。您可以编辑标签的键和值，并且可以在集群正在运行期间随时从资源中删除标签。但是，您不能对已终止集群或是曾与仍处于活动状态的集群关联的已终止实例添加、编辑或删除标签。此外，您还可以将标签的值设为空的字符串，但是不能将其设为 null。

如果您将 AWS Identity and Access Management (IAM) 与 Amazon EC2 实例一起使用 (IAM) 按标签获得基于资源的权限，则您的 IAM 策略将应用于 Amazon EMR 传播到集群的 Amazon EC2 实例的标签。为了使亚马逊 EMR 标签传播到您的亚马逊 EC2 实例，您的亚马逊 EC2 的 IAM 策略需要允许调用亚马逊 EC2 和 API 的权限。 CreateTags DeleteTags 传播的标签还可能会影响 Amazon EC2 的基于资源的权限。传播到 Amazon EC2 的标签可以读取为 IAM policy 中的条件，正如其它 Amazon EC2 标签一样。向 Amazon EMR 集群添加标签时应考虑 IAM policy，以免用户拥有不正确的集群权限。要避免这些问题，请确保 IAM policy 不包含您还计划用于 Amazon EMR 集群的标签的条件。有关更多信息，请参阅[控制对Amazon EC2 资源的访问](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html)。

# 适用于在 Amazon EMR 中标记资源的限制
<a name="emr-plan-tags-restrictions"></a>

下面是适用于 标签的基本限制：
+ 适用于 Amazon EC2 资源的限制也适用于 Amazon EMR。有关更多信息，请参阅 [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions)。
+ 不要在标签名称和值中使用`aws:`前缀，因为它是保留供 AWS 使用的。此外，您还无法编辑或删除带此前缀的标签名称或值。
+ 您无法对已终止的群集更改或编辑标签。
+ 标签值可以是空字符串，但是不能是 null。此外，标签的键不能是空字符串。
+ 键和值可以包含任何语言的任何字母字符、任何数字字符、空格、不可见的分隔符和以下符号：\$1 . : / = \$1 - @ 

有关使用标记的更多信息 AWS 管理控制台，请参阅 *Amazon EC2 用户指南*中的在[控制台中使用标签](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console)。有关使用亚马逊 EC2 API 或命令行进行标记的更多信息，请参阅 A *mazon EC2 用户指南*中的 [API 和 CLI 概述](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_CLI)。

# 标记 Amazon EMR 资源以进行计费
<a name="emr-plan-tags-billing"></a>

您可以使用标签来整理 AWS 账单，以反映您自己的成本结构。为此，请注册以获取包含标签键值的 AWS 账户账单。随后可以按标签的键值组织账单信息，以查看组合资源的成本。虽然 Amazon EMR 和 Amazon EC2 具有不同的账单语句，但是每个集群上的标签也设置在每个关联实例上，以便您可以使用标签来链接相关 Amazon EMR 和 Amazon EC2 成本。

例如，您可以将特定的应用程序名称用作几个资源的标签，然后组织账单信息，以查看在数个服务中的使用该应用程序的总成本。有关更多信息，请参阅《AWS Billing 用户指南》**中的[成本分配和添加标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation.html)。

# 向 Amazon EMR 集群添加标签
<a name="emr-plan-tags-add-new"></a>

您可以在创建集群时向其添加标签。

------
#### [ Console ]

**创建集群时使用新控制台添加标签**

1. [登录 AWS 管理控制台，然后在 /emr 上打开亚马逊 EMR 控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. 在左侧导航窗格中的 **EMR on EC2** 下，选择 **Clusters**（集群），然后选择 **Create cluster**（创建集群）。

1. 在 **Tags**（标签）下，选择 **Add new tag**（添加新标签）。在 **Key**（密钥）字段中指定标签。或者在 **Value**（值）字段中指定标签。

1. 选择适用于集群的任何其他选项。

1. 要启动集群，选择 **Create cluster**（创建集群）。

------
#### [ AWS CLI ]

**在使用创建集群时添加标签 AWS CLI**

以下示例演示如何使用 AWS CLI向新集群添加标签。要在创建集群时添加标签，请键入带有 `create-cluster` 参数的 `--tags` 子命令。
+ 要在创建集群*marketing*时添加名为*costCenter*密钥值的标签，请键入以下命令并*myKey*替换为您的 EC2 密钥对的名称。

  ```
  aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hadoop Name=Hive Name=Pig --tags "costCenter=marketing" --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3
  ```

  如果不使用 `--instance-groups` 参数指定实例计数，则将启动单个主节点，其余实例将作为核心节点启动。所有节点都使用该命令中指定的实例类型。
**注意**  
如果您之前未创建默认 EMR 服务角色和 EC2 实例配置文件，请先键入 aws `emr create-default-roles` 创建它们，然后再键入 `create-cluster` 子命令。

  有关在中使用 Amazon EMR 命令的更多信息 AWS CLI，请参阅。[https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)

------

您也可以向现有集群添加标签。

------
#### [ Console ]

**使用新控制台向现有集群添加标签**

1. [登录 AWS 管理控制台，然后在 /emr 上打开亚马逊 EMR 控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. 在左侧导航窗格中的 **EMR on EC2** 下，选择 **Clusters**（集群），然后选择要更新的集群。

1. 在集群详细信息页面的 **Tags**（标签）选项卡上，选择 **Manage tags**（管理标签）。在 **Key**（密钥）字段中指定标签。或者在 **Value**（值）字段中指定标签。

1. 选择**保存更改**。**Tags**（标签）选项卡会更新为集群拥有的新标签数。例如，如果您现在有两个标签，则选项卡的标签为 **Tags (2)** [标签（2）]。

------
#### [ AWS CLI ]

**使用向正在运行的集群添加标签 AWS CLI**
+ 输入带有 `--tag` 参数的 `add-tags` 子命令可将标签分配给集群 ID。可以使用控制台或 `list-clusters` 子命令查找集群 ID。`add-tags` 子命令当前仅接收一个资源 ID。

  例如，要向正在运行的集群添加两个标签，一个标签的密钥名为*costCenter*的*marketing*值为*other*，另一个标签的值为*accounting*，请输入以下命令并*j-KT4XXXXXXXX1NM*替换为您的集群 ID。

  ```
  aws emr add-tags --resource-id j-KT4XXXXXXXX1NM --tag "costCenter=marketing" --tag "other=accounting"
  ```

  请注意，使用 AWS CLI 添加标签时，命令没有输出。有关在中使用 Amazon EMR 命令的更多信息 AWS CLI，请参阅。[https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)

------

# 查看 Amazon EMR 集群上的标签
<a name="emr-plan-tags-view"></a>

如果您要查看与集群关联的所有标签，可以使用控制台或 AWS CLI进行查看。

------
#### [ Console ]

**使用新控制台查看集群上的标签**

1. [登录 AWS 管理控制台，然后在 /emr 上打开亚马逊 EMR 控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. 在左侧导航窗格中的 **EMR on EC2** 下，选择 **Clusters**（集群），然后选择要更新的集群。

1. 要查看您的所有标签，请在集群详细信息页面上选择 **Tags**（标签）选项卡。

------
#### [ AWS CLI ]

**要查看集群上的标签，请使用 AWS CLI**

要使用查看集群上的标签 AWS CLI，请键入带`--query`参数的`describe-cluster`子命令。
+ 要查看集群的标签，请键入以下命令并*j-KT4XXXXXXXX1NM*替换为您的集群 ID。

  ```
  1. aws emr describe-cluster --cluster-id j-KT4XXXXXX1NM --query Cluster.Tags
  ```

  输出会显示有关集群的所有标签信息，类似于以下内容：

  ```
  Value: accounting     Value: marketing                
  Key: other            Key: costCenter
  ```

  有关在中使用 Amazon EMR 命令的更多信息 AWS CLI，请参阅。[https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)

------

# 从 Amazon EMR 集群中删除标签
<a name="emr-plan-tags-delete"></a>

如果您不再需要标签，则可以从集群中将其删除。

------
#### [ Console ]

**使用新控制台删除集群上的标签**

1. [登录 AWS 管理控制台，然后在 /emr 上打开亚马逊 EMR 控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. 在左侧导航窗格中的 **EMR on EC2** 下，选择 **Clusters**（集群），然后选择要更新的集群。

1. 在集群详细信息页面的 **Tags**（标签）选项卡上，选择 **Manage tags**（管理标签）。

1. 对于要删除的每个键值对，选择 **Remove**（删除）。

1. 选择**保存更改**。

------
#### [ AWS CLI ]

**使用删除集群上的标签 AWS CLI**

键入带有 `--tag-keys` 参数的 `remove-tags` 子命令。删除标签时，只指定键名称。
+ 要从集群中移除标签，请键入以下命令并*j-KT4XXXXXXXX1NM*替换为您的集群 ID。

  ```
  aws emr remove-tags --resource-id j-KT4XXXXXX1NM --tag-keys "costCenter"
  ```
**注意**  
当前无法使用一个命令删除多个标签。

  有关在中使用 Amazon EMR 命令的更多信息 AWS CLI，请参阅。[https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)

------