需要从xargs传递参数到后续hadoop命令的帮助。
我从这个命令得到如下结果。
yarn application -list -appStates RUNNING | grep <user> | awk '{print $1}'
以上命令的结果如下。
17/09/19 12:24:36 INFO client.ConfiguredRMFailoverProxyProvider:
Failing over to rm21 Total Application-Id
application_1505017974932_14847
application_1505017974932_14815
application_1505017974932_14810
application_1505017974932_14784
application_1505017974932_14796
application_1505017974932_14778
我需要能够通过上面的输出一个接一个下面的命令。
yarn application -movetoqueue <application_ID of above output> -queue myqueue
你能帮我找到正确的命令来达到同样的效果吗?
类似的设置在下面的命令中对我起作用,但在上面的命令中不起作用
(一)
yarn application -list -appStates RUNNING | grep <user> | awk '{print $1}' | xargs -n 1 yarn application -kill
这是另一种方式。。
b、 )中的应用程序 yarn application -list -appStates RUNNING | grep <user> | awk '{print $1}’
; do yarn application-杀死“$app”;完成
感谢你在这方面的帮助。
1条答案
按热度按时间m2xkgtsf1#
xargs
阅读STDIN
流数据,并将每行转换为命令的空格分隔参数。xargs在您的案例中可能不起作用的一些原因:使用xargs,此命令的参数“yarn application-movetoqueue'application\u id'-queue myqueue”在其末尾传递。
并非所有的应用程序/工具都接受多个空格分隔的参数。
命令的结果是一个包含特殊字符的字符串,应该用引号引起来。
因此,我建议如下: