Comsys2013 10
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Comsys2013 10

  • 397 views
Uploaded on

ComSys2013@芝浦工大の発表資料です。

ComSys2013@芝浦工大の発表資料です。

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
397
On Slideshare
389
From Embeds
8
Number of Embeds
2

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 8

https://twitter.com 7
http://s.deeeki.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Hanoi: 複数レイヤーのトレースログを 用いたHadoopのパフォーマンス解析 清水 裕亮 櫻井 孝平 山根 智 金沢大学 自然科学研究科 計算機ソフトウェア研究室
  • 2. 導入:大規模分散システムの普及 • 研究、商用で分野を問わず注目されている - - 多くの企業で活用 - - クラウドコンピューティング、ビッグデータ Google, Yahoo!, Amazon, Facebook, Twitter, etc.. IEEE Xploreの popular keyword のトップキーワードにも - 論文数 2012年∼ - hadoop = 440本 cloud computing = 6446本 big data = 1334本 ➡ Apache Hadoop、CDHの存在 2
  • 3. Hadoop • • • ビッグデータを扱う為の分散並列処理フレームワーク Googleの分散処理システムのオープンソースクローン - S. Ghemawat, et al: The Google File System, SOSP’13 J. Dean, et al: MapReduce : Simplified Data Processing on Large Clusters, OSDI’04 Hadoopを用いることで比較的容易に大規模な分散処理シ ステムが構築できる - 高いスケールアウト性能 - 透過性 コモディティハードウェアで構築可能 処理タスク、ファイルのレプリケーションによるフォールト トレラントと高可用性 3
  • 4. 大規模分散システムの課題 デバッグ・チューニングが困難 • Hadoopを例とすると、 - 膨大なパラメータの数 システム動作の非決定性 静的なテスト・解析手法が困難、不十分 分散配置されたログ ログのサイズ 4
  • 5. Hadoopのデバッグ・チューニングの課題と提案 • システム動作の非決定性、静的なテスト・解析手法が困難
 
 • 複数レイヤーにまたがっている膨大なパラメータ
 
 • ノード毎のデーモンごとに分散配置されたログ、ログのサイズ
 5
  • 6. Hadoopのデバッグ・チューニングの課題と提案 • システム動作の非決定性、静的なテスト・解析手法が困難 ➡ システム実行時のログ・トレース情報を用いた解析 が有効 • 複数レイヤーにまたがっている膨大なパラメータ ➡ 複数レイヤーのログを収集 ➡ 適切な粒度のトレース • ノード毎のデーモンごとに分散配置されたログ、ログのサイズ ➡ 長時間のバッチ処理に適した継続可能なログの収 集・解析 ➡ マルチプロセスに対応できるロギング 6
  • 7. Hadoopシステムのアーキテクチャ概要 Hadoop NameNode JobTracker Slave Slave Master Map DataNode Map Reduce Data Blocks Slave TaskTracker Reduce Data Blocks DataNode Map TaskTracker Reduce Data Blocks DataNode TaskTracker Java仮想マシン Java仮想マシン Java仮想マシン Java仮想マシン OS OS OS OS ハードウェア ハードウェア ハードウェア ハードウェア • • マスタスレーブ型のアーキテクチャ 各ノードのJava仮想マシン上でHadoopの各プロセスが強調動作する 7
  • 8. Hadoopシステムのアーキテクチャ概要 Hadoop NameNode JobTracker Slave Slave Master Map Data Blocks DataNode Slave Map Reduce TaskTracker Data Blocks DataNode Map Reduce TaskTracker Reduce Data Blocks DataNode TaskTracker イヤー、 レJava仮想マシン Java仮想マシン Java仮想マシン Java仮想マシン 数 計算機、複 複数 OS OS いう特徴 OS OS プロセスと 数のマルチ 複 そ ハードウェア して ハードウェア ハードウェア ハードウェア • • マスタスレーブ型のアーキテクチャ 各ノードのJava仮想マシン上でHadoopのプロセスが強調動作する 8
  • 9. 目次 ‣ 導入 ‣ 提案手法 ‣ 実験 ‣ まとめ 9
  • 10. 提案手法 1. 複数レイヤーかつ適切な粒度のロギング 2. 長時間のバッチ処理を行う分散システムの解析基盤 10
  • 11. 1. 複数レイヤー、適切な粒度のロギング アプリケーション層 Slave ・map/reduceタスクのメソッドトレース Hadoop - map/reduceの各フェーズでのkeyの分布 Map Reduce Data Blocks DataNode TaskTracker Java仮想マシン ミドルウェア層 ・DataNodeクライアントの通信ログ ・TaskTrackerクライアントの通信ログ 仮想マシン層 OS ハードウェア ・JavaVMメモリ使用率、GC ハードウェア・OS層 ・計算機リソース使用率 11
  • 12. 2. 長時間のバッチ処理を行う分散システムの解析基盤 • • 複数計算機からのログの収集 分散システムかつマルチプロセスに適したログの収集 - 各ノード内でログデータの集約処理 • 持続可能な解析 - 障害時のログの再転送処理 固定長のデータベース ログの収集、解析、可視化までの自動化 12
  • 13. 提案システム概要 スレーブ M マスター Hadoopクラスタ M M M M M モニター ログデータベース 解析システム 解析・可視化 解析サーバ
  • 14. 提案システム概要 スレーブ M マスター Hadoopクラスタ M M M M M モニター ログデータベース 解析システム 解析・可視化 解析サーバ
  • 15. MapReduce処理の概要 TaskTracker TaskTracker InputFormat sort map reduce combine partition OutputFormat HDFS split Files Files split split split split split File shuffle TaskTracker TaskTracker TaskTracker TaskTracker File
  • 16. MapReduce処理のロギング箇所 mapメソッドトレース M TaskTracker TaskTracker InputFormat sort map reduce combine partition OutputFormat HDFS split Files Files split split split split split M File shuffle TaskTracker TaskTracker TaskTracker TaskTracker M reduceメソッドトレース shuffle処理での通信バイトサイズ、遅延時間のクライアントログ File
  • 17. HDFSのデータの読み書き処理の概要 Client Master HDFS 
 ClientNode HDFS 
 NameNode HDFS
 Client (file name, block id) (block id, block location) instructions to datanode (block id, byte range) block data Name Node heartbeat: datanode state HDFS 
 DataNode HDFS 
 DataNode HDFS 
 DataNode Data Node Data Node Data Node Data Blocks Data Blocks Data Blocks Slaves
  • 18. HDFSの動作のトレース Client Master HDFS 
 ClientNode HDFS 
 NameNode HDFS
 Client (file name, block id) (block id, block location) instructions to datanode (block id, byte range) M block data HDFS READ/WRITE バイトサイズ、実行時間 Name Node heartbeat: datanode state HDFS 
 DataNode HDFS 
 DataNode HDFS 
 DataNode Data Node Data Node Data Node Data Blocks Data Blocks Data Blocks Slaves
  • 19. map/reduceメソッドトレースのロギング ローカル内でのメソッドトレースの集約処理 Slave M Map M Map • M map/reduceタスク毎に HanoiMonitorが起動し、各 メソッドのトレースを行う • HanoiMonitorは同サーバの HanoiDaemonにトレースロ グを転送する • HanoiDaemonは転送された ログの集約を行う Reduce HanoiMonitor HanoiDaemon Task Tracker 19
  • 20. メソッドトレースの監視のための技術 • AspectJ - アスペクト指向プログラミングのJava実装 - アスペクト指向プログラミング 
 ・・・ オブジェクト指向プログラミングとはモジュール化を行いにく い横断的関心事をアスペクトとしてモジュール化する技術 
 ̶ G. Kiczales, ECOOP 2001 ➡ Hadoopのコードに変更を加えることなく、ロギングのた めの機能を実装する ➡ ロギング機能による性能劣化を抑えるため、ロードタイム ウェービングではなく、コンパイル時のコードの挿入をする 20
  • 21. 提案システム概要 スレーブ M マスター Hadoopクラスタ M M M M M モニター ログデータベース 解析システム 解析・可視化 解析サーバ
  • 22. 解析システム概要 ログストリームの収集・解析 • fluentdを用いた分散配置されたログのリアルタイムな収集 - • • ログ転送失敗時の自動フェイルオーバ 固定サイズのデータベース mongoクエリを用いてkeyの分布の解析 22
  • 23. 目次 ‣ 導入 ‣ 提案手法 ‣ 実験 ‣ まとめ 23
  • 24. 実験環境 Hadoopクラスタ コア数 RAM ゲストOS VirtualBox ホストOS ハードウェア CPU クロック数 コア数 RAM ディスク 解析サーバ CPU クロック数 コア数 RAM ディスク Intel(R) Core(TM) i7-3770 3.40 GHz 8 16 GB 500GB 3 6 GB ディスク 500GB 表1:実験用Hadoopクラスタの 各仮想マシン性能 Intel Core i5-3470 CPU 3.20 GHz 4 8 GB 1TB SATA HDD (7200 回転) 表3:実験用Hadoopクラスタの各計算機性能 表2: 解析サーバの計算機性能 24
  • 25. 実験環境 OS CentOS 6.4 Linux 2.6.3-279.el6.x86_64 SMP hadoop 2.0.0+1475-1.cdh4.4.0.p0.23.el6 AspectJ 1.7.1 Java 1.7.0 fluentd 0.10.39 mongoDB 2.4.8 表4: 使用したOS, 各種ツール,プロダクトのバージョン 25
  • 26. 実験 • • 実験用MapRジョブにはWordCountプログラムを選択 解析基盤上のHadoopシステムでトレースログを取得・解 析・可視化を行う ! 分析の手法 ・各計算機ごとに作成されるグラフについて、乖離を見つけ る ・グラフを低レイヤーなものから高レイヤーに見ていくこと で、的確にシステム動作の把握のための情報が得られる 26
  • 27. 実験結果 ミドルウェア/アプリケーション層 Slave node04 Hadoop Map Reduce Data Blocks DataNode reduce実行回数 HDFS読み込みバイトサイズ 仮想マシン層 TaskTracker GCの実行回数 Java仮想マシン OS ハードウェア ハードウェア・OS層 CPU使用率 27 メモリー使用率
  • 28. key分布の解析 db.trace.keymap.node04.find({“time”: {“$gte”:ISODate("2013-11-12 05:50:00"), "$lt":ISODate("2013-11-12 06:00:00”)}, “metrics”: {“sum”: {“$gt”:1000}}}).sort({“$natural”: 1}).limit(1); • mongoクエリを用いてログを取得する ← Keyの数 18100 28
  • 29. 分析結果 • • • • このノードに割り当てられるべきmapタスクが全て終わった ガーベジコレクションが走っている reduceフェーズの中のコピーが行われている keyの数が多く、combineがうまく機能せずコピーに時間が かかっている可能性 29
  • 30. 目次 ‣ 導入 ‣ 提案手法 ‣ 実験 ‣ まとめ 30
  • 31. 関連研究 J. Dai, et al: Hitune: Dataflow-Based Performance Analysis for Big Data Cloud, USENIXATC’11 高次のデータフローをトレースし、低次元でのパフォーマンスボトルネック を推定する - E. Marinelli, et al: Kahuna: Problem diagnosis for Mapreduce-based cloud computing environments, NOMS’10 Hadoopが提供するメトリクス、ログを用いてノード間の乖離の自動検知を 行う - H. Herodotou, et al: Starfish: A Self-tuning for Big Data Analytics, CIDR’11 BTraceを用いて、map/reduceメソッドの実行時間を取得し、パフォーマ ンスボトルネックの検知を行う - 31
  • 32. 関連研究との比較 ・Hadoopの利用場面の特徴に適した解析システムを提 案、実装 ・map/reduceメソッドの入出力Keyの分布を利用してい る ・ログデータの転送のボトルネックを、ローカル内で のデータの集約処理で解消する手法 32
  • 33. まとめ • 分散システムのデバッグ・チューニングには、静的な解析 ではなく実行時のログ・トレース情報を用いた解析が有効 • • 複数層のログかつ、適切な粒度のログを用いることが有効 MapRのひとつのジョブが長時間という特徴のため、ログ の収集・解析を継続的に行える環境が必要 ! 【今後の展望】 • トレース情報を用いた解析の自動化 33
  • 34. ご静聴ありがとうございました。