如何取消 Amazon EMR 步驟?

1 分的閱讀內容
0

我正在嘗試取消 Amazon EMR 步驟。當我執行 cancel-steps 命令時,出現以下錯誤: 「無法取消步驟。它正在執行。」

簡短描述

此錯誤會影響 Amazon EMR 5.27.x 版本及更舊版本。在這些發行版本中,cancel-steps 命令只會取消待處理的步驟。若要取消執行中的步驟,請終止應用程式 ID (YARN 步驟) 或程序 ID (針對非 YARN 步驟)。

在 Amazon EMR 5.28.0 版本及更新版本中,您可以使用 cancel-steps 取消待處理和執行中的步驟。如需詳細資訊,請參閱使用 AWS CLI 和主控台執行步驟

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確定您使用的是最新版本的 AWS CLI

解決方法

使用下列其中一種方法取消 Amazon EMR 5.27.x 版本及更舊版本中的執行步驟。

取消 YARN 應用程式

1.    使用 SSH 連線至主節點

2.    若要尋找步驟的應用程式 ID,請執行以下命令以列出所有執行中的應用程式。

yarn application -list

3.    執行以下命令即可終止應用程式。將 application_id 換成您的應用程式 ID,例如「application_1505786029486_002」。

**注意:**此命令會終止佇列中所有待處理的步驟。

yarn application -kill application_id

取消非 YARN 應用程式

1.    使用 SSH 連線至主節點

2.    執行以下命令以取得程序 ID (pid)。在以下範例中,請將 step_id 換成您的步驟識別碼,例如 s-Y9XXXXXXAPMD

ps -ef |grep -i step_id

在下列範例輸出中,程序 ID 為 2366

hadoop    2366  4664  0 16:20 ?        00:00:01 /etc/alternatives/jre/bin/java -Xmx1000m -server -XX:OnOutOfMemoryError=kill -9 %p -Dhadoop.log.dir=/mnt/var/log/hado
op/steps/s-2RNURIK9Z2JUH -Dhadoop.log.file=syslog -Dhadoop.home.dir=/usr/lib/hadoop -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,DRFA -Djava.library.pat
h=:/usr/lib/hadoop-lzo/lib/native:/usr/lib/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Djava.io.tmpdir=/mnt/var/lib/hadoop/st
eps/s-2RNURIK9Z2JUH/tmp -Dhadoop.security.logger=INFO,NullAppender -Dsun.net.inetaddr.ttl=30 org.apache.hadoop.util.RunJar /var/lib/aws/emr/step-runner/hadoop-
jars/command-runner.jar bash -c envsubst < /home/hadoop/truffle_suffle.json.template

3.    執行以下命令即可終止程序。將 2366 換成您的步驟的程序識別碼。

**注意:**此命令會終止佇列中所有待處理的步驟。

kill -9 2366

步驟的狀態會從執行中變更為失敗


相關資訊

取消步驟

AWS 官方
AWS 官方已更新 2 年前