submission横断的に見たいなあということで、自前で実行結果の情報をとる方法がないかHadoopのAPIとかログとかを調べました。欲しい情報は、カウンタとかもあるのですが、WebUIだと、TaskAttemptがどのノードでどのくらいの時間動いたかまでわかるので、その辺まではとりたいです。Logで、他はいろいろ欲しい情報が足りなかったりで使えなさそうだったのですが、せっかく調べたのでいろいろ書き残しておこうと思います。調べた路線は下記の様な感じです。・JobSubmissionProtocolの実装を使う系JobSubmissionProtocolはインターフェイスで、名前と違ってジョブの実行情報がとれる口があったりします。IOException;このへんかなと。currentStatus;という感じです。JobProfileはJob単位なので情報少なすぎ、JobStatusも同様、Countersは欲しいけどそれだけだとあれだなあという感じで、TaskReportはすごい期待したのですがこれもTask単位で、どのノードで動いたかわからないのが微妙、という感じでした。・WebUIのhtmlを気合いでパースする系いやでもWebUIにでてるんだからどこかに情報はあるはず、ということでWebUIのコードを見ました。詳細がでているURLをみると、taskdetailshistory.jspなどの文字があるので、その辺を調べました。JobHistory.JobInfo.encodeJobHistoryFilePath(logFile);なんかファイルのパスを渡しています。JobClientみても意味ないじゃん。辿るとjobtracker.jspからパラメーターで引き回していることがわかり、結局のところログを直接見れば欲しい情報があるということがわかりました。・Hadoopのログを気合いでパースする系ということで、ログを調べます。上のコードに"JobHistory.JobInfo.encodeJobHistoryFilePath"とあり、この辺なんかをみると、http://www.cloudera.com/blog/2009/09/apache-hadoop-log-files-where-to-find-them-in-cdh-and-what-info-they-contain/http://www.cloudera.com/blog/2010/11/hadoop-log-location-and-retention/欲しいログはヒストリログと呼ばれているものだということがわかりました。example.この辺を参考にしました。場所はローカルファイルシステムまたはHDFSに配置させされるし、名前のJobIDが入っているので、その辺はうまいことやれば情報がとれると。中身はわさわさしてます。パースは空気を読みつつ気合いですね。この辺のcontribで分析できたりとか(新しめのバージョンだとJTのWebUIと統合されてる)、というようなものなので、まあ知っていると便利かもです。内容を見ると、行頭にログの種類っぽいものがあって、Meta、Job、Task、MapAttempt、ReduceAttemptとあります。だいたいジョブの実行のところでみるような内容なので、書いてあるところは想像すればわかるかなと思います。それぞれ、新しい状態になるとログが一行増える的なないようっぽいです。持っている情報がわかりやすいように整形すると、それぞれ下記の様な感じになります。.Attemptとかは、FAILで終わるとエラーログを持っていたりもしますが、上に出しているのは正常系のものだけです。いう感じで、とりあえず欲しいものは見つかりました。最新記事2019年をふりかえってみると2018年をふりかえってみると2017年をふりかえってみると2016年をふりかえってみると2015年をふりかえってみると月別アーカイブはてなブログをはじめよう!marblejenkaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。