本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon 集群的集群缩减选项 EMR
注意
自 Amazon 5.10.0 EMR 版本以来,不再支持缩小行为选项。由于 Amazon 引入了按秒计费EC2,因此 Amazon EMR 集群的默认缩减行为现在将在任务完成时终止。
在 Amazon EMR 版本 5.1.0 到 5.9.1 中,缩减行为有两种选择:在EC2亚马逊账单的实例时限终止,或者在任务完成时终止。从 Amazon EMR 版本 5.10.0 开始,由于亚马逊引入了按秒计费,因此不推荐使用按实例小时终止的设置。EC2我们不建议在提供了此选项的版本中指定在实例小时边界终止。
警告
如果您使用 AWS CLI 来发出 a modify-instance-groups
EC2InstanceIdsToTerminate
,则这些实例将立即终止,而不考虑这些设置,也不管在这些实例上运行的应用程序的状态如何。通过这种方式终止实例将面临数据丢失以及出现不可预测的集群行为的风险。
如果指定在任务完成时终止,Amazon d EMR eny 会在终止 Amazon 实例之前列出并清空节点中的任务。EC2指定任一行为后,如果核心实例组中的 Amazon EC2 实例可能导致HDFS损坏,Amazon 都EMR不会终止该实例。
在任务完成时终止
Amazon EMR 允许您在不影响工作负载的情况下缩小集群规模。在缩小大小操作期间 YARNHDFS,Amazon 会EMR优雅地停用核心节点和任务节点上的、和其他守护程序,而不会丢失数据或中断作业。EMR只有在分配给实例组的工作已完成且实例组处于空闲状态时,Amazon 才会缩小实例组的大小。对于 YARN NodeManager Graceful 停用,您可以手动调整节点等待停用的时间。
使用 YARN-site
配置分类中的属性来设置此时间。使用亚马逊 5.12.0 及更高EMR版本,指定属性。YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs
使用早期的 Amazon EMR 版本,指定YARN.resourcemanager.decommissioning.timeout
属性。
如果在停用超时过后仍有容器或YARN应用程序在运行,则该节点将被强制停用,并将受影响的容器YARN重新调度到其他节点上。默认值为 3600 秒 (1 小时)。您可以将此超时设为任意大的值,以强制自然缩减操作等待更长时间。有关更多信息,请参阅 Apache H adoop 文档中的优雅停用YARN节点
任务节点组
Amazon 会EMR智能地选择没有针对任何步骤或应用程序运行的任务的实例,然后先将这些实例从集群中移除。如果集群中的所有实例都在使用中,Amazon 会EMR等待实例的任务完成后再将其从集群中移除。默认等待时间为 1 小时。该值可通过 YARN.resourcemanager.decommissioning.timeout
设置进行更改。Amazon 会EMR动态使用新设置。您可以将其设置为任意大的数字,以确保 Amazon 在缩小集群规模的同时EMR不会终止任何任务。
核心节点组
在核心节点上,必须停用YARN NodeManager 和HDFS DataNode 守护程序才能减少实例组。对于YARN,优雅减少可确保只有在没有待处理或不完整的容器或应用程序的情况下,标记为停用的节点才会过渡到该DECOMMISSIONED
状态。如果开始淘汰时,节点上没有任何正在运行的容器,淘汰会立即完成。
对于HDFS,优雅的缩减可确保的目标容量足够HDFS大,足以容纳所有现有区块。如果目标容量不够大,则仅停用部分核心实例,以便其余节点可以处理驻留在中的HDFS当前数据。您应确保增加HDFS容量以允许进一步停用。在尝试减少实例组之前,您还应该尽量减少写入 I/O。过多的写入 I/O 可能会延迟调整大小操作的完成。
另一个限制是默认复制因素:/etc/hadoop/conf/hdfs-site
内的 dfs.replication
。在创建集群时,Amazon 会根据集群中的实例数量EMR配置该值:1-3 个实例、1
具有 4-9 个实例2
的集群以及具有 10 个以上实例3
的集群。
警告
-
如果单个节点出现故障,在节点少于四个的群集上设置
dfs.replication
为 1 可能会导致HDFS数据丢失。建议您使用具有至少四个核心节点的集群来处理生产工作负载。 -
Amazon EMR 不允许集群在下方扩展核心节点
dfs.replication
。例如,如果是dfs.replication = 2
,则最小核心节点数为 2。 -
当您使用托管扩缩、自动扩缩或选择手动调整集群大小时,建议您将设置
dfs.replication
为 2 或更高。
优雅减少不会让您将核心节点减少到HDFS复制因子以下。这是HDFS为了允许由于副本不足而关闭文件。要规避此限制,请降低重复因子并重新启动NameNode 守护程序。