Upload
acroquest-technology
View
1.079
Download
0
Embed Size (px)
Citation preview
Acroquest Technology
落合雄介
2012/11/10
JJUG CCC 2012 Fall
Hadoop, HBase可視化ソフトウェアhalook
自己紹介
落合雄介
Acroquest Technology株式会社
Hadoop World に2年連続で参加するほど、Hadoop 好きのJavaエンジニア。
• Hadoop World 2011 New York (2011年11/8~11/9)
• Hadoop World 2012 New York (2012年10/23~10/25)
業務: Hadoop, HBaseのインフラ構築/検証
Hadoop, HBase可視化ソフト「halook」の開発
2
とは?
Hadoop, HBase の内部動作を可視化するOSS
3
HDFS使用量
MapReduce Job
HBase リージョン
Hadoop World 2012 NYC で発表!?
1. 世界中から2500人が集まる大イベント
2. 初日に開催された関連イベント「New York Hadoop User group Meetup」
で を発表
4
発表時のtweet
Hadoop World 公式のパーティー
halook ルックでダンス!!
5
目次
1. halookでHadoop, HBaseを可視化する
2. Hadoop, HBase の可視化結果の紹介
3. halookの仕組み
6
1. halook で Hadoop, HBaseを可視化する
7
halook開発の経緯
Hadoop って、はやってますよね
しかしその裏で、 も多数
8
輝かしい成功事例が多数
トラブル
データが偏って分散処理しない
HBase書き込みがが1台に集中
クラスタが異常停止
Jobの処理時間知らない間に遅延
Hadoop, HBase の難しさ
1. 期待通りにデータが分散配置されているか?
2. アプリケーションが分散処理されているのか?
3. 設定ミスで意図しない挙動をしていないか?
9
Hadoopは、数十台~数千台のサーバを束ねて、大量データの保存、分散処理を実行するための仕組み。
どう動いているか把握するだけでも大変
見える化してトラブルを防ぎたい
ログ解析、WebUI
では調べるのが大変
インターンシップの開発テーマに
Acroquest のインターンシップ「オープンソースコーディングサマー」のテーマに 「Hadoopの可視化」を採用
5名の学生が、halook の画面表示部分を開発
10
2012年 8/27(月)~9/7(金) Acroquest インターンシップ
トラブルを防ぐHadoop可視化ツール
halookが提供する機能
11
対象 画面名 説明
HDFS HDFS view HDFS使用量表示
MapReduce
MapReduce Job Gantt chart MapReduce Job 一覧
MapReduce Task Arrow chart MapReduce Task 一覧
MapReduce Task Bubble chart MapReduce Task のグラフ
HBase
HBase Region Grow graph リージョン数推移をグラフ化
HBase Region Map graph リージョン分布をグラフ化
HDFS view
HDFSの使用量を表示
12
1本のバーが一つのDataNodeを表す
各DataNodeの使用率が閾値を超えると、色が変わる
HDFSの使用状況を一目で確認したい
MapReduce Job Gantt chart
実行Jobの一覧をガントチャートで表示
13
標準のWebUIでは、Jobの開始・終了時間や処理時間が一目で確認できない。
Jobの処理期間をガントチャートで表示。Jobの並列処理状況が分かります。
MapReduce Task Arrow chart
Jobを構成している複数のMap
Task, Reduce Task の処理状況を表示。それらを表示。
14
標準のWebUIでは、Taskの実行状況の確認が難しい。
使用スロット数もグラフ化
時系列で表示、実行ノードごとに表示など、必要な解析方法で並べ替え可能
MapReduce Task Bubble chart
Jobの特性をバブルチャートで表示
15
大量にTaskが存在する場合、Taskの全体の傾向や処理時間の遅いTaskを見つけ出すのに手間がかかる。
横軸:Taskの開始(or終了)時刻縦軸:実行時間
遅いTask
HBase Region Grow graph
HBaseのデータを管理する単位である「リージョン」の数の推移を表示
16
リージョン数の推移を調べる簡単な方法がない。
split (リージョン分割)などのイベント発生を、推移グラフと共に表示
※Compaction 発生もグラフに表示できるようにする予定
HBase Region Map graph
HBaseのリージョンの分布をサーバごとにグラフ表示し、テーブルごとに色分け
17
リージョン数が均等でも、テーブルごとのリージョン数が偏っていることがある。
指定した時刻のリージョン分布を表示
デモ
18
デモをお見せします!
19
2. Hadoop, HBase の可視化結果の紹介
Taskの投機的実行
Taskの失敗や処理が遅いことを見込んで、他のノードでも同じTaskを実行する機能 どんなTaskが投機的実行対象になるか分かりま
す。
20
Map Task、Reduce Taskの失敗
(デモでお見せします)
21
HBaseのリージョン分割
1. 自動splitに任せた場合にその分割が適切か?
2. 手動splitをした場合にそのタイミングが適切か?
22
• HBase のデータはリージョンに分割して管理・保存される
• リージョンのサイズが大きくなると分割する
23
3. halookの仕組み
1. Hadoop/HBaseからデータを取得するエージェント、データ蓄積部分は
を利用
2. 画面表示はWGPをベースにしている
halookの構成
24
ENdoSnipe WGP
halook
処理の流れ
25
NameNode JobTracker HBaseMaster
Javelin Javelin Javelin
DataCollector
DB(PostgreSQL)
Hadoop からデータの取得
halookServer(Tomcat)
DBへの格納
リアルタイム通知 過去データ取
得
過去データ表示
リアルタイム通知
OSS版ENdoSnipe を利用
とは
1. Java トラブルシューティングツールとして実績あり Javaシステムのトラブルの原因を
自動的にレポート表示する「PerformanceDoctor」
2. 各種情報取得 クラス図、シーケンス図の自動生成
CPU使用率、ヒープメモリ使用量など、20以上のグラフ
26
halookリリースと合わせて、一部機能をOSSとして公開
データ取得部分(OSS版 ENdoSnipe)
1. ENdoSnipe Javelinによるデータ取得 Javaプロセスに適用するエージェント
バイトコード・インスツルメンテーションにより、JMXやログ以上に詳細な情報を引き出すことが可能
2. ENdoSnipe DataCollector によるデータ収集、過去データの蓄積
27
画面表示部分(WGP)
WGP - Web Graphical Platform
1. HTML5、CSS3、JavaScript のプラットフォーム halook画面の、
• Tree表示
• ウィンドウの分割
• グラフ表示
等は、WGPで実現。
2. Ajax通信を簡単に利用し、リアルタイム通信ができる仕組みを持つ
28
http://wgp.sourceforge.net/
WGPの他の応用例
1. Network Management System(NMS)
29
まとめ
1. halook(オープンソース)でHadoop, HBaseを可視化しよう。
2. 実際の挙動を確認することで、分散アプリケーションを正しく使おう。
30
でHadoopを可視化!
31
ぜひ使ってみてください!
参考
1. halook 紹介ページ http://www.acroquest.co.jp/OSS/halook/
2. halook(GitHub)
https://github.com/endosnipe/VisualHadoop
3. ENdoSnipe OSS版(GitHub)
https://github.com/endosnipe/ENdoSnipe
4. WGP(SourceForge)
http://wgp.sourceforge.net/
32