如何使用资源管理器 REST API 终止 YARN 作业

问题描述 投票:0回答:1

我们有一个启用了 kerberos 的 EMR 集群。我想通过其他应用程序使用 RM API 终止纱线作业。

curl -v -X PUT -H "Content-Type: application/json" -d '{"state": "KILLED"}' "http://x.x.x.x:8088/ws/v1/cluster/apps/application_id/state?user.name=hadoop"

我们遇到以下错误。

{“RemoteException”:{“异常”:“ForbiddenException”,“消息”:“java.lang.Exception: 默认静态用户无法执行此操作 操作。","javaClassName":"org.apache.hadoop.yarn.webapp.ForbiddenException"}}

hadoop hadoop-yarn kerberos
1个回答
0
投票

您不能简单地在 Kerberized 集群上使用

...?user.name=...
。相反,您的curl应该通过SPNEGO向RM进行身份验证,这意味着使用curl选项
--negotiate
--user : 
。您还需要
kinit
作为授权用户,在进行 REST 调用之前可以实际终止应用程序(应用程序所有者或超级用户)。

© www.soinside.com 2019 - 2024. All rights reserved.