32
Acroquest Technology 落合雄介 2012/11/10 JJUG CCC 2012 Fall Hadoop, HBase可視化ソフトウェア halook

halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

Embed Size (px)

Citation preview

Page 1: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

Acroquest Technology

落合雄介

2012/11/10

JJUG CCC 2012 Fall

Hadoop, HBase可視化ソフトウェアhalook

Page 2: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

自己紹介

落合雄介

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

Page 3: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

とは?

Hadoop, HBase の内部動作を可視化するOSS

3

HDFS使用量

MapReduce Job

HBase リージョン

Page 4: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

Hadoop World 2012 NYC で発表!?

1. 世界中から2500人が集まる大イベント

2. 初日に開催された関連イベント「New York Hadoop User group Meetup」

で を発表

4

発表時のtweet

Page 5: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

Hadoop World 公式のパーティー

halook ルックでダンス!!

5

Page 6: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

目次

1. halookでHadoop, HBaseを可視化する

2. Hadoop, HBase の可視化結果の紹介

3. halookの仕組み

6

Page 7: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

1. halook で Hadoop, HBaseを可視化する

7

Page 8: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

halook開発の経緯

Hadoop って、はやってますよね

しかしその裏で、 も多数

8

輝かしい成功事例が多数

トラブル

データが偏って分散処理しない

HBase書き込みがが1台に集中

クラスタが異常停止

Jobの処理時間知らない間に遅延

Page 9: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

Hadoop, HBase の難しさ

1. 期待通りにデータが分散配置されているか?

2. アプリケーションが分散処理されているのか?

3. 設定ミスで意図しない挙動をしていないか?

9

Hadoopは、数十台~数千台のサーバを束ねて、大量データの保存、分散処理を実行するための仕組み。

どう動いているか把握するだけでも大変

見える化してトラブルを防ぎたい

ログ解析、WebUI

では調べるのが大変

Page 10: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

インターンシップの開発テーマに

Acroquest のインターンシップ「オープンソースコーディングサマー」のテーマに 「Hadoopの可視化」を採用

5名の学生が、halook の画面表示部分を開発

10

2012年 8/27(月)~9/7(金) Acroquest インターンシップ

Page 11: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

トラブルを防ぐ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 リージョン分布をグラフ化

Page 12: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

HDFS view

HDFSの使用量を表示

12

1本のバーが一つのDataNodeを表す

各DataNodeの使用率が閾値を超えると、色が変わる

HDFSの使用状況を一目で確認したい

Page 13: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

MapReduce Job Gantt chart

実行Jobの一覧をガントチャートで表示

13

標準のWebUIでは、Jobの開始・終了時間や処理時間が一目で確認できない。

Jobの処理期間をガントチャートで表示。Jobの並列処理状況が分かります。

Page 14: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

MapReduce Task Arrow chart

Jobを構成している複数のMap

Task, Reduce Task の処理状況を表示。それらを表示。

14

標準のWebUIでは、Taskの実行状況の確認が難しい。

使用スロット数もグラフ化

時系列で表示、実行ノードごとに表示など、必要な解析方法で並べ替え可能

Page 15: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

MapReduce Task Bubble chart

Jobの特性をバブルチャートで表示

15

大量にTaskが存在する場合、Taskの全体の傾向や処理時間の遅いTaskを見つけ出すのに手間がかかる。

横軸:Taskの開始(or終了)時刻縦軸:実行時間

遅いTask

Page 16: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

HBase Region Grow graph

HBaseのデータを管理する単位である「リージョン」の数の推移を表示

16

リージョン数の推移を調べる簡単な方法がない。

split (リージョン分割)などのイベント発生を、推移グラフと共に表示

※Compaction 発生もグラフに表示できるようにする予定

Page 17: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

HBase Region Map graph

HBaseのリージョンの分布をサーバごとにグラフ表示し、テーブルごとに色分け

17

リージョン数が均等でも、テーブルごとのリージョン数が偏っていることがある。

指定した時刻のリージョン分布を表示

Page 18: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

デモ

18

デモをお見せします!

Page 19: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

19

2. Hadoop, HBase の可視化結果の紹介

Page 20: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

Taskの投機的実行

Taskの失敗や処理が遅いことを見込んで、他のノードでも同じTaskを実行する機能 どんなTaskが投機的実行対象になるか分かりま

す。

20

Page 21: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

Map Task、Reduce Taskの失敗

(デモでお見せします)

21

Page 22: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

HBaseのリージョン分割

1. 自動splitに任せた場合にその分割が適切か?

2. 手動splitをした場合にそのタイミングが適切か?

22

• HBase のデータはリージョンに分割して管理・保存される

• リージョンのサイズが大きくなると分割する

Page 23: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

23

3. halookの仕組み

Page 24: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

1. Hadoop/HBaseからデータを取得するエージェント、データ蓄積部分は

を利用

2. 画面表示はWGPをベースにしている

halookの構成

24

ENdoSnipe WGP

halook

Page 25: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

処理の流れ

25

NameNode JobTracker HBaseMaster

Javelin Javelin Javelin

DataCollector

DB(PostgreSQL)

Hadoop からデータの取得

halookServer(Tomcat)

DBへの格納

リアルタイム通知 過去データ取

過去データ表示

リアルタイム通知

Page 26: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

OSS版ENdoSnipe を利用

とは

1. Java トラブルシューティングツールとして実績あり Javaシステムのトラブルの原因を

自動的にレポート表示する「PerformanceDoctor」

2. 各種情報取得 クラス図、シーケンス図の自動生成

CPU使用率、ヒープメモリ使用量など、20以上のグラフ

26

halookリリースと合わせて、一部機能をOSSとして公開

Page 27: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

データ取得部分(OSS版 ENdoSnipe)

1. ENdoSnipe Javelinによるデータ取得 Javaプロセスに適用するエージェント

バイトコード・インスツルメンテーションにより、JMXやログ以上に詳細な情報を引き出すことが可能

2. ENdoSnipe DataCollector によるデータ収集、過去データの蓄積

27

Page 28: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

画面表示部分(WGP)

WGP - Web Graphical Platform

1. HTML5、CSS3、JavaScript のプラットフォーム halook画面の、

• Tree表示

• ウィンドウの分割

• グラフ表示

等は、WGPで実現。

2. Ajax通信を簡単に利用し、リアルタイム通信ができる仕組みを持つ

28

http://wgp.sourceforge.net/

Page 29: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

WGPの他の応用例

1. Network Management System(NMS)

29

Page 30: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

まとめ

1. halook(オープンソース)でHadoop, HBaseを可視化しよう。

2. 実際の挙動を確認することで、分散アプリケーションを正しく使おう。

30

Page 31: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

でHadoopを可視化!

31

ぜひ使ってみてください!

Page 32: halook (Hadoop/HBase可視化OSS) - JJUG CCC 2012 Fall 発表資料

参考

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