MapReduceアプリケーションマスターREST APIを使用すると、ユーザーは実行中のMapReduceアプリケーションマスターのステータスを取得できます。現在、これは実行中のMapReduceジョブと同等です。情報には、アプリマスターが実行しているジョブと、タスク、カウンター、構成、試行などのすべてのジョブの詳細が含まれます。アプリケーションマスターにはプロキシ経由でアクセスする必要があります。このプロキシは、リソースマネージャーまたは別のホストで実行するように構成できます。プロキシURLは通常、http://proxy-http-address:port/proxy/appidのようになります。
MapReduceアプリケーションマスター情報リソースは、そのMapReduceアプリケーションマスターに関する全体的な情報を提供します。これには、アプリケーションID、開始時間、ユーザー、名前などが含まれます。
以下の両方のURIは、appid値で識別されるアプリケーションIDから、MapReduceアプリケーションマスター情報を提供します。
None
MapReduceアプリケーションマスター情報をリクエストすると、情報がinfoオブジェクトとして返されます。
| 項目 | データ型 | 説明 |
|---|---|---|
| appId | 文字列 | アプリケーションID |
| startedOn | long | アプリケーションが開始された時間(エポックからのミリ秒単位) |
| name | 文字列 | アプリケーションの名前 |
| user | 文字列 | アプリケーションを開始したユーザーのユーザー名 |
| elapsedTime | long | アプリケーションが開始されてからの時間(ミリ秒単位) |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0003/ws/v1/mapreduce/info
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"info" : {
"appId" : "application_1326232085508_0003",
"startedOn" : 1326238244047,
"user" : "user1",
"name" : "Sleep job",
"elapsedTime" : 32374
}
}
XMLレスポンス
HTTPリクエスト
Accept: application/xml GET http://proxy-http-address:port/proxy/application_1326232085508_0003/ws/v1/mapreduce/info
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 223 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <info> <appId>application_1326232085508_0003</appId> <name>Sleep job</name> <user>user1</user> <startedOn>1326238244047</startedOn> <elapsedTime>32407</elapsedTime> </info>
ジョブリソースは、このアプリケーションマスターで実行されているジョブのリストを提供します。ジョブオブジェクトの構文については、ジョブAPIも参照してください。
None
ジョブのリストをリクエストすると、情報がジョブオブジェクトのコレクションとして返されます。ジョブオブジェクトの構文については、ジョブAPIも参照してください。
| 項目 | データ型 | 説明 |
|---|---|---|
| job | ジョブオブジェクトの配列(JSON)/ゼロ個以上のジョブオブジェクト(XML) | ジョブオブジェクトのコレクション |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"jobs" : {
"job" : [
{
"runningReduceAttempts" : 1,
"reduceProgress" : 100,
"failedReduceAttempts" : 0,
"newMapAttempts" : 0,
"mapsRunning" : 0,
"state" : "RUNNING",
"successfulReduceAttempts" : 0,
"reducesRunning" : 1,
"acls" : [
{
"value" : " ",
"name" : "mapreduce.job.acl-modify-job"
},
{
"value" : " ",
"name" : "mapreduce.job.acl-view-job"
}
],
"reducesPending" : 0,
"user" : "user1",
"reducesTotal" : 1,
"mapsCompleted" : 1,
"startTime" : 1326238769379,
"id" : "job_1326232085508_4_4",
"successfulMapAttempts" : 1,
"runningMapAttempts" : 0,
"newReduceAttempts" : 0,
"name" : "Sleep job",
"mapsPending" : 0,
"elapsedTime" : 59377,
"reducesCompleted" : 0,
"mapProgress" : 100,
"diagnostics" : "",
"failedMapAttempts" : 0,
"killedReduceAttempts" : 0,
"mapsTotal" : 1,
"uberized" : false,
"killedMapAttempts" : 0,
"finishTime" : 0
}
]
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 1214 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jobs>
<job>
<startTime>1326238769379</startTime>
<finishTime>0</finishTime>
<elapsedTime>59416</elapsedTime>
<id>job_1326232085508_4_4</id>
<name>Sleep job</name>
<user>user1</user>
<state>RUNNING</state>
<mapsTotal>1</mapsTotal>
<mapsCompleted>1</mapsCompleted>
<reducesTotal>1</reducesTotal>
<reducesCompleted>0</reducesCompleted>
<mapProgress>100.0</mapProgress>
<reduceProgress>100.0</reduceProgress>
<mapsPending>0</mapsPending>
<mapsRunning>0</mapsRunning>
<reducesPending>0</reducesPending>
<reducesRunning>1</reducesRunning>
<uberized>false</uberized>
<diagnostics/>
<newReduceAttempts>0</newReduceAttempts>
<runningReduceAttempts>1</runningReduceAttempts>
<failedReduceAttempts>0</failedReduceAttempts>
<killedReduceAttempts>0</killedReduceAttempts>
<successfulReduceAttempts>0</successfulReduceAttempts>
<newMapAttempts>0</newMapAttempts>
<runningMapAttempts>0</runningMapAttempts>
<failedMapAttempts>0</failedMapAttempts>
<killedMapAttempts>0</killedMapAttempts>
<successfulMapAttempts>1</successfulMapAttempts>
<acls>
<name>mapreduce.job.acl-modify-job</name>
<value> </value>
</acls>
<acls>
<name>mapreduce.job.acl-view-job</name>
<value> </value>
</acls>
</job>
</jobs>
ジョブリソースには、このアプリケーションマスターによって開始された特定のジョブに関する情報が含まれています。一部のフィールドは、ユーザーに権限がある場合にのみアクセスできます。これはacl設定によって異なります。
jobid値で識別されるジョブのジョブオブジェクトを取得するには、次のURIを使用します。
None
| 項目 | データ型 | 説明 |
|---|---|---|
| id | 文字列 | ジョブID |
| name | 文字列 | ジョブ名 |
| user | 文字列 | ユーザー名 |
| state | 文字列 | ジョブの状態 - 有効な値は次のとおりです:NEW、INITED、RUNNING、SUCCEEDED、FAILED、KILL_WAIT、KILLED、ERROR |
| startTime | long | ジョブが開始された時間(エポックからのミリ秒単位) |
| finishTime | long | ジョブが終了した時間(エポックからのミリ秒単位) |
| elapsedTime | long | ジョブが開始されてからの経過時間(ミリ秒単位) |
| mapsTotal | int | マップの合計数 |
| mapsCompleted | int | 完了したマップの数 |
| reducesTotal | int | リデュースの合計数 |
| reducesCompleted | int | 完了したリデュースの数 |
| diagnostics | 文字列 | 診断メッセージ |
| uberized | boolean | ジョブがuberジョブであったかどうかを示します。つまり、アプリケーションマスターで完全に実行されたかどうかを示します。 |
| mapsPending | int | まだ実行されていないマップの数 |
| mapsRunning | int | 実行中のマップの数 |
| reducesPending | int | まだ実行されていないリデュースの数 |
| reducesRunning | int | 実行中のリデュースの数 |
| newReduceAttempts | int | 新しいリデュース試行の数 |
| runningReduceAttempts | int | 実行中のリデュース試行の数 |
| failedReduceAttempts | int | 失敗したリデュース試行の数 |
| killedReduceAttempts | int | 強制終了されたリデュース試行の数 |
| successfulReduceAttempts | int | 成功したリデュース試行の数 |
| newMapAttempts | int | 新しいマップ試行の数 |
| runningMapAttempts | int | 実行中のマップ試行の数 |
| failedMapAttempts | int | 失敗したマップ試行の数 |
| killedMapAttempts | int | 強制終了されたマップ試行の数 |
| successfulMapAttempts | int | 成功したマップ試行の数 |
| acls | aclの配列(json)/ゼロ個以上のaclオブジェクト(xml) | aclオブジェクトのコレクション |
| 項目 | データ型 | 説明 |
|---|---|---|
| value | 文字列 | acl値 |
| name | 文字列 | acl名 |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Server: Jetty(6.1.26) Content-Length: 720
レスポンスボディ
{
"job" : {
"runningReduceAttempts" : 1,
"reduceProgress" : 100,
"failedReduceAttempts" : 0,
"newMapAttempts" : 0,
"mapsRunning" : 0,
"state" : "RUNNING",
"successfulReduceAttempts" : 0,
"reducesRunning" : 1,
"acls" : [
{
"value" : " ",
"name" : "mapreduce.job.acl-modify-job"
},
{
"value" : " ",
"name" : "mapreduce.job.acl-view-job"
}
],
"reducesPending" : 0,
"user" : "user1",
"reducesTotal" : 1,
"mapsCompleted" : 1,
"startTime" : 1326238769379,
"id" : "job_1326232085508_4_4",
"successfulMapAttempts" : 1,
"runningMapAttempts" : 0,
"newReduceAttempts" : 0,
"name" : "Sleep job",
"mapsPending" : 0,
"elapsedTime" : 59437,
"reducesCompleted" : 0,
"mapProgress" : 100,
"diagnostics" : "",
"failedMapAttempts" : 0,
"killedReduceAttempts" : 0,
"mapsTotal" : 1,
"uberized" : false,
"killedMapAttempts" : 0,
"finishTime" : 0
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4 Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 1201 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<job>
<startTime>1326238769379</startTime>
<finishTime>0</finishTime>
<elapsedTime>59474</elapsedTime>
<id>job_1326232085508_4_4</id>
<name>Sleep job</name>
<user>user1</user>
<state>RUNNING</state>
<mapsTotal>1</mapsTotal>
<mapsCompleted>1</mapsCompleted>
<reducesTotal>1</reducesTotal>
<reducesCompleted>0</reducesCompleted>
<mapProgress>100.0</mapProgress>
<reduceProgress>100.0</reduceProgress>
<mapsPending>0</mapsPending>
<mapsRunning>0</mapsRunning>
<reducesPending>0</reducesPending>
<reducesRunning>1</reducesRunning>
<uberized>false</uberized>
<diagnostics/>
<newReduceAttempts>0</newReduceAttempts>
<runningReduceAttempts>1</runningReduceAttempts>
<failedReduceAttempts>0</failedReduceAttempts>
<killedReduceAttempts>0</killedReduceAttempts>
<successfulReduceAttempts>0</successfulReduceAttempts>
<newMapAttempts>0</newMapAttempts>
<runningMapAttempts>0</runningMapAttempts>
<failedMapAttempts>0</failedMapAttempts>
<killedMapAttempts>0</killedMapAttempts>
<successfulMapAttempts>1</successfulMapAttempts>
<acls>
<name>mapreduce.job.acl-modify-job</name>
<value> </value>
</acls>
<acls>
<name>mapreduce.job.acl-view-job</name> <value> </value>
</acls>
</job>
ジョブ試行APIを使用すると、ジョブ試行を表すリソースのコレクションを取得できます。このリソースでGET操作を実行すると、ジョブ試行オブジェクトのコレクションを取得できます。
None
ジョブ試行のリストをリクエストすると、情報がジョブ試行オブジェクトの配列として返されます。
| 項目 | データ型 | 説明 |
|---|---|---|
| jobAttempt | ジョブ試行オブジェクトの配列(JSON)/ゼロ個以上のジョブ試行オブジェクト(XML) | ジョブ試行オブジェクトのコレクション |
| 項目 | データ型 | 説明 |
|---|---|---|
| id | 文字列 | ジョブ試行ID |
| nodeId | 文字列 | 試行が実行されたノードのノードID |
| nodeHttpAddress | 文字列 | 試行が実行されたノードのノードHTTPアドレス |
| logsLink | 文字列 | ジョブ試行ログへの HTTP リンク |
| containerId | 文字列 | ジョブ試行のコンテナの ID |
| startTime | long | 試行の開始時刻 (エポックからのミリ秒単位) |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/jobattempts
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"jobAttempts" : {
"jobAttempt" : [
{
"nodeId" : "host.domain.com:8041",
"nodeHttpAddress" : "host.domain.com:8042",
"startTime" : 1326238773493,
"id" : 1,
"logsLink" : "http://host.domain.com:8042/node/containerlogs/container_1326232085508_0004_01_000001",
"containerId" : "container_1326232085508_0004_01_000001"
}
]
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/jobattempts Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 498 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jobAttempts>
<jobAttempt>
<nodeHttpAddress>host.domain.com:8042</nodeHttpAddress>
<nodeId>host.domain.com:8041</nodeId>
<id>1</id>
<startTime>1326238773493</startTime>
<containerId>container_1326232085508_0004_01_000001</containerId>
<logsLink>http://host.domain.com:8042/node/containerlogs/container_1326232085508_0004_01_000001</logsLink>
</jobAttempt>
</jobAttempts>
ジョブカウンタ API を使用すると、そのジョブのすべてのカウンタを表すリソースのコレクションを取得できます。
None
| 項目 | データ型 | 説明 |
|---|---|---|
| id | 文字列 | ジョブID |
| counterGroup | counterGroup オブジェクトの配列 (JSON) / ゼロ個以上の counterGroup オブジェクト (XML) | counterGroup オブジェクトのコレクション |
| 項目 | データ型 | 説明 |
|---|---|---|
| counterGroupName | 文字列 | カウンタグループの名前 |
| counter | counter オブジェクトの配列 (JSON) / ゼロ個以上の counter オブジェクト (XML) | counter オブジェクトのコレクション |
| 項目 | データ型 | 説明 |
|---|---|---|
| name | 文字列 | カウンタの名前 |
| reduceCounterValue | long | reduce タスクのカウンタ値 |
| mapCounterValue | long | map タスクのカウンタ値 |
| totalCounterValue | long | すべてのタスクのカウンタ値 |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/counters
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"jobCounters" : {
"id" : "job_1326232085508_4_4",
"counterGroup" : [
{
"counterGroupName" : "Shuffle Errors",
"counter" : [
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "BAD_ID"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "CONNECTION"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "IO_ERROR"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "WRONG_LENGTH"
}, {
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "WRONG_MAP"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "WRONG_REDUCE"
}
]
},
{
"counterGroupName" : "org.apache.hadoop.mapreduce.FileSystemCounter",
"counter" : [
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 2483,
"name" : "FILE_BYTES_READ"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 108763,
"name" : "FILE_BYTES_WRITTEN"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "FILE_READ_OPS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "FILE_LARGE_READ_OPS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "FILE_WRITE_OPS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 48,
"name" : "HDFS_BYTES_READ"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "HDFS_BYTES_WRITTEN"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 1,
"name" : "HDFS_READ_OPS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "HDFS_LARGE_READ_OPS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "HDFS_WRITE_OPS"
}
]
},
{
"counterGroupName" : "org.apache.hadoop.mapreduce.TaskCounter",
"counter" : [
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 1,
"name" : "MAP_INPUT_RECORDS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 1200,
"name" : "MAP_OUTPUT_RECORDS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 4800,
"name" : "MAP_OUTPUT_BYTES"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 2235,
"name" : "MAP_OUTPUT_MATERIALIZED_BYTES"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 48,
"name" : "SPLIT_RAW_BYTES"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "COMBINE_INPUT_RECORDS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "COMBINE_OUTPUT_RECORDS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 460,
"name" : "REDUCE_INPUT_GROUPS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 2235,
"name" : "REDUCE_SHUFFLE_BYTES"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 460,
"name" : "REDUCE_INPUT_RECORDS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "REDUCE_OUTPUT_RECORDS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 1200,
"name" : "SPILLED_RECORDS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 1,
"name" : "SHUFFLED_MAPS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "FAILED_SHUFFLE"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 1,
"name" : "MERGED_MAP_OUTPUTS"
}, {
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 58,
"name" : "GC_TIME_MILLIS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 1580,
"name" : "CPU_MILLISECONDS"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 462643200,
"name" : "PHYSICAL_MEMORY_BYTES"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 2149728256,
"name" : "VIRTUAL_MEMORY_BYTES"
},
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 357957632,
"name" : "COMMITTED_HEAP_BYTES"
}
]
},
{
"counterGroupName" : "org.apache.hadoop.mapreduce.lib.input.FileInputFormatCounter",
"counter" : [
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "BYTES_READ"
}
]
},
{
"counterGroupName" : "org.apache.hadoop.mapreduce.lib.output.FileOutputFormatCounter",
"counter" : [
{
"reduceCounterValue" : 0,
"mapCounterValue" : 0,
"totalCounterValue" : 0,
"name" : "BYTES_WRITTEN"
}
]
}
]
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/counters Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 7027 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jobCounters>
<id>job_1326232085508_4_4</id>
<counterGroup>
<counterGroupName>Shuffle Errors</counterGroupName>
<counter>
<name>BAD_ID</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>CONNECTION</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>IO_ERROR</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>WRONG_LENGTH</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>WRONG_MAP</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>WRONG_REDUCE</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
</counterGroup>
<counterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.FileSystemCounter</counterGroupName>
<counter>
<name>FILE_BYTES_READ</name>
<totalCounterValue>2483</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>FILE_BYTES_WRITTEN</name>
<totalCounterValue>108763</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>FILE_READ_OPS</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>FILE_LARGE_READ_OPS</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>FILE_WRITE_OPS</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>HDFS_BYTES_READ</name>
<totalCounterValue>48</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>HDFS_BYTES_WRITTEN</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>HDFS_READ_OPS</name>
<totalCounterValue>1</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>HDFS_LARGE_READ_OPS</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>HDFS_WRITE_OPS</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
</counterGroup>
<counterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.TaskCounter</counterGroupName>
<counter>
<name>MAP_INPUT_RECORDS</name>
<totalCounterValue>1</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>MAP_OUTPUT_RECORDS</name>
<totalCounterValue>1200</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>MAP_OUTPUT_BYTES</name>
<totalCounterValue>4800</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>MAP_OUTPUT_MATERIALIZED_BYTES</name>
<totalCounterValue>2235</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>SPLIT_RAW_BYTES</name>
<totalCounterValue>48</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>COMBINE_INPUT_RECORDS</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>COMBINE_OUTPUT_RECORDS</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>REDUCE_INPUT_GROUPS</name>
<totalCounterValue>460</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>REDUCE_SHUFFLE_BYTES</name>
<totalCounterValue>2235</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>REDUCE_INPUT_RECORDS</name>
<totalCounterValue>460</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>REDUCE_OUTPUT_RECORDS</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>SPILLED_RECORDS</name>
<totalCounterValue>1200</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>SHUFFLED_MAPS</name>
<totalCounterValue>1</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>FAILED_SHUFFLE</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>MERGED_MAP_OUTPUTS</name>
<totalCounterValue>1</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>GC_TIME_MILLIS</name>
<totalCounterValue>58</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>CPU_MILLISECONDS</name>
<totalCounterValue>1580</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>PHYSICAL_MEMORY_BYTES</name>
<totalCounterValue>462643200</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>VIRTUAL_MEMORY_BYTES</name>
<totalCounterValue>2149728256</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
<counter>
<name>COMMITTED_HEAP_BYTES</name>
<totalCounterValue>357957632</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
</counterGroup>
<counterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.lib.input.FileInputFormatCounter</counterGroupName>
<counter>
<name>BYTES_READ</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter> </counterGroup> <counterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.lib.output.FileOutputFormatCounter</counterGroupName>
<counter> <name>BYTES_WRITTEN</name>
<totalCounterValue>0</totalCounterValue>
<mapCounterValue>0</mapCounterValue>
<reduceCounterValue>0</reduceCounterValue>
</counter>
</counterGroup>
</jobCounters>
ジョブ構成リソースには、このジョブのジョブ構成に関する情報が含まれています。
jobid 値で識別されるジョブからジョブ構成情報を取得するには、次の URI を使用します。
None
| 項目 | データ型 | 説明 |
|---|---|---|
| path | 文字列 | ジョブ構成ファイルへのパス |
| property | 構成プロパティの配列 (JSON) / ゼロ個以上の property オブジェクト (XML) | property オブジェクトのコレクション |
| 項目 | データ型 | 説明 |
|---|---|---|
| name | 文字列 | 構成プロパティの名前 |
| value | 文字列 | 構成プロパティの値 |
| source | 文字列 | この構成オブジェクトの取得元。 これが複数ある場合は、リストの最後に最新のソースを示して履歴を表示します。 |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/conf
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
これは出力の小さなスニペットであり、出力は非常に大きいです。 実際の出力には、ジョブ構成ファイル内のすべてのプロパティが含まれています。
{
"conf" : {
"path" : "hdfs://host.domain.com:9000/user/user1/.staging/job_1326232085508_0004/job.xml",
"property" : [
{
"value" : "/home/hadoop/hdfs/data",
"name" : "dfs.datanode.data.dir",
"source" : ["hdfs-site.xml", "job.xml"]
},
{
"value" : "org.apache.hadoop.yarn.server.webproxy.amfilter.AmFilterInitializer",
"name" : "hadoop.http.filter.initializers"
"source" : ["programmatically", "job.xml"]
},
{
"value" : "/home/hadoop/tmp",
"name" : "mapreduce.cluster.temp.dir"
"source" : ["mapred-site.xml"]
},
...
]
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/conf Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 552 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<conf>
<path>hdfs://host.domain.com:9000/user/user1/.staging/job_1326232085508_0004/job.xml</path>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hdfs/data</value>
<source>hdfs-site.xml</source>
<source>job.xml</source>
</property>
<property>
<name>hadoop.http.filter.initializers</name>
<value>org.apache.hadoop.yarn.server.webproxy.amfilter.AmFilterInitializer</value>
<source>programmatically</source>
<source>job.xml</source>
</property>
<property>
<name>mapreduce.cluster.temp.dir</name>
<value>/home/hadoop/tmp</value>
<source>mapred-site.xml</source>
</property>
...
</conf>
タスク API を使用すると、ジョブのすべてのタスクを表すリソースのコレクションを取得できます。 このリソースに対して GET 操作を実行すると、タスクオブジェクトのコレクションを取得します。
タスクのリストをリクエストすると、情報はタスクオブジェクトの配列として返されます。 タスクオブジェクトの構文については、タスク APIも参照してください。
| 項目 | データ型 | 説明 |
|---|---|---|
| task | task オブジェクトの配列 (JSON) / ゼロ個以上の task オブジェクト (XML) | task オブジェクトのコレクション |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"tasks" : {
"task" : [
{
"progress" : 100,
"elapsedTime" : 2768,
"state" : "SUCCEEDED",
"startTime" : 1326238773493,
"id" : "task_1326232085508_4_4_m_0",
"type" : "MAP",
"successfulAttempt" : "attempt_1326232085508_4_4_m_0_0",
"finishTime" : 1326238776261
},
{
"progress" : 100,
"elapsedTime" : 0,
"state" : "RUNNING",
"startTime" : 1326238777460,
"id" : "task_1326232085508_4_4_r_0",
"type" : "REDUCE",
"successfulAttempt" : "",
"finishTime" : 0
}
]
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 603 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tasks>
<task>
<startTime>1326238773493</startTime>
<finishTime>1326238776261</finishTime>
<elapsedTime>2768</elapsedTime>
<progress>100.0</progress>
<id>task_1326232085508_4_4_m_0</id>
<state>SUCCEEDED</state>
<type>MAP</type>
<successfulAttempt>attempt_1326232085508_4_4_m_0_0</successfulAttempt>
</task>
<task>
<startTime>1326238777460</startTime>
<finishTime>0</finishTime>
<elapsedTime>0</elapsedTime>
<progress>100.0</progress>
<id>task_1326232085508_4_4_r_0</id>
<state>RUNNING</state>
<type>REDUCE</type>
<successfulAttempt/>
</task>
</tasks>
タスクリソースには、ジョブ内の特定のタスクに関する情報が含まれています。
taskid 値で識別されるタスクからタスクオブジェクトを取得するには、次の URI を使用します。
None
| 項目 | データ型 | 説明 |
|---|---|---|
| id | 文字列 | タスク ID |
| state | 文字列 | タスクの状態 - 有効な値は、NEW、SCHEDULED、RUNNING、SUCCEEDED、FAILED、KILL_WAIT、KILLED です |
| type | 文字列 | タスクタイプ - MAP または REDUCE |
| successfulAttempt | 文字列 | 最後の成功した試行の ID |
| progress | float | タスクの進捗状況をパーセントで表したもの |
| startTime | long | タスクが開始された時間 (エポックからのミリ秒単位) |
| finishTime | long | タスクが終了した時間 (エポックからのミリ秒単位) |
| elapsedTime | long | アプリケーションの開始からの経過時間 (ミリ秒) |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"task" : {
"progress" : 100,
"elapsedTime" : 0,
"state" : "RUNNING",
"startTime" : 1326238777460,
"id" : "task_1326232085508_4_4_r_0",
"type" : "REDUCE",
"successfulAttempt" : "",
"finishTime" : 0
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0 Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 299 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <task> <startTime>1326238777460</startTime> <finishTime>0</finishTime> <elapsedTime>0</elapsedTime> <progress>100.0</progress> <id>task_1326232085508_4_4_r_0</id> <state>RUNNING</state> <type>REDUCE</type> <successfulAttempt/> </task>
タスクカウンタ API を使用すると、そのタスクのすべてのカウンタを表すリソースのコレクションを取得できます。
None
| 項目 | データ型 | 説明 |
|---|---|---|
| id | 文字列 | タスク ID |
| taskcounterGroup | counterGroup オブジェクトの配列 (JSON) / ゼロ個以上の counterGroup オブジェクト (XML) | counterGroup オブジェクトのコレクション |
| 項目 | データ型 | 説明 |
|---|---|---|
| counterGroupName | 文字列 | カウンタグループの名前 |
| counter | counter オブジェクトの配列 (JSON) / ゼロ個以上の counter オブジェクト (XML) | counter オブジェクトのコレクション |
| 項目 | データ型 | 説明 |
|---|---|---|
| name | 文字列 | カウンタの名前 |
| value | long | カウンタの値 |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0/counters
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"jobTaskCounters" : {
"id" : "task_1326232085508_4_4_r_0",
"taskCounterGroup" : [
{
"counterGroupName" : "org.apache.hadoop.mapreduce.FileSystemCounter",
"counter" : [
{
"value" : 2363,
"name" : "FILE_BYTES_READ"
},
{
"value" : 54372,
"name" : "FILE_BYTES_WRITTEN"
},
{
"value" : 0,
"name" : "FILE_READ_OPS"
},
{
"value" : 0,
"name" : "FILE_LARGE_READ_OPS"
},
{
"value" : 0,
"name" : "FILE_WRITE_OPS"
},
{
"value" : 0,
"name" : "HDFS_BYTES_READ"
},
{
"value" : 0,
"name" : "HDFS_BYTES_WRITTEN"
},
{
"value" : 0,
"name" : "HDFS_READ_OPS"
},
{
"value" : 0,
"name" : "HDFS_LARGE_READ_OPS"
},
{
"value" : 0,
"name" : "HDFS_WRITE_OPS"
}
]
},
{
"counterGroupName" : "org.apache.hadoop.mapreduce.TaskCounter",
"counter" : [
{
"value" : 0,
"name" : "COMBINE_INPUT_RECORDS"
},
{
"value" : 0,
"name" : "COMBINE_OUTPUT_RECORDS"
},
{
"value" : 460,
"name" : "REDUCE_INPUT_GROUPS"
},
{
"value" : 2235,
"name" : "REDUCE_SHUFFLE_BYTES"
},
{
"value" : 460,
"name" : "REDUCE_INPUT_RECORDS"
},
{
"value" : 0,
"name" : "REDUCE_OUTPUT_RECORDS"
},
{
"value" : 0,
"name" : "SPILLED_RECORDS"
},
{
"value" : 1,
"name" : "SHUFFLED_MAPS"
},
{
"value" : 0,
"name" : "FAILED_SHUFFLE"
},
{
"value" : 1,
"name" : "MERGED_MAP_OUTPUTS"
},
{
"value" : 26,
"name" : "GC_TIME_MILLIS"
},
{
"value" : 860,
"name" : "CPU_MILLISECONDS"
},
{
"value" : 107839488,
"name" : "PHYSICAL_MEMORY_BYTES"
},
{
"value" : 1123147776,
"name" : "VIRTUAL_MEMORY_BYTES"
},
{
"value" : 57475072,
"name" : "COMMITTED_HEAP_BYTES"
}
]
},
{
"counterGroupName" : "Shuffle Errors",
"counter" : [
{
"value" : 0,
"name" : "BAD_ID"
},
{
"value" : 0,
"name" : "CONNECTION"
},
{
"value" : 0,
"name" : "IO_ERROR"
},
{
"value" : 0,
"name" : "WRONG_LENGTH"
},
{
"value" : 0,
"name" : "WRONG_MAP"
},
{
"value" : 0,
"name" : "WRONG_REDUCE"
}
]
},
{
"counterGroupName" : "org.apache.hadoop.mapreduce.lib.output.FileOutputFormatCounter",
"counter" : [
{
"value" : 0,
"name" : "BYTES_WRITTEN"
}
]
}
]
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0/counters Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 2660 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jobTaskCounters>
<id>task_1326232085508_4_4_r_0</id>
<taskCounterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.FileSystemCounter</counterGroupName>
<counter>
<name>FILE_BYTES_READ</name>
<value>2363</value>
</counter>
<counter>
<name>FILE_BYTES_WRITTEN</name>
<value>54372</value>
</counter>
<counter>
<name>FILE_READ_OPS</name>
<value>0</value>
</counter>
<counter>
<name>FILE_LARGE_READ_OPS</name>
<value>0</value>
</counter>
<counter>
<name>FILE_WRITE_OPS</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_BYTES_READ</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_BYTES_WRITTEN</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_READ_OPS</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_LARGE_READ_OPS</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_WRITE_OPS</name>
<value>0</value>
</counter>
</taskCounterGroup>
<taskCounterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.TaskCounter</counterGroupName>
<counter>
<name>COMBINE_INPUT_RECORDS</name>
<value>0</value>
</counter>
<counter>
<name>COMBINE_OUTPUT_RECORDS</name>
<value>0</value>
</counter>
<counter>
<name>REDUCE_INPUT_GROUPS</name>
<value>460</value>
</counter>
<counter>
<name>REDUCE_SHUFFLE_BYTES</name>
<value>2235</value>
</counter>
<counter>
<name>REDUCE_INPUT_RECORDS</name>
<value>460</value>
</counter>
<counter>
<name>REDUCE_OUTPUT_RECORDS</name>
<value>0</value>
</counter>
<counter>
<name>SPILLED_RECORDS</name>
<value>0</value>
</counter>
<counter>
<name>SHUFFLED_MAPS</name>
<value>1</value>
</counter>
<counter>
<name>FAILED_SHUFFLE</name>
<value>0</value>
</counter>
<counter>
<name>MERGED_MAP_OUTPUTS</name>
<value>1</value>
</counter>
<counter>
<name>GC_TIME_MILLIS</name>
<value>26</value>
</counter>
<counter>
<name>CPU_MILLISECONDS</name>
<value>860</value>
</counter>
<counter>
<name>PHYSICAL_MEMORY_BYTES</name>
<value>107839488</value>
</counter>
<counter>
<name>VIRTUAL_MEMORY_BYTES</name>
<value>1123147776</value>
</counter>
<counter>
<name>COMMITTED_HEAP_BYTES</name>
<value>57475072</value>
</counter>
</taskCounterGroup>
<taskCounterGroup>
<counterGroupName>Shuffle Errors</counterGroupName>
<counter>
<name>BAD_ID</name>
<value>0</value>
</counter>
<counter>
<name>CONNECTION</name>
<value>0</value>
</counter>
<counter>
<name>IO_ERROR</name>
<value>0</value>
</counter>
<counter>
<name>WRONG_LENGTH</name>
<value>0</value>
</counter>
<counter>
<name>WRONG_MAP</name>
<value>0</value>
</counter>
<counter>
<name>WRONG_REDUCE</name>
<value>0</value>
</counter>
</taskCounterGroup>
<taskCounterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.lib.output.FileOutputFormatCounter</counterGroupName>
<counter>
<name>BYTES_WRITTEN</name>
<value>0</value>
</counter>
</taskCounterGroup>
</jobTaskCounters>
タスク試行 API を使用すると、ジョブ内のタスク試行を表すリソースのコレクションを取得できます。 このリソースに対して GET 操作を実行すると、タスク試行オブジェクトのコレクションを取得します。
None
タスク試行のリストをリクエストすると、情報はタスク試行オブジェクトの配列として返されます。 タスクオブジェクトの構文については、タスク試行 APIも参照してください。
| 項目 | データ型 | 説明 |
|---|---|---|
| taskAttempt | task 試行オブジェクトの配列 (JSON) / ゼロ個以上の task 試行オブジェクト (XML) | task 試行オブジェクトのコレクション |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0/attempts
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"taskAttempts" : {
"taskAttempt" : [
{
"elapsedMergeTime" : 47,
"shuffleFinishTime" : 1326238780052,
"assignedContainerId" : "container_1326232085508_0004_01_000003",
"progress" : 100,
"elapsedTime" : 0,
"state" : "RUNNING",
"elapsedShuffleTime" : 2592,
"mergeFinishTime" : 1326238780099,
"rack" : "/98.139.92.0",
"elapsedReduceTime" : 0,
"nodeHttpAddress" : "host.domain.com:8042",
"type" : "REDUCE",
"startTime" : 1326238777460,
"id" : "attempt_1326232085508_4_4_r_0_0",
"finishTime" : 0
}
]
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0/attempts Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 807 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<taskAttempts>
<taskAttempt>
<startTime>1326238777460</startTime>
<finishTime>0</finishTime>
<elapsedTime>0</elapsedTime>
<progress>100.0</progress>
<id>attempt_1326232085508_4_4_r_0_0</id>
<rack>/98.139.92.0</rack>
<state>RUNNING</state>
<nodeHttpAddress>host.domain.com:8042</nodeHttpAddress>
<type>REDUCE</type>
<assignedContainerId>container_1326232085508_0004_01_000003</assignedContainerId>
<shuffleFinishTime>1326238780052</shuffleFinishTime>
<mergeFinishTime>1326238780099</mergeFinishTime>
<elapsedShuffleTime>2592</elapsedShuffleTime>
<elapsedMergeTime>47</elapsedMergeTime>
<elapsedReduceTime>0</elapsedReduceTime>
</taskAttempt>
</taskAttempts>
タスク試行リソースには、ジョブ内の特定のタスク試行に関する情報が含まれています。
attemptid 値で識別されるタスクからタスク試行オブジェクトを取得するには、次の URI を使用します。
None
| 項目 | データ型 | 説明 |
|---|---|---|
| id | 文字列 | タスク ID |
| rack | 文字列 | ラック |
| state | 文字列 | タスク試行の状態 - 有効な値は、NEW、UNASSIGNED、ASSIGNED、RUNNING、COMMIT_PENDING、SUCCESS_CONTAINER_CLEANUP、SUCCEEDED、FAIL_CONTAINER_CLEANUP、FAIL_TASK_CLEANUP、FAILED、KILL_CONTAINER_CLEANUP、KILL_TASK_CLEANUP、KILLED です |
| type | 文字列 | タスクのタイプ |
| assignedContainerId | 文字列 | この試行が割り当てられているコンテナ ID |
| nodeHttpAddress | 文字列 | このタスク試行が実行されたノードの HTTP アドレス |
| diagnostics | 文字列 | 診断メッセージ |
| progress | float | タスク試行の進捗状況をパーセントで表したもの |
| startTime | long | タスク試行が開始された時間 (エポックからのミリ秒単位) |
| finishTime | long | タスク試行が終了した時間 (エポックからのミリ秒単位) |
| elapsedTime | long | タスク試行の開始からの経過時間 (ミリ秒) |
reduce タスクの試行では、次のフィールドも存在します
| 項目 | データ型 | 説明 |
|---|---|---|
| shuffleFinishTime | long | シャッフルが終了した時間 (エポックからのミリ秒単位) |
| mergeFinishTime | long | マージが終了した時間 (エポックからのミリ秒単位) |
| elapsedShuffleTime | long | シャッフルフェーズの完了にかかった時間 (reduce タスクの開始からシャッフル終了までの時間 (ミリ秒単位)) |
| elapsedMergeTime | long | マージフェーズの完了にかかった時間 (シャッフル終了からマージ終了までの時間 (ミリ秒単位)) |
| elapsedReduceTime | long | reduce フェーズの完了にかかった時間 (マージ終了から reduce タスクの終了までの時間 (ミリ秒単位)) |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0/attempts/attempt_1326232085508_4_4_r_0_0
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"taskAttempt" : {
"elapsedMergeTime" : 47,
"shuffleFinishTime" : 1326238780052,
"assignedContainerId" : "container_1326232085508_0004_01_000003",
"progress" : 100,
"elapsedTime" : 0,
"state" : "RUNNING",
"elapsedShuffleTime" : 2592,
"mergeFinishTime" : 1326238780099,
"rack" : "/98.139.92.0",
"elapsedReduceTime" : 0,
"nodeHttpAddress" : "host.domain.com:8042",
"startTime" : 1326238777460,
"id" : "attempt_1326232085508_4_4_r_0_0",
"type" : "REDUCE",
"finishTime" : 0
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0/attempts/attempt_1326232085508_4_4_r_0_0 Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 691 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <taskAttempt> <startTime>1326238777460</startTime> <finishTime>0</finishTime> <elapsedTime>0</elapsedTime> <progress>100.0</progress> <id>attempt_1326232085508_4_4_r_0_0</id> <rack>/98.139.92.0</rack> <state>RUNNING</state> <nodeHttpAddress>host.domain.com:8042</nodeHttpAddress> <type>REDUCE</type> <assignedContainerId>container_1326232085508_0004_01_000003</assignedContainerId> <shuffleFinishTime>1326238780052</shuffleFinishTime> <mergeFinishTime>1326238780099</mergeFinishTime> <elapsedShuffleTime>2592</elapsedShuffleTime> <elapsedMergeTime>47</elapsedMergeTime> <elapsedReduceTime>0</elapsedReduceTime> </taskAttempt>
タスク試行状態 API を使用すると、送信されたタスク試行の状態をクエリできます。また、状態を「KILLED」に設定して PUT リクエストを使用することで、実行中のタスク試行の状態を変更して実行中のタスク試行を強制終了できます。 PUT 操作を実行するには、AM Web サービスに対して認証を設定する必要があります。さらに、タスク試行を強制終了する権限も必要です。現在、「KILLED」にのみ状態を変更できます。それ以外の状態に変更しようとすると、400 エラーレスポンスが発生します。認証されていない場合と不正なリクエストエラーの例を以下に示します。 PUT を正常に実行すると、最初のレスポンスは 202 になる場合があります。 200 になるまで PUT リクエストを繰り返すか、GET メソッドを使用して状態をクエリするか、タスク試行情報をクエリして状態を確認することで、アプリが強制終了されたことを確認できます。以下の例では、PUT リクエストを繰り返し、200 レスポンスを取得します。
タスク試行を強制終了するには、HTTP インターフェイスに対して認証フィルターを設定する必要があることに注意してください。この機能では、HttpServletRequest にユーザー名が設定されている必要があります。フィルターが設定されていない場合、「UNAUTHORIZED」レスポンスが返されます。
この機能は現在アルファ段階であり、将来変更される可能性があります。
None
アプリの状態をリクエストすると、返される情報には次のフィールドがあります
| 項目 | データ型 | 説明 |
|---|---|---|
| state | 文字列 | アプリケーションの状態 - 「NEW」、「STARTING」、「RUNNING」、「COMMIT_PENDING」、「SUCCEEDED」、「FAILED」、「KILLED」のいずれかになります |
JSON レスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1429692837321_0001/ws/v1/mapreduce/jobs/job_1429692837321_0001/tasks/task_1429692837321_0001_m_000000/attempts/attempt_1429692837321_0001_m_000000_0/state
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Server: Jetty(6.1.26) Content-Length: 20
レスポンスボディ
{
"state":"STARTING"
}
HTTPリクエスト
PUT http://proxy-http-address:port/proxy/application_1429692837321_0001/ws/v1/mapreduce/jobs/job_1429692837321_0001/tasks/task_1429692837321_0001_m_000000/attempts/attempt_1429692837321_0001_m_000000_0/state
リクエストボディ
{
"state":"KILLED"
}
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Server: Jetty(6.1.26) Content-Length: 18
レスポンスボディ
{
"state":"KILLED"
}
XML レスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1429692837321_0001/ws/v1/mapreduce/jobs/job_1429692837321_0001/tasks/task_1429692837321_0001_m_000000/attempts/attempt_1429692837321_0001_m_000000_0/state
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Server: Jetty(6.1.26) Content-Length: 121
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <jobTaskAttemptState> <state>STARTING</state> </jobTaskAttemptState>
HTTPリクエスト
PUT http://proxy-http-address:port/proxy/application_1429692837321_0001/ws/v1/mapreduce/jobs/job_1429692837321_0001/tasks/task_1429692837321_0001_m_000000/attempts/attempt_1429692837321_0001_m_000000_0/state
リクエストボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <jobTaskAttemptState> <state>KILLED</state> </jobTaskAttemptState>
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Server: Jetty(6.1.26) Content-Length: 121
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <jobTaskAttemptState> <state>KILLED</state> </jobTaskAttemptState>
認証されていない場合のエラーレスポンス
HTTPリクエスト
PUT http://proxy-http-address:port/proxy/application_1429692837321_0001/ws/v1/mapreduce/jobs/job_1429692837321_0001/tasks/task_1429692837321_0001_m_000000/attempts/attempt_1429692837321_0001_m_000000_0/state
リクエストボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <jobTaskAttemptState> <state>KILLED</state> </jobTaskAttemptState>
レスポンスヘッダー
HTTP/1.1 403 Unauthorized Content-Type: application/json Server: Jetty(6.1.26)
不正なリクエストエラーレスポンス
HTTPリクエスト
PUT http://proxy-http-address:port/proxy/application_1429692837321_0001/ws/v1/mapreduce/jobs/job_1429692837321_0001/tasks/task_1429692837321_0001_m_000000/attempts/attempt_1429692837321_0001_m_000000_0/state
リクエストボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <jobTaskAttemptState> <state>RUNNING</state> </jobTaskAttemptState>
レスポンスヘッダー
HTTP/1.1 400 Content-Length: 295 Content-Type: application/xml Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RemoteException> <exception>BadRequestException</exception> <message>java.lang.Exception: Only 'KILLED' is allowed as a target state.</message> <javaClassName>org.apache.hadoop.yarn.webapp.BadRequestException</javaClassName> </RemoteException>
タスク試行カウンタ API を使用すると、そのタスク試行のすべてのカウンタを表すリソースのコレクションを取得できます。
None
| 項目 | データ型 | 説明 |
|---|---|---|
| id | 文字列 | タスク試行 ID |
| taskAttemptcounterGroup | task attempt counterGroup オブジェクトの配列 (JSON) / ゼロ個以上の task attempt counterGroup オブジェクト (XML) | task attempt counter group オブジェクトのコレクション |
| 項目 | データ型 | 説明 |
|---|---|---|
| counterGroupName | 文字列 | カウンタグループの名前 |
| counter | counter オブジェクトの配列 (JSON) / ゼロ個以上の counter オブジェクト (XML) | counter オブジェクトのコレクション |
| 項目 | データ型 | 説明 |
|---|---|---|
| name | 文字列 | カウンタの名前 |
| value | long | カウンタの値 |
JSONレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0/attempts/attempt_1326232085508_4_4_r_0_0/counters
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
レスポンスボディ
{
"jobTaskAttemptCounters" : {
"taskAttemptCounterGroup" : [
{
"counterGroupName" : "org.apache.hadoop.mapreduce.FileSystemCounter",
"counter" : [
{
"value" : 2363,
"name" : "FILE_BYTES_READ"
},
{
"value" : 54372,
"name" : "FILE_BYTES_WRITTEN"
},
{
"value" : 0,
"name" : "FILE_READ_OPS"
},
{
"value" : 0,
"name" : "FILE_LARGE_READ_OPS"
},
{
"value" : 0,
"name" : "FILE_WRITE_OPS"
},
{
"value" : 0,
"name" : "HDFS_BYTES_READ"
},
{
"value" : 0,
"name" : "HDFS_BYTES_WRITTEN"
},
{
"value" : 0,
"name" : "HDFS_READ_OPS"
},
{
"value" : 0,
"name" : "HDFS_LARGE_READ_OPS"
},
{
"value" : 0,
"name" : "HDFS_WRITE_OPS"
}
]
},
{
"counterGroupName" : "org.apache.hadoop.mapreduce.TaskCounter",
"counter" : [
{
"value" : 0,
"name" : "COMBINE_INPUT_RECORDS"
},
{
"value" : 0,
"name" : "COMBINE_OUTPUT_RECORDS"
},
{
"value" : 460,
"name" : "REDUCE_INPUT_GROUPS"
},
{
"value" : 2235,
"name" : "REDUCE_SHUFFLE_BYTES"
},
{
"value" : 460,
"name" : "REDUCE_INPUT_RECORDS"
},
{
"value" : 0,
"name" : "REDUCE_OUTPUT_RECORDS"
},
{
"value" : 0,
"name" : "SPILLED_RECORDS"
},
{
"value" : 1,
"name" : "SHUFFLED_MAPS"
},
{
"value" : 0,
"name" : "FAILED_SHUFFLE"
},
{
"value" : 1,
"name" : "MERGED_MAP_OUTPUTS"
},
{
"value" : 26,
"name" : "GC_TIME_MILLIS"
},
{
"value" : 860,
"name" : "CPU_MILLISECONDS"
},
{
"value" : 107839488,
"name" : "PHYSICAL_MEMORY_BYTES"
},
{
"value" : 1123147776,
"name" : "VIRTUAL_MEMORY_BYTES"
},
{
"value" : 57475072,
"name" : "COMMITTED_HEAP_BYTES"
}
]
},
{
"counterGroupName" : "Shuffle Errors",
"counter" : [
{
"value" : 0,
"name" : "BAD_ID"
},
{
"value" : 0,
"name" : "CONNECTION"
},
{
"value" : 0,
"name" : "IO_ERROR"
},
{
"value" : 0,
"name" : "WRONG_LENGTH"
},
{
"value" : 0,
"name" : "WRONG_MAP"
},
{
"value" : 0,
"name" : "WRONG_REDUCE"
}
]
},
{
"counterGroupName" : "org.apache.hadoop.mapreduce.lib.output.FileOutputFormatCounter",
"counter" : [
{
"value" : 0,
"name" : "BYTES_WRITTEN"
}
]
}
],
"id" : "attempt_1326232085508_4_4_r_0_0"
}
}
XMLレスポンス
HTTPリクエスト
GET http://proxy-http-address:port/proxy/application_1326232085508_0004/ws/v1/mapreduce/jobs/job_1326232085508_4_4/tasks/task_1326232085508_4_4_r_0/attempts/attempt_1326232085508_4_4_r_0_0/counters Accept: application/xml
レスポンスヘッダー
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 2735 Server: Jetty(6.1.26)
レスポンスボディ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jobTaskAttemptCounters>
<id>attempt_1326232085508_4_4_r_0_0</id>
<taskAttemptCounterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.FileSystemCounter</counterGroupName>
<counter>
<name>FILE_BYTES_READ</name>
<value>2363</value>
</counter>
<counter>
<name>FILE_BYTES_WRITTEN</name>
<value>54372</value>
</counter>
<counter>
<name>FILE_READ_OPS</name>
<value>0</value>
</counter>
<counter>
<name>FILE_LARGE_READ_OPS</name>
<value>0</value>
</counter>
<counter>
<name>FILE_WRITE_OPS</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_BYTES_READ</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_BYTES_WRITTEN</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_READ_OPS</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_LARGE_READ_OPS</name>
<value>0</value>
</counter>
<counter>
<name>HDFS_WRITE_OPS</name>
<value>0</value>
</counter>
</taskAttemptCounterGroup>
<taskAttemptCounterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.TaskCounter</counterGroupName>
<counter>
<name>COMBINE_INPUT_RECORDS</name>
<value>0</value>
</counter>
<counter>
<name>COMBINE_OUTPUT_RECORDS</name>
<value>0</value>
</counter>
<counter>
<name>REDUCE_INPUT_GROUPS</name>
<value>460</value>
</counter>
<counter>
<name>REDUCE_SHUFFLE_BYTES</name>
<value>2235</value>
</counter>
<counter>
<name>REDUCE_INPUT_RECORDS</name>
<value>460</value>
</counter>
<counter>
<name>REDUCE_OUTPUT_RECORDS</name>
<value>0</value>
</counter>
<counter>
<name>SPILLED_RECORDS</name>
<value>0</value>
</counter>
<counter>
<name>SHUFFLED_MAPS</name>
<value>1</value>
</counter>
<counter>
<name>FAILED_SHUFFLE</name>
<value>0</value>
</counter>
<counter>
<name>MERGED_MAP_OUTPUTS</name>
<value>1</value>
</counter>
<counter>
<name>GC_TIME_MILLIS</name>
<value>26</value>
</counter>
<counter>
<name>CPU_MILLISECONDS</name>
<value>860</value>
</counter>
<counter>
<name>PHYSICAL_MEMORY_BYTES</name>
<value>107839488</value>
</counter>
<counter>
<name>VIRTUAL_MEMORY_BYTES</name>
<value>1123147776</value>
</counter>
<counter>
<name>COMMITTED_HEAP_BYTES</name>
<value>57475072</value>
</counter>
</taskAttemptCounterGroup>
<taskAttemptCounterGroup>
<counterGroupName>Shuffle Errors</counterGroupName>
<counter>
<name>BAD_ID</name>
<value>0</value>
</counter>
<counter>
<name>CONNECTION</name>
<value>0</value>
</counter>
<counter>
<name>IO_ERROR</name>
<value>0</value>
</counter>
<counter>
<name>WRONG_LENGTH</name>
<value>0</value>
</counter>
<counter>
<name>WRONG_MAP</name>
<value>0</value>
</counter>
<counter>
<name>WRONG_REDUCE</name>
<value>0</value>
</counter>
</taskAttemptCounterGroup>
<taskAttemptCounterGroup>
<counterGroupName>org.apache.hadoop.mapreduce.lib.output.FileOutputFormatCounter</counterGroupName>
<counter>
<name>BYTES_WRITTEN</name>
<value>0</value>
</counter>
</taskAttemptCounterGroup>
</jobTaskAttemptCounters>