gpt4 book ai didi

linux - 将 xargs 值作为参数传递给后续 YARN 命令

转载 作者:可可西里 更新时间:2023-11-01 15:26:21 24 4
gpt4 key购买 nike

需要帮助将参数从 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

你能帮我找到正确的命令来实现同样的目标吗?

类似的设置在下面的命令中对我有用,但在上面的命令中没有,因为上面的命令有 n

一个)

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}’ 中的应用程序;执行 yarn application -kill "$app";完成

感谢您对此的帮助。

最佳答案

xargs 读取 STDIN 流数据并将每一行转换为以空格分隔的命令参数。xargs 在您的情况下可能不起作用的一些原因:

  1. 使用 xargs,此命令的参数 “yarn application-movetoqueue 'application_ID' -queue myqueue" 在其末尾传递。
  2. 并非所有应用程序/工具都接受多个空格分隔论点。
  3. 您的命令的结果是一个包含特殊字符的字符串,应该用引号引起来。

所以,我建议如下:

for appid in `yarn application -list -appStates RUNNING | grep user|awk '{print $1}'` ; do 
yarn application -movetoqueue "${appid}" -queue myqueue;
done

关于linux - 将 xargs 值作为参数传递给后续 YARN 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46305560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com