取消步骤
您可以使用AWS Management Console、AWS CLI 或 Amazon EMR API 取消待处理和正在运行的步骤。
使用AWS Management Console取消步骤
-
在 Amazon EMR 控制台
中的 Cluster List (集群列表) 页面上,选择集群的链接。 -
在 Cluster Details (集群详细信息) 页面上,展开 Steps (步骤)部分。
-
对于要取消的每个步骤,请从 Steps (步骤) 列表中选择步骤。然后选择 Cancel step (取消步骤)。
-
在 Cancel step (取消步骤) 对话框中,保留默认选项 Cancel the step and wait for it to exit (取消步骤并等待其退出)。如果要立即结束步骤而不等待任何进程完成,请选择 Cancel the step and force it to exit (取消步骤并强制其退出)。
-
选择 Cancel step (取消步骤)。
使用AWS CLI取消步骤
-
使用
aws emr cancel-steps
命令指定集群和要取消的步骤。以下示例演示了用于取消两个步骤的 AWS CLI 命令。aws emr cancel-steps --cluster-id
j-2QUAXXXXXXXXX
--step-idss-3M8DXXXXXXXXX s-3M8DXXXXXXXXX
--step-cancellation-option SEND_INTERRUPT
使用 Amazon EMR 版本 5.28.0,可以在取消步骤时选择以下两个取消选项之一作为 StepCancellationOption
参数。
-
SEND_INTERRUPT
– 这是默认选项。当收到步骤取消请求时,EMR 会向步骤发送SIGTERM
信号。将SIGTERM
信号处理程序添加到您的步骤逻辑,以捕获此信号并终止子步骤进程,或等待它们完成处理。 -
TERMINATE_PROCESS
– 选择此选项后,EMR 会向步骤及其所有子进程发送SIGKILL
信号,然后这些进程会立即终止。
取消步骤的注意事项
-
取消正在运行的步骤或待处理步骤将从活动步骤计数中删除该步骤。
-
假设没有更改
stepConcurrencyLevel
,取消正在运行的步骤并不允许待处理步骤开始运行。 -
取消正在运行的步骤不会触发步骤
ActionOnFailure
。 -
对于 EMR 5.32.0 及更高版本,
SEND_INTERRUPT StepCancellationOption
会向步骤子进程发送SIGTERM
信号。您应该注意此信号并正常进行清除和关闭。TERMINATE_PROCESS StepCancellationOption
向步骤子进程及其所有后代进程发送SIGKILL
信号;但是,异步进程不受影响。