出力情報の形式
ジョブヒストリサマリファイルは、Excelファイルとして以下の形式で出力されます。
1シート目
シート名: jobs
内容: 実行したジョブについて、開始時間、終了時間、MapReduce処理の情報が出力されます。
2シート目以降(※Hadoopジョブの実行単位に作成されます)
シート名: ジョブID
内容: 各スレーブサーバにおけるタスクごとの実行時間、Hadoopジョブ開始から終了までの実行中プロセス数、MapReduceのジョブの結果が出力されます。
1シート目は常に出力する固定部と、ジョブヒストリログの内容により、出力する項目が変化する可変部で構成されます。
固定部は常に同じ項目名で出力されます。項目値の列は、Hadoopジョブの実行単位に作成されます。
下図は固定部の例です。
固定部の各項目の情報です。
項目名 | 項目の内容 | 項目値の形式 |
---|---|---|
JobName | ジョブ名を表します。 | 文字列 |
JOBID | ジョブIDを表します。 | 文字列(*1) |
STATUS | ジョブの復帰値を表します。 | 文字列 |
START_TIME | ジョブが開始した時間を表します。 | 以下の日時形式の文字列 Day Mon DD HH:MM:SS TZD YYYY(*2) |
FINISH_TIME | ジョブが完了した時間を表します。 | 以下の日時形式の文字列 Day Mon DD HH:MM:SS TZD YYYY(*2) |
TOTAL_TIME | ジョブの実行にかかった時間(秒)を表します。 | 10進表記の数字列 (3桁カンマ区切り) |
FINISHED_MAPS | 正常終了したMap処理の数を表します。 | 10進表記の数字列 (3桁カンマ区切り) |
FINISHED_REDUCES | 正常終了したReduce処理の数を表します。 | 10進表記の数字列 (3桁カンマ区切り) |
FAILED_MAPS | 異常終了したMap処理の数を表します。 | 10進表記の数字列 (3桁カンマ区切り) |
FAILED_REDUCES | 異常終了したReduce処理の数を表します。 | 10進表記の数字列 (3桁カンマ区切り) |
*1:"job_"+年(2桁の数字)+月(2桁の数字(01~12))+日(2桁の数字(01~31))+時(2桁の数字(00~23))+分(2桁の数字(00~59))+"_0001からの連番"からなる値を表します。
*2:各値は以下の通りです。
Day: 曜日(Sun、Mon、Tue、Wed、Thu、Fri、Sat)を表します。
Mon: 月(Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec)を表します。
DD: 日を2桁の数字(01~31)で表します。
HH: 時を2桁の数字(00~23)で表します。
MM: 分を2桁の数字(00~59)で表します。
SS: 秒を2桁の数字(00~59)で表します。
TZD: タイムゾーン(JST、GMTなど)を表します。
YYYY: 年を4桁の数字(0000~9999)で表します。
各項目は、ジョブヒストリログの仕様により、出力される項目です。そのため、項目数はジョブヒストリログの出力内容により増減します。
項目値の列は、Hadoopジョブの実行単位に作成します。ただし、項目名部分は項目値の列(Hadoopジョブ)すべてにおいて共有するため、項目名に対応する値を出力していないHadoopジョブの項目値は"0"になります。
下図は可変部の例です。
項目名1~項目名3および項目値は、以下のようにジョブヒストリログの"job"で始まる行でかつ、"FINISH_TIME="を含む行から取得します。
<ジョブヒストリログの構成>
Job JOBID="job_201304121445_0005" FINISH_TIME="1365750734029" JOB_STATUS="SUCCESS" FINISHED_MAPS="1354" FINISHED_REDUCES="33" FAILED_MAPS="0" FAILED_REDUCES="20"
項目名1="{(~)(項目名2)[(~)(項目名3)(項目値)]…}{(~)(項目値)[(~)(項目名3)(項目値)]…}…"
項目名1="{(~)(項目名2)[(~)(項目名3)(項目値)]…}{(~)(項目値)[(~)(項目名3)(項目値)]…}…"
項目名1="{(~)(項目名2)[(~)(項目名3)(項目値)]…}{(~)(項目値)[(~)(項目名3)(項目値)]…}…"
上記の例では、"~"は省略を表し、"…"は繰り返しを表します。
2シート目以降は処理時間の詳細表示部、実行プロセス数表示部、処理時間のまとめ表示部、グラフ、タイムチャート表示部の4つで構成されます。
TaskTracker(スレーブサーバ)ごとにMap処理とReduce処理で分け、それぞれタスク試行IDごとに処理時間を表示します。
下図は処理時間の詳細表示部の例です。
各項目の内容は以下の表の通りです。
項目名 | 項目の内容 | 項目値の形式 |
---|---|---|
tracker | タスクを実行するTaskTracker(スレーブサーバ)名を表します。 | 文字列 |
type | 処理のタイプを表します。 | "maps"または"reduces"という文字列 |
task | タスクを試行したIDを表します。 | 文字列(*1) |
start | タスクが開始した時間を表します。 | 以下の日時形式の文字列 MM/DD hh:mm:ss(*2) |
finish | タスクが終了した時間を表します。 | 以下の日時形式の文字列 MM/DD hh:mm:ss(*2) |
total-time | タスクの実行にかかった時間(秒)を表します。 | 10進表記の数字列 |
shuffle-time | Shuffle処理にかかった時間(秒)を表します。 異常終了しているタスクは"fail"と表します。 | Map処理の行は、"-"という文字列 Reduce処理の行は、10進表記の数字列または"fail"という文字列 |
sort-time | Sort処理にかかった時間(秒)を表します。 異常終了しているタスクは"fail"と表します。 | Map処理の行は、"-"という文字列 Reduce処理の行は、10進表記の数字列または"fail"という文字列 |
reduce-time | Reduce処理にかかった時間(秒)を表します。 異常終了しているタスクは"fail"と表します。 | Map処理の行は、"-"という文字列 Reduce処理の行は、10進表記の数字列または"fail"という文字列 |
*1:数値の部分は"0"からの連番で、同一のタスクIDを実行するたびに増加します。
例:attempt_タスクID_数値
*2:各値は以下の通りです。
MM: 月を2桁の数字(01~12)で表します。
DD: 日を2桁の数字(01~31)で表します。
hh: 時を2桁の数字(00~23)で表します。
mm: 分を2桁の数字(00~59)で表します。
ss: 秒を2桁の数字(00~59)で表します。
ジョブの開始時間から終了時間までの間、時刻ごとに各処理の実行中のタスク数をカウントした値を表示します。
下図は実行プロセス数表示部の例です。
各項目の内容は以下の表の通りです。
項目名 | 項目の内容 | 項目値の形式 |
---|---|---|
time | ジョブが開始した時間から終了した時間までの秒を表します。 | 10進表記の数字列 |
# maps | 実行中のMap処理のタスク数を表します。 | 10進表記の数字列 |
# shuffles | 実行中のShuffle処理のタスク数を表します。 | 10進表記の数字列 |
# sorts | 実行中のSort処理のタスク数を表します。 | 10進表記の数字列 |
# reduces | 実行中のReduce処理のタスク数を表します。 | 10進表記の数字列 |
TaskTracker(スレーブサーバ)ごとにMap処理やReduce処理の件数をまとめて表示し、さらにMap処理、Reduce処理、Shuffle処理、Sort処理の処理時間の平均値、最小値、最大値を表示します。
下図は処理時間のまとめ表示部の例です。
総計表示部は、Map処理単位およびReduce処理単位で総計を(totals)として表示します。
TaskTracker(スレーブサーバ)単位表示部は、TaskTracker(スレーブサーバ)単位でタスクの状態ごとのタスク件数、処理時間をまとめて表示します。
各項目の内容は以下の表の通りです。
【総計表示部】
項目名 | 項目の内容 | 値の形式 |
---|---|---|
tracker | 各項目の総計を表します。 | "(totals)"という文字列 |
status | Map処理またはReduce処理の実行した際の復帰値を表します。 | 1行目:"MAP"という文字列 2行目:"REDUCE"という文字列 |
count | 復帰値に対応したタスク数を表します。 | 10進表記の数字列 |
average | タスクの処理時間の平均値を表します。 | 10進表記の数字列 |
min | タスクの処理時間の最小値を表します。 | 10進表記の数字列 |
max | タスクの処理時間の最大値を表します。 | 10進表記の数字列 |
shuffle (avg) | Shuffle処理の処理時間の平均値を表します。 | 10進表記の数字列 |
shuffle (min) | Shuffle処理の処理時間の最小値を表します。 | 10進表記の数字列 |
shuffle (max) | Shuffle処理の処理時間の最大値を表します。 | 10進表記の数字列 |
sort (avg) | Sort処理の処理時間の平均値を表します。 | 10進表記の数字列 |
sort (min) | Sort処理の処理時間の最小値を表します。 | 10進表記の数字列 |
sort (max) | Sort処理の処理時間の最大値を表します。 | 10進表記の数字列 |
reduce (avg) | Reduce処理の処理時間の平均値を表します。 | 10進表記の数字列 |
reduce (min) | Reduce処理の処理時間の最小値を表します。 | 10進表記の数字列 |
reduce (max) | Reduce処理の処理時間の最大値を表します。 | 10進表記の数字列 |
【TaskTracker(スレーブサーバ)単位表示部】
項目名 | 項目の内容 | 値の形式 |
tracker | タスクを実行するTaskTracker(スレーブサーバ)名を表します。 | 文字列 |
status | Map処理またはReduce処理の実行した際の復帰値を表します。 TaskTracker(スレーブサーバ)ごとに以下の6行を表示します。 Map処理 ・"#MAP_OK":正常終了したタスク ・"#MAP_KILL":中止されたタスク ・"#MAP_FAIL":異常終了したタスク Reduce処理 ・"#RED_OK":正常終了したタスク ・"#RED_KILL":中止されたタスク ・"#RED_FAIL":異常終了したタスク | "#MAP_OK"または"#MAP_KILL"または"#MAP_FAIL"または"#RED_OK"または"#RED_KILL"または"#RED_FAIL"という文字列 |
count | 復帰値に対応したタスク数を表します。 | 10進表記の数字列 |
average | タスクの処理時間の平均値を表します。 | 10進表記の数字列 |
min | タスクの処理時間の最小値を表します。 | 10進表記の数字列 |
max | タスクの処理時間の最大値を表します。 | 10進表記の数字列 |
shuffle (avg) | Shuffle処理の処理時間の平均値を表します。 | 10進表記の数字列 |
shuffle (min) | Shuffle処理の処理時間の最小値を表します。 | 10進表記の数字列 |
shuffle (max) | Shuffle処理の処理時間の最大値を表します。 | 10進表記の数字列 |
sort (avg) | Sort処理の処理時間の平均値を表します。 | 10進表記の数字列 |
sort (min) | Sort処理の処理時間の最小値を表します。 | 10進表記の数字列 |
sort (max) | Sort処理の処理時間の最大値を表します。 | 10進表記の数字列 |
reduce (avg) | Reduce処理の処理時間の平均値を表します。 | 10進表記の数字列 |
reduce (min) | Reduce処理の処理時間の最小値を表します。 | 10進表記の数字列 |
reduce (max) | Reduce処理の処理時間の最大値を表します。 | 10進表記の数字列 |
処理時間のまとめ表示部では、status列の値により、総計表示部とTaskTracker(スレーブサーバ)単位表示部の行ごとに表示する列が決まります。
表示する列は以下の通りです。
tracker | status | count | average | min | max | shuffle (avg) | shuffle (min) | shuffle (max) | sort (avg) | sort (min) | sort (max) | reduce (avg) | reduce (min) | reduce (max) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
(totals) | MAP | ○ | ○ | ○ | ○ | - | - | - | - | - | - | - | - | - |
REDUCE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
TaskTracker(スレーブサーバ)単位 | #MAP_OK | ○ | ○ | ○ | ○ | - | - | - | - | - | - | - | - | - |
#MAP_KILL | ○ | - | - | - | - | - | - | - | - | - | - | - | - | |
#MAP_FAIL | ○ | - | - | - | - | - | - | - | - | - | - | - | - | |
#RED_OK | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
#RED_KILL | ○ | - | - | - | - | - | - | - | - | - | - | - | - | |
#RED_FAIL | ○ | - | - | - | - | - | - | - | - | - | - | - | - |
○:表示する
-:表示しない
グラフ、タイムチャート表示部は、時刻ごとの実行タスク数のグラフと全てのタスクのタイムチャートで構成されます。
時刻ごとの実行タスク数のグラフは、縦軸をタスク数、横軸を時刻とし、時刻ごとの多重で実行しているタスクの数を表します。
下図は時刻ごとの実行タスク数のグラフの例です。
時刻ごとの実行タスク数のグラフにおいて、各色は以下を表します。
赤色: Map処理のタスク数です。
黒色: Shuffle処理のタスク数です。
水色: Sort処理のタスク数です。
灰色: Reduce処理のタスク数です。
全てのタスクのタイムチャートは、縦軸をTaskTracker(スレーブサーバ)ごとの実行中タスク数とし、横軸を時刻として、各タスクの処理時間を表します。
下図は全てのタスクのタイムチャートの例です。
全てのタスクのタイムチャートにおいて、各色は以下を表します。
赤色: Map処理のタスクです。
濃い灰色: Shuffle処理のタスクです。
水色: Sort処理のタスクです。
灰色: Reduce処理のタスクです。
緑色: 異常終了したタスクです。