Hadoop Conference Japan 2013 Winterの午後6(会場:7階)『トラブルシューティングのために欲しかった、Hadoopがまるっと分かる可視化ツール』のメモです。
講演者はAcroquest Technologyの落合 雄介さん。(→資料)
halook(ハルック)の紹介。随所でデモを見せてくれて分かり易かった。
落合さんはhalookのロゴをイメージした被り物を装着して登場w(New York Hadoop User group Meetupでも被っていたらしい)
halookは、Hadoop・HBaseの可視化ツール。
HDFS使用量やHBaseリージョンの状態を照会できる。
Acroquest TechnologyはJava Troubleshooting Service(JaTS(ジャッツ))という、Javaに関するトラブルシューティングサービスを行っている。期限内に解決できなかったら半額返し!
現在のところ解決率100%らしい。
で、その為にJavaシステムを動的に診断して「見える化」するツール(ENdoSnipe(エンドスナイプ))を開発している。
なので、同様にHadoopのトラブルシュートツールとしてhalookを作った。
フロントエンドのウェブアプリケーションと同時に統合的な監視が可能。
また、halook公開を機にENdoSnipeもOSS化した。
○HDFS使用量
データ量やデータの偏りを表示
○MapReduceジョブ
ジョブの実行時間をガントチャートで表示
タスクを時系列/ホスト毎に表示
使用スロット数のグラフ化
○HBaseのリージョン数の推移
splitのタイミングとか
リージョンの分布をサーバー毎/テーブル毎に表示(偏りが分かる)
例えば、データノード間のデータ量の偏りを直す「start-balancer.sh」を実行しても すぐにデータ移動するわけではない、というのがツールを見ていると分かる。(十数時間かけて移動していく)
Asakusa Frameworkを動かした際のデモもあった。タスク数とか実行時間を見て、きちんと分散されていることが確認できた。
インストールとしては、「ENdoSnipe Javelin(ジャベリン)」をマスターノード(NameNode・JobTracker・HBaseMaster)に入れる。そこからデータ収集される。バイトコードインスツルメンテーションによってJMX以上のデータを取得できる。
(現在はスレーブは対象外だが、開発中とのこと)
収集したデータはPostgreSQLに格納する。(DataCollector)
クライアントはhalookサーバーにアクセスする。過去データの表示および現在データのリアルタイム表示が出来る。
(画面表示にはWeb Graphical Platform(WGP)というものを使っている。これもOSS化している)
Q&A1
ノード数が多いと表示が遅くなりそう
→2000タスクくらいなら表示できるが、それ以上はこれからの課題。(データ収集は大丈夫だが、見せ方はこれから)
Q&A2
他にも可視化ツールはあるが、halookの売りは?
→他のツールでもマスターのデータは取れる。halookはスレーブも取れるようにする。
Q&A3
可視化に力を入れているが、解析支援は?
→ENdoSnipeはまさに解析支援ツール(メモリリーク・SQLの大量発行・フルスキャン等の検出)だった。
halookはまだそこまで到達していないが、元々のENdoSnipeがそういうものなので、いずれやりたい。
(これは自分も思った疑問。見えるのはいいが、それが意味するものを読み解くのは大変そう。むしろ人間系のトラブルシューティングサービスで解析支援をやるのが良いような気がした)