我使用的是Hadoop 2.5.0(CDH 5.3.5)。
在this document之后,我尝试通过以下REST api终止正在运行的YARN应用程序(其应用程序ID为 application_1438849897472_0011 ):
curl -i -XPUT http://{rm-rest-host}:{rm-rest-port}/ws/v1/cluster/apps/application_1438849897472_0011/killed
但我的状态代码为404,并且抱怨
的异常消息org.apache.hadoop.yarn.webapp.WebAppException:/ v1 / cluster / apps / application_1438849897472_0011 / killed:找不到v1的控制器
出了什么问题?
答案 0 :(得分:1)
正确的URI以/state
结尾,而不是/killed
,而您缺少请求正文。
试试这个:
curl -v -X PUT -H "Content-Type: application/json" -d '{"state": "KILLED"}' 'http://{rm-rest-host}:{rm-rest-port}/ws/v1/cluster/apps/{app-id}/state'
答案 1 :(得分:-1)
尝试以下方法:
curl -v -X PUT -d '{"state": "KILLED"}''http://{rm-rest-host}:{rm-rest-port}/ws/v1/cluster/apps/application_1438849897472_0011/state'
使用应用程序状态API,您可以通过使用状态设置为" KILLED"的PUT请求修改正在运行的应用程序的状态来查询已提交应用程序的状态以及终止正在运行的应用程序。要执行PUT操作,必须为RM Web服务设置身份验证。此外,您必须被授权杀死该应用程序。目前,您只能将状态更改为" KILLED&#34 ;;尝试将状态更改为任何其他状态会导致400错误响应。下面是未授权和错误请求错误的示例。当您执行成功的PUT时,iniital响应可能是202.您可以通过重复PUT请求确认应用程序被杀死,直到您获得200,使用GET方法查询状态或查询应用程序信息并检查州。 [...]