Skip to content

Commit 09f73c1

Browse files
author
AWS
committed
Amazon EMR Update: adds fine grained control over Unhealthy Node Replacement to Amazon ElasticMapReduce
1 parent ed9425e commit 09f73c1

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Amazon EMR",
4+
"contributor": "",
5+
"description": "adds fine grained control over Unhealthy Node Replacement to Amazon ElasticMapReduce"
6+
}

services/emr/src/main/resources/codegen-resources/service-2.json

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,19 @@
652652
"errors":[
653653
{"shape":"InternalServerError"}
654654
],
655-
"documentation":"<p>SetTerminationProtection locks a cluster (job flow) so the Amazon EC2 instances in the cluster cannot be terminated by user intervention, an API call, or in the event of a job-flow error. The cluster still terminates upon successful completion of the job flow. Calling <code>SetTerminationProtection</code> on a cluster is similar to calling the Amazon EC2 <code>DisableAPITermination</code> API on all Amazon EC2 instances in a cluster.</p> <p> <code>SetTerminationProtection</code> is used to prevent accidental termination of a cluster and to ensure that in the event of an error, the instances persist so that you can recover any data stored in their ephemeral instance storage.</p> <p> To terminate a cluster that has been locked by setting <code>SetTerminationProtection</code> to <code>true</code>, you must first unlock the job flow by a subsequent call to <code>SetTerminationProtection</code> in which you set the value to <code>false</code>. </p> <p> For more information, see<a href=\"https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html\">Managing Cluster Termination</a> in the <i>Amazon EMR Management Guide</i>. </p>"
655+
"documentation":"<p>SetTerminationProtection locks a cluster (job flow) so the Amazon EC2 instances in the cluster cannot be terminated by user intervention, an API call, or in the event of a job-flow error. The cluster still terminates upon successful completion of the job flow. Calling <code>SetTerminationProtection</code> on a cluster is similar to calling the Amazon EC2 <code>DisableAPITermination</code> API on all Amazon EC2 instances in a cluster.</p> <p> <code>SetTerminationProtection</code> is used to prevent accidental termination of a cluster and to ensure that in the event of an error, the instances persist so that you can recover any data stored in their ephemeral instance storage.</p> <p> To terminate a cluster that has been locked by setting <code>SetTerminationProtection</code> to <code>true</code>, you must first unlock the job flow by a subsequent call to <code>SetTerminationProtection</code> in which you set the value to <code>false</code>. </p> <p> For more information, see <a href=\"https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html\">Managing Cluster Termination</a> in the <i>Amazon EMR Management Guide</i>. </p>"
656+
},
657+
"SetUnhealthyNodeReplacement":{
658+
"name":"SetUnhealthyNodeReplacement",
659+
"http":{
660+
"method":"POST",
661+
"requestUri":"/"
662+
},
663+
"input":{"shape":"SetUnhealthyNodeReplacementInput"},
664+
"errors":[
665+
{"shape":"InternalServerError"}
666+
],
667+
"documentation":"<p>Specify whether to enable unhealthy node replacement, which lets Amazon EMR gracefully replace core nodes on a cluster if any nodes become unhealthy. For example, a node becomes unhealthy if disk usage is above 90%. If unhealthy node replacement is on and <code>TerminationProtected</code> are off, Amazon EMR immediately terminates the unhealthy core nodes. To use unhealthy node replacement and retain unhealthy core nodes, use to turn on termination protection. In such cases, Amazon EMR adds the unhealthy nodes to a denylist, reducing job interruptions and failures.</p> <p>If unhealthy node replacement is on, Amazon EMR notifies YARN and other applications on the cluster to stop scheduling tasks with these nodes, moves the data, and then terminates the nodes.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_UnhealthyNodeReplacement.html\">graceful node replacement</a> in the <i>Amazon EMR Management Guide</i>.</p>"
656668
},
657669
"SetVisibleToAllUsers":{
658670
"name":"SetVisibleToAllUsers",
@@ -1238,6 +1250,10 @@
12381250
"shape":"Boolean",
12391251
"documentation":"<p>Indicates whether Amazon EMR will lock the cluster to prevent the Amazon EC2 instances from being terminated by an API call or user intervention, or in the event of a cluster error.</p>"
12401252
},
1253+
"UnhealthyNodeReplacement":{
1254+
"shape":"BooleanObject",
1255+
"documentation":"<p>Indicates whether Amazon EMR should gracefully replace Amazon EC2 core instances that have degraded within the cluster.</p>"
1256+
},
12411257
"VisibleToAllUsers":{
12421258
"shape":"Boolean",
12431259
"documentation":"<p>Indicates whether the cluster is visible to IAM principals in the Amazon Web Services account associated with the cluster. When <code>true</code>, IAM principals in the Amazon Web Services account can perform Amazon EMR cluster actions on the cluster that their IAM policies allow. When <code>false</code>, only the IAM principal that created the cluster and the Amazon Web Services account root user can perform Amazon EMR actions, regardless of IAM permissions policies attached to other IAM principals.</p> <p>The default value is <code>true</code> if a value is not provided when creating a cluster using the Amazon EMR API <a>RunJobFlow</a> command, the CLI <a href=\"https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html\">create-cluster</a> command, or the Amazon Web Services Management Console.</p>"
@@ -3359,6 +3375,10 @@
33593375
"shape":"Boolean",
33603376
"documentation":"<p>Specifies whether to lock the cluster to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job-flow error.</p>"
33613377
},
3378+
"UnhealthyNodeReplacement":{
3379+
"shape":"BooleanObject",
3380+
"documentation":"<p>Indicates whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster.</p>"
3381+
},
33623382
"HadoopVersion":{
33633383
"shape":"XmlStringMaxLen256",
33643384
"documentation":"<p>Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop version for the cluster. Valid inputs are \"0.18\" (no longer maintained), \"0.20\" (no longer maintained), \"0.20.205\" (no longer maintained), \"1.0.3\", \"2.2.0\", or \"2.4.0\". If you do not set this value, the default of 0.18 is used, unless the <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.</p>"
@@ -3450,6 +3470,10 @@
34503470
"shape":"Boolean",
34513471
"documentation":"<p>Specifies whether the Amazon EC2 instances in the cluster are protected from termination by API calls, user intervention, or in the event of a job-flow error.</p>"
34523472
},
3473+
"UnhealthyNodeReplacement":{
3474+
"shape":"BooleanObject",
3475+
"documentation":"<p>Indicates whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster.</p>"
3476+
},
34533477
"HadoopVersion":{
34543478
"shape":"XmlStringMaxLen256",
34553479
"documentation":"<p>The Hadoop version for the cluster.</p>"
@@ -4895,6 +4919,23 @@
48954919
},
48964920
"documentation":"<p> The input argument to the <a>TerminationProtection</a> operation. </p>"
48974921
},
4922+
"SetUnhealthyNodeReplacementInput":{
4923+
"type":"structure",
4924+
"required":[
4925+
"JobFlowIds",
4926+
"UnhealthyNodeReplacement"
4927+
],
4928+
"members":{
4929+
"JobFlowIds":{
4930+
"shape":"XmlStringList",
4931+
"documentation":"<p>The list of strings that uniquely identify the clusters for which to turn on unhealthy node replacement. You can get these identifiers by running the <a>RunJobFlow</a> or the <a>DescribeJobFlows</a> operations.</p>"
4932+
},
4933+
"UnhealthyNodeReplacement":{
4934+
"shape":"BooleanObject",
4935+
"documentation":"<p>Indicates whether to turn on or turn off graceful unhealthy node replacement.</p>"
4936+
}
4937+
}
4938+
},
48984939
"SetVisibleToAllUsersInput":{
48994940
"type":"structure",
49004941
"required":[

0 commit comments

Comments
 (0)