运行时是否有任何方法来获取应用程序ID(例如,使用命令的wordcount示例)yarn
?
我希望使用该yarn
命令从另一个进程启动作业,并通过YARN REST API监视作业的状态。
(使用Hadoop 2.4.0)
您可以使用yarn application -list
命令获取所有应用程序的列表。
具体来说,如果要获取当前处于所有RUNNING
状态的所有应用程序的列表,则可以执行以下命令:
yarn application -list -appStates RUNNING
如果您已经知道应用程序ID,则可以使用以下命令查询应用程序的状态:
yarn application -status
例如
yarn application -status application_1448359154956_0001
我收到以下应用程序报告(在这种情况下,应用程序是KILLED
由用户执行的):
Application Report : Application-Id : application_1448359154956_0001 Application-Name : distcp Application-Type : MAPREDUCE User : mballur Queue : default Start-Time : 1448359237581 Finish-Time : 1448359419592 Progress : 100% State : KILLED Final-State : KILLED Tracking-URL : http://mballur.fareast.corp.microsoft.com:8088/cluster/ap p/application_1448359154956_0001 RPC Port : -1 AM Host : N/A Aggregate Resource Allocation : 1652876 MB-seconds, 1337 vcore-seconds Log Aggregation Status : NOT_START Diagnostics : Application killed by user.
您可以解析此输出以获取State
和Progress
的应用程序。