运行MapReduce作业时获取应用程序ID

Dyi*_*yin 4 mapreduce hadoop-yarn hadoop2

运行时是否有任何方法来获取应用程序ID(例如,使用命令的wordcount示例)yarn

我希望使用该yarn命令从另一个进程启动作业,并通过YARN REST API监视作业的状态。

(使用Hadoop 2.4.0)

Man*_*lur 5

您可以使用yarn application -list命令获取所有应用程序的列表。

具体来说,如果要获取当前处于所有RUNNING状态的所有应用程序的列表,则可以执行以下命令:

yarn application -list -appStates RUNNING
Run Code Online (Sandbox Code Playgroud)

如果您已经知道应用程序ID,则可以使用以下命令查询应用程序的状态:

yarn application -status <application ID>
Run Code Online (Sandbox Code Playgroud)

例如

yarn application -status application_1448359154956_0001
Run Code Online (Sandbox Code Playgroud)

我收到以下应用程序报告(在这种情况下,应用程序是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.
Run Code Online (Sandbox Code Playgroud)

您可以解析此输出以获取StateProgress的应用程序。


小智 -3

查看http://hadoop.apache.org/docs/r2.4.0/api/org/apache/hadoop/yarn/client/api/YarnClient.html。应该有一些东西可以获取您需要的应​​用程序 ID。