(57)【要約】【課題】複数のノードによって構成された分散処理システムの状態を、より好適に表示可能とする。【解決手段】通信ログ収集サーバ３０によって、分散処理システムＡのノードの通信状態を示す通信ログを収集し、実行ログ収集サーバ６０によって、分散処理システムＡのノードの処理実行状態を示す実行ログを収集する。そして、表示クライアント７０のログ同期部７１によって、通信ログと実行ログとを同期させた同期済みログを生成し、ログ表示処理部７２によって、同期済みログに基づいて表示画像を生成する。ログ表示処理部７２は、生成した表示画像をディスプレイ８０に表示する。このように、通信ログと実行ログとを同期させ、同期済みログに基づいて表示画像を生成することにより、分散処理システムにおける通信状態と各ノードの処理実行状態とが同時に表示される。【選択図】図１
2012173779.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードによって構成された分散処理システムの状態を表示する分散処理状態可視化システムであって、
分散処理システムのノードの通信状態を示す通信ログを取得する通信ログ取得手段と、
前記通信ログ取得手段で取得された通信ログを収集する通信ログ収集手段と、
分散処理システムのノードの処理実行状態を示す実行ログを取得する実行ログ取得手段と、
前記実行ログ取得手段で取得された実行ログを収集する実行ログ収集手段と、
前記通信ログ収集手段で収集された通信ログ、及び前記実行ログ収集手段で収集された実行ログを同期させて、同期済みログを生成するログ同期手段と、
前記ログ同期手段で生成された同期済みログに基づいて表示画像を生成し、当該表示画像を可視化デバイスに表示するログ表示処理手段と、
を備えることを特徴とする分散処理状態可視化システム。
【請求項２】
前記ログ同期手段は、前記通信ログに含まれる時刻情報、及び前記実行ログに含まれる時刻情報に基づいて、前記通信ログと前記実行ログとを用いて同時刻のデータを統合することにより前記同期済みログを生成する、ことを特徴とする請求項１に記載の分散処理状態可視化システム。
【請求項３】
前記ログ表示処理手段は、前記表示画像として、球面状にノードを配置し、配置したノード間を線分で接続し、前記線分上に送受信されるデータ量を表すデータ量表示を付加した画像を生成するものであり、
前記表示画像は、前記球面状に配置したノードの視覚効果の変化によって前記実行ログが示す処理実行状態が表され、前記データ量表示の視覚効果の変化によって前記通信ログが示す通信状態が表される、ことを特徴とする請求項１又は２に記載の分散処理状態可視化システム。
【請求項４】
前記表示画像は、前記球面状に配置したノードの色によって処理実行状態が表され、前記データ量表示が線分上を流れるときの当該データ量表示の大きさによってデータ量が表される、ことを特徴とする請求項３に記載の分散処理状態可視化システム。
【請求項５】
前記ログ表示処理手段は、前記表示画像における、表示の視点の変更、時間経過と共に変化する処理実行状態及び通信状態の表示の開始或いは停止、時間経過と共に変化する処理実行状態及び通信状態の表示の早送り或いは巻き戻し、処理実行状態の表示及び通信状態の表示の何れか一方のみの表示、のうち少なくとも何れかを行うことを特徴とする請求項３又は４に記載の分散処理状態可視化システム。
【請求項６】
分散処理システムを構成するノードの処理状態を表示する分散処理状態可視化装置であって、
分散処理システムのノードの通信状態を示す通信ログ、及び分散処理システムのノードの処理実行状態を示す実行ログを同期させて、同期済みログを生成するログ同期手段と、
前記ログ同期手段で生成された同期済みログに基づいて表示画像を生成し、当該表示画像を可視化デバイスに表示するログ表示処理手段と、
を備えることを特徴とする分散処理状態可視化装置。
【請求項７】
複数のノードによって構成された分散処理システムの状態を表示する分散処理状態可視化プログラムであって、
コンピュータを、
分散処理システムのノードの通信状態を示す通信ログ、及び分散処理システムのノードの処理実行状態を示す実行ログを同期させて、同期済みログを生成するログ同期手段と、
前記ログ同期手段で生成された同期済みログに基づいて表示画像を生成し、当該表示画像を可視化デバイスに表示するログ表示処理手段、
として動作させることを特徴とする分散処理状態可視化プログラム。
【請求項８】
分散処理システムを構成するノードの処理状態を表示する分散処理状態可視化システムで実行される分散処理状態可視化方法であって、
分散処理システムのノードの通信状態を示す通信ログを取得する通信ログ取得ステップと、
前記通信ログ取得ステップで取得された通信ログを収集する通信ログ収集ステップと、
分散処理システムのノードの処理実行状態を示す実行ログを取得する実行ログ取得ステップと、
前記実行ログ取得ステップで取得された実行ログを収集する実行ログ収集ステップと、
前記通信ログ収集ステップで収集された通信ログ、及び前記実行ログ収集ステップで収集された実行ログを同期させて、同期済みログを生成するログ同期ステップと、
前記ログ同期ステップで生成された同期済みログに基づいて表示画像を生成し、当該表示画像を可視化デバイスに表示するログ表示処理ステップと、
を含むことを特徴とする分散処理状態可視化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードによって構成された分散処理システムの状態を表示する分散処理状態可視化システム、分散処理状態可視化装置、分散処理状態可視化プログラム及び分散処理状態可視化方法に関する。
【背景技術】
【０００２】
複数のノードによって並列して処理を行う分散処理システムがある。このような分散処理システムにおいては、ネットワークやノードの状態を監視することが重要になっており、監視を行うアプリケーションとして、例えば、Ｇａｎｇｌｉａ（非特許文献１）やＣａｃｔｉ(非特許文献２)がある。また、分散処理フレームワークＨａｄｏｏｐのログを分析して表示するツールとして、ＳＡＬＳＡ(非特許文献３)やＭｏｃｈｉ(非特許文献４)が存在する。
【０００３】
また、可視化アプリケーションをデバッグツールとして用いた実装法に関する技術が、例えば、特許文献１に開示されている。この特許文献１には、可視化アプリケーションが、分散環境においてランタイム診断を行うことが記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】http://ganglia.info/
【非特許文献２】http://www.cacti.net/
【非特許文献３】J.Tan,  X.Pan,  S.Kavulya,  R.Gandhi,and  P.Narasimhan.  SALSA:Analyzing  logs  as  state  machines.  In  USENIX  Workshop  on  Analysis  of  System  Logs,  San  Diego,  CA,  Dec  2008.
【非特許文献４】J.Tan,  X.Pan,  S.Kavulya,  R.Gandhi,  P.Narasimhan.  Mochi:Visual  Log-Analysis  Based  Tools  for  Debugging  Hadoop.  HotCloud,  San  Diego,  CA,  Jun  2009.
【特許文献】
【０００５】
【特許文献１】特開２０１０−１９８６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載された発明を用いて、分散処理システムの分散処理プログラムのデバッグを行おうとしても、ネットワークやノードの状態を適切に確認することができず、デバックが困難であるといった問題がある。具体的には、分散処理システムでは、例えば、１００台を超えるサーバ装置で構成されるクラスタで並列プログラムを実行するため、表形式を用いて、表の各行にサーバの状態を表現しようとしても画面上に全てを表示することは困難である。このため、ネットワークやノードの状態を適切に確認することができる可視化システムが望まれている。
【０００７】
そこで本発明は、複数のノードによって構成された分散処理システムの状態を、より好適に表示可能な分散処理状態可視化システム、分散処理状態可視化装置、分散処理状態可視化プログラム及び分散処理状態可視化方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る分散処理状態可視化システムは、複数のノードによって構成された分散処理システムの状態を表示する分散処理状態可視化システムであって、分散処理システムのノードの通信状態を示す通信ログを取得する通信ログ取得手段と、通信ログ取得手段で取得された通信ログを収集する通信ログ収集手段と、分散処理システムのノードの処理実行状態を示す実行ログを取得する実行ログ取得手段と、実行ログ取得手段で取得された実行ログを収集する実行ログ収集手段と、通信ログ収集手段で収集された通信ログ、及び実行ログ収集手段で収集された実行ログを同期させて、同期済みログを生成するログ同期手段と、ログ同期手段で生成された同期済みログに基づいて表示画像を生成し、当該表示画像を可視化デバイスに表示するログ表示処理手段と、を備えることを特徴とする。
【０００９】
また、本発明に係る分散処理状態可視化方法は、分散処理システムを構成するノードの処理状態を表示する分散処理状態可視化システムで実行される分散処理状態可視化方法であって、分散処理システムのノードの通信状態を示す通信ログを取得する通信ログ取得ステップと、通信ログ取得ステップで取得された通信ログを収集する通信ログ収集ステップと、分散処理システムのノードの処理実行状態を示す実行ログを取得する実行ログ取得ステップと、実行ログ取得ステップで取得された実行ログを収集する実行ログ収集ステップと、通信ログ収集ステップで収集された通信ログ、及び実行ログ収集ステップで収集された実行ログを同期させて、同期済みログを生成するログ同期ステップと、ログ同期ステップで生成された同期済みログに基づいて表示画像を生成し、当該表示画像を可視化デバイスに表示するログ表示処理ステップと、を含むことを特徴とする。
【００１０】
これらの発明では、分散処理システムのノードの通信状態を示す通信ログが収集され、また、分散処理システムのノードの処理実行状態を示す実行ログが収集される。そして、通信ログと実行ログとを同期させた同期済みログが生成され、この同期済みログに基づいて生成された表示画像が可視化デバイスに表示される。このように、通信ログと実行ログとを同期させ、この同期済みログに基づいて表示画像を生成することにより、分散処理システムにおける通信状態と各ノードの処理実行状態とを同時に表示可能となり、分散処理システムの状態をより好適に表示することができる。
【００１１】
また、ログ同期手段は、通信ログに含まれる時刻情報、及び実行ログに含まれる時刻情報に基づいて、通信ログと実行ログとを用いて同時刻のデータを統合することにより同期済みログを生成する、ことが好ましい。この場合には、同時刻の通信ログと実行ログとが統合され、同時刻の通信ログと実行ログとを表示することが可能となる。
【００１２】
また、ログ表示処理手段は、表示画像として、球面状にノードを配置し、配置したノード間を線分で接続し、線分上に送受信されるデータ量を表すデータ量表示を付加した画像を生成するものであり、表示画像は、球面状に配置したノードの視覚効果の変化によって実行ログが示す処理実行状態が表され、データ量表示の視覚効果の変化によって通信ログが示す通信状態が表される、ことが好ましい。これにより、分散処理システムの通信状態及び処理実行状態を視覚的に分り易く表示することができる。
【００１３】
また、表示画像は、球面状に配置したノードの色によって処理実行状態が表され、データ量表示が線分上を流れるときの当該データ量表示の大きさによってデータ量が表される、ことが好ましい。この場合には、分散処理システムの通信状態及び処理実行状態を簡易な方法で視覚的により一層分り易く表示することができる。
【００１４】
また、ログ表示処理手段は、表示画像における、表示の視点の変更、時間経過と共に変化する処理実行状態及び通信状態の表示の開始或いは停止、時間経過と共に変化する処理実行状態及び通信状態の表示の早送り或いは巻き戻し、処理実行状態の表示及び通信状態の表示の何れか一方のみの表示、のうち少なくとも何れかを行うことが好ましい。この場合には、ユーザ操作に基づいてユーザの注目したい部分のみを選択的に表示することができる。
【００１５】
また、本発明に係る分散処理状態可視化装置は、分散処理システムを構成するノードの処理状態を表示する分散処理状態可視化装置であって、分散処理システムのノードの通信状態を示す通信ログ、及び分散処理システムのノードの処理実行状態を示す実行ログを同期させて、同期済みログを生成するログ同期手段と、ログ同期手段で生成された同期済みログに基づいて表示画像を生成し、当該表示画像を可視化デバイスに表示するログ表示処理手段と、を備えることを特徴とする。
【００１６】
また、本発明に係る分散処理状態可視化プログラムは、複数のノードによって構成された分散処理システムの状態を表示する分散処理状態可視化プログラムであって、コンピュータを、分散処理システムのノードの通信状態を示す通信ログ、及び分散処理システムのノードの処理実行状態を示す実行ログを同期させて、同期済みログを生成するログ同期手段と、ログ同期手段で生成された同期済みログに基づいて表示画像を生成し、当該表示画像を可視化デバイスに表示するログ表示処理手段、として動作させることを特徴とする。
【００１７】
これらの発明では、通信ログと実行ログとを同期させた同期済みログが生成され、この同期済みログに基づいて生成された表示画像が可視化デバイスに表示される。このように、通信ログと実行ログとを同期させ、この同期済みログに基づいて表示画像を生成することにより、分散処理システムにおける通信状態と各ノードの処理実行状態とを同時に表示可能となり、分散処理システムの状態をより好適に表示することができる。
【発明の効果】
【００１８】
本発明によれば、複数のノードによって構成された分散処理システムの状態をより好適に表示することができる。
【図面の簡単な説明】
【００１９】
【図１】実施形態に係る分散処理状態可視化システムの全体構成図である。
【図２】通信ログの具体例を示す図である。
【図３】実行ログの具体例を示す図である。
【図４】同期済みログの具体例を示す図である。
【図５】ログ表示処理部が作成する表示画像の概念を示す図である。
【図６】ログ表示処理部が作成する表示画像の具体例を示す図である。
【図７】分散処理状態可視化システムで行われる処理の流れを示すシーケンス図である。
【図８】ログ表示処理部が作成する表示画像を示す図である。
【図９】ＷｏｒｄＣｏｕｎｔプログラム実行時における各状態の測定結果を示す図である。
【図１０】ＷｏｒｄＣｏｕｎｔ１のプログラムを実行させたときの状態（ｂ）における表示画像を示す図である。
【図１１】ＷｏｒｄＣｏｕｎｔ２のプログラムを実行させたときの状態（ｂ）における表示画像を示す図である。
【図１２】ＷｏｒｄＣｏｕｎｔ３のプログラムを実行させたときの状態（ｂ）における表示画像を示す図である。
【図１３】視点を変更したときの表示画像を示す図である。
【図１４】分散処理状態可視化プログラムを示す図である。
【発明を実施するための形態】
【００２０】
添付図面を参照しながら本発明の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
【００２１】
［分散処理状態可視化システムの全体構成］
図１は、本実施形態に係る分散処理状態可視化システムの全体構成図である。分散処理状態可視化システム１は、通信ログ蓄積部１１，１２，１３、通信ログ取得サーバ（通信ログ取得手段）２１，２２，２３、通信ログ収集サーバ（通信ログ収集手段）３０、実行ログ蓄積部４１，４２，４３、実行ログ取得サーバ（実行ログ取得手段）５１，５２，５３、実行ログ収集サーバ（実行ログ収集手段）６０、表示クライアント７０、及びディスプレイ（可視化デバイス）８０を含んで構成されている。分散処理システムＡは、複数のノードによって構成され、これらの複数のノードによって並列して処理を行うシステムである。なお、表示クライアント７０は、本発明に係る分散処理状態可視化装置に相当する。
【００２２】
通信ログ蓄積部１１，１２，１３は、Ｈａｄｏｏｐ等の分散処理システムにおける通信ログをハードディスク等の記憶媒体に蓄積するデータベースである。図１では、便宜上、３台の通信ログ蓄積部１１，１２，１３のみ図示するが、実際には、分散処理状態可視化システム１内には１００〜１０００台規模の通信ログ蓄積部が備えられている。また、以降、通信ログ蓄積部１１，１２，１３を総称して、「通信ログ蓄積部１０」と呼ぶ。また、通信ログ蓄積部１０内に蓄積される通信ログの取得方法は、例えば、Ｈａｄｏｏｐのデータノードの機能を用いる。これにより、分散処理システムＡ上のデータが実際にどのノードからどのノードに書き込まれたか、或いは読み込まれたかについての情報を、通信ログとして得ることができる。
【００２３】
通信ログは、分散処理システムＡ内の通信状態を示すものであり、時刻、送信元ＩＰアドレス、送信先ＩＰアドレス、送受信されるデータのデータサイズの情報を含んでいる。ここで、図２に通信ログの具体例を示す。図２に示す通信ログの例において、通信ログ（１）は、２０１１年１月１３日０時０分０秒に、ＩＰアドレスがＩＰ１のノードからＩＰアドレスがＩＰ２のノードへ１０００バイトのデータが送信されたことを示している。また、通信ログ（２）は、２０１１年１月１３日０時１０分０秒に、ＩＰアドレスがＩＰ２のノードからＩＰアドレスがＩＰ３のノードへ２０００バイトのデータが送信されたことを示している。また、通信ログ（３）は、２０１１年１月１３日２３時５９分５９秒に、ＩＰアドレスがＩＰ３のノードからＩＰアドレスがＩＰ１のノードへ５５５５バイトのデータが送信されたことを示している。
【００２４】
通信ログ取得サーバ２１，２２，２３は、通信ログ蓄積部１０から通信ログを取得するものである。図１では、便宜上、３台の通信ログ取得サーバ２１，２２，２３のみ図示するが、実際には、分散処理状態可視化システム１内には１００〜１０００台規模の通信ログ取得サーバが備えられている。また、以降、通信ログ取得サーバ２１，２２，２３を総称して、「通信ログ取得サーバ２０」と呼ぶ。通信ログ取得サーバ２０は、取得した通信ログを通信ログ収集サーバ３０へ送信する。
【００２５】
通信ログ収集サーバ３０は、通信ログ取得サーバ２０から送信された通信ログを収集するものである。通信ログ収集サーバ３０は、分散処理状態可視化システム１内に１台だけ備えられており、通信ログが一箇所（通信ログ収集サーバ３０）に集められることとなる。通信ログ収集サーバ３０は、収集した通信ログを表示クライアント７０へ送信する。なお、通信ログを表示クライアント７０に送信するときに、通信ログの数が膨大である場合には、通信ログの中から、分散処理システムＡの通信状態を表示する際に必要な一部分のデータのみを抽出し、表示クライアント７０に送信することで、通信ログに対する処理の高速化を図ることができる。例えば、通信ログとして、Ｈａｄｏｏｐのデータノードのログを用いる場合は、時刻と送信元と送信先とバイト数のみを抽出する処理を行うとよい。
【００２６】
実行ログ蓄積部４１，４２，４３は、Ｇａｎｇｌｉａ等の分散処理システムにおける実行ログを蓄積するデータベースである。図１では、便宜上、３台の実行ログ蓄積部４１，４２，４３のみ図示するが、実際には、分散処理状態可視化システム１内には１００〜１０００台規模の実行ログ蓄積部が備えられている。また、以降、実行ログ蓄積部４１，４２，４３を総称して、「実行ログ蓄積部４０」と呼ぶ。また、実行ログ蓄積部４０内に蓄積される実行ログの取得方法は、例えば、ＧａｎｇｌｉａのＲＲＤ（Round  Robin  Database）を用いる。これにより、分散処理システムＡを構成する各ノードのＣＰＵ使用率を実行ログとして得ることができる。ここでは、Ｇａｎｇｌｉａの収集機能を用いることで、実行ログ蓄積部４０が１０００台規模のシステムであっても実行ログを収集することができる。
【００２７】
実行ログは、分散処理システムＡの処理実行状態を示すものであり、例えば、「時刻、ノード識別子、ＣＰＵ使用率」を含んでいる。なお、ノード識別子としてＩＰアドレスを用いるものとする。但し、ノード識別子として、ＩＰアドレス以外のものを用いてもよい。ここで、図３に実行ログの具体例を示す。図３に示す実行ログの例において、実行ログ（１）は、２０１１年１月１３日０時０分０秒に、ノード識別子がＩＰ４のノードのＣＰＵ使用率が５％の状態を示している。また、実行ログ（２）は、２０１１年１月１３日０時１０分０秒に、ノード識別子がＩＰ６のノードのＣＰＵ使用率が１００％の状態を示している。また、実行ログ（３）は、２０１１年１月１３日２３時５９分５９秒に、ノード識別子がＩＰ５のノードのＣＰＵ使用率が３０％の状態を示している。なお、実行ログが、「時刻、ノード識別子、メモリ使用量」の情報を含むものであってもよく、実行ログとして、「時刻、ノード識別子、ＣＰＵ使用率」及び「時刻、ノード識別子、メモリ使用量」の両方を用いてもよい。実行ログが、「時刻、ノード識別子、メモリ使用量」の場合であっても、実行ログは、「時刻、ノード識別子、ＣＰＵ使用率」の場合と同様に、時刻、ノード識別子及び数値データ（メモリ使用率）の組からなる。なお、実行ログにノード識別子を含める以外にも、個々の実行ログに付されたファイル名によって、ノードを識別することもできる。
【００２８】
実行ログ取得サーバ５１，５２，５３は、実行ログ蓄積部４０から実行ログを取得するものである。図１では、便宜上、３台の実行ログ取得サーバ５１，５２，５３のみ図示するが、実際には、分散処理状態可視化システム１内には１００〜１０００台規模の実行ログ取得サーバが備えられている。また、以降、実行ログ取得サーバ５１，５２，５３を総称して、「実行ログ取得サーバ５０」と呼ぶ。実行ログ取得サーバ５０は、取得した実行ログを実行ログ収集サーバ６０へ送信する。
【００２９】
実行ログ収集サーバ６０は、実行ログ取得サーバ５０から送信された実行ログを収集するものである。実行ログ収集サーバ６０は、分散処理状態可視化システム１内に１台だけ備えられており、実行ログが一箇所（実行ログ収集サーバ６０）に集められることとなる。実行ログ収集サーバ６０は、収集した実行ログを表示クライアント７０へ送信する。なお、実行ログを表示クライアント７０に送信するときに、実行ログの数が膨大である場合には、実行ログの中から、分散処理システムＡの処理実行状態を表示する際に必要な一部分のデータのみを抽出し、表示クライアント７０に送信することで、実行ログに対する処理の高速化を図ることができる。例えば、実行ログとして、ＧａｎｇｌｉａのＲＲＤを用いる場合は、時刻とノード識別子とＣＰＵ使用率のみを抽出する処理を行うとよい。
【００３０】
表示クライアント７０は、通信ログ収集サーバ３０から取得した通信ログ、及び実行ログ収集サーバ６０から取得した実行ログに基づいて、分散処理システムＡの通信状態及び処理実行状態を示す表示画像を生成し、生成した表示画像をディスプレイ８０に表示するものである。より詳細には、表示クライアント７０は、ログ同期部（ログ同期手段）７１、及びログ表示処理部（ログ表示処理手段）７２を含んで構成される。
【００３１】
ログ同期部７１は、通信ログに含まれる時刻情報、及び実行ログに含まれる時刻情報に基づいて、これらのログを時系列順に並べる。そして、ログ同期部７１は、通信ログと実行ログとを用いて同時刻のデータを統合することにより同期済みログを生成する。ここでは、秒単位で同時刻か否かを判断するものとする。なお、秒単位に限らず、分単位、或いはミリ秒単位等で同時刻であるか否かの判断を行ってもよい。ここで、図４に、同期済みログの具体例を示す。なお、図４は、時刻が２０１１年１月１３日０時０分０秒の同期済みログを示す。図４に示す例では、ログ同期部７１は、通信ログ収集サーバ３０から取得した通信ログ（１）と、実行ログ収集サーバ６０から取得した実行ログ（１）とを統合する。このようにして、ログ同期部７１は、時刻毎に同期済みログを作成する。
【００３２】
なお、通信ログや実行ログが、ログ同期部７１において処理しきれないデータサイズの場合は、例えば、ファイル分割を行って順次ログ同期部７１に読み込ませたり、通信ログや実行ログを数秒単位で間引いて、ログ同期部７１で読み込ませたりすることができる。また、ログ同期部７１が通信ログと実行ログとを読み込むときに、所定の時間区間を対象とする場合、時系列順に並べられた通信ログや実行ログを過去のログから順に読み込む。そして、読み込んだログに含まれる時刻が所定の時間区間内か否かを判定し、所定の時間区間内から所定の時間外となった場合に、そこで読み込みを停止し、次の読み込みに備える。そして、読み込まれた所定の時間区間内の通信ログ及び実行ログに基づいて、ログ表示処理部７２（詳しくは後述する）が、所定の時間区間内における分散処理システムＡの通信状態及び処理実行状態の変動を示す表示画像をディスプレイ８０に表示させる。そして、所定の時間区間内における分散処理システムＡの状態の変動を示す表示が終了するときに、再度、ログ同期部７１が、次の所定の時間区間についての通信ログ及び実行ログの読み込みを開始することもできる。
【００３３】
ログ表示処理部７２は、ログ同期部７１で生成された同期済みログに基づいて表示画像を生成し、当該表示画像をディスプレイ８０に表示する。
【００３４】
ここで、ログ表示処理部７２が作成する、分散処理システムＡの通信状態及び処理実行状態を示す表示画像の詳細について説明する。まず、ログ表示処理部が作成する表示画像の概念について説明する。図５は、ログ表示処理部が作成する表示画像の概念を示す図である。なお、図５では、分散処理システムＡ（クラスタ）がラックＲＡとラックＲＢとより構成され、ラックＲＡがノードＹＡ１〜ＹＡ４より構成され、ラックＲＢがノードＹＢ１〜ＹＢ４より構成されている様子を示す。図５に示すように、ログ表示処理部７２は、ラックＲＡ，ＲＢ毎に、ノードＹＡ１〜ＹＡ４及びノードＹＢ１〜ＹＢ４をそれぞれ一まとめとしてノード集合体ＹＡ，ＹＢを形成する。また、これらの各ノードＹＡ１〜ＹＡ４，ＹＢ１〜ＹＢ４を、点Ｘを中心とする球面状に配置する。なお、ログ表示処理部７２が生成する表示画像は、立体的な画像となっている。そして、ノード集合体ＹＡとノード集合体ＹＢとを、点Ｘを通る線分Ｚｂで接続する。また、線分Ｚｂのうち、ノード集合体ＹＡ側の端部と、各ノードＹＡ１〜ＹＡ４とを線分Ｚａで接続する。同様に、線分Ｚｂのうち、ノード集合体ＹＢ側の端部と、各ノードＹＢ１〜ＹＢ４とを線分Ｚａで接続する。このように、各ノードＹＡ１〜ＹＡ４，ＹＢ１〜ＹＢ４を、線分Ｚａ，Ｚｂによって構成される線分Ｚによって接続された画像を生成する。線分Ｚａは、ラック内のノードを接続する通信線を示し、線分Ｚｂは、ラック間を接続する通信線を示す。
【００３５】
また、ログ表示処理部７２は、同期済みログに含まれるノード識別子とＣＰＵ使用率とに基づいて、表示画像のノードＹＡ１〜ＹＡ４，ＹＢ１〜ＹＢ４の視覚効果を変化させる。例えば、ＣＰＵ使用率が高いノードに赤い色を付け、ＣＰＵ使用率が低いノードに白い色を付ける。ノードの色は、ＣＰＵ使用率に基づいて赤から白へ段階的に変化する。この色によって、各ノードの処理実行状態が表される。また、表示画像に、線分Ｚ上を流れるデータ（データ量表示）ＤＡ，ＤＢを追加する。これらのデータＤＡ，ＤＢは球によって表される。このデータＤＡ，ＤＢは、各ノードＹＡ１〜ＹＡ４，ＹＢ１〜ＹＢ４間で送受信されるデータ量を表すものであり、同期済みログに含まれるデータの送信元ＩＰアドレスと、送信先ＩＰアドレスと、データサイズとに基づいて追加する。なお、データサイズに基づいて、ノード間を流れるデータＤＡ，ＤＢの球の大きさを大きくする。即ち、図５に示す例では、データＤＡよりも、データＤＢの方がデータ量が大きい。また、データＤＡは、ラックＲＡ内で転送されている状態のデータを表し、データＤＢは、ラックＲＡからラックＲＢへ転送中のデータを表す。このデータＤＡ，ＤＢの球の流れと大きさとによって、分散処理システムＡの通信状態が表される。また、線分Ｚａ上を流れるデータＤＡの球を紫色で表示し、線分Ｚｂ上を流れデータＤＢの球を白色で表示する。これにより、ラック内を流れるデータと、ラック間を流れるデータとを球の色によって視覚的に見分けることができる。そして、ログ表示処理部７２は、図５に示すような表示画像を、各時刻毎（秒単位）に作成する。
【００３６】
次に、ログ表示処理部７２が作成する、ある時刻における分散処理システムＡの通信状態及び処理実行状態を示す表示画像の具体例について説明する。図６は、ログ表示処理部が作成する表示画像の具体例を示す図である。図６に示す例では、分散処理システムＡが、１０００台規模のノードＹａによって構成されている場合を示し、ラック毎にまとめられた各ノード集合体Ｙは、それぞれ約１００台のノードＹａによって構成されているものとする。ログ表示処理部７２は、各ノードＹａを、点Ｘを中心とする球面状に配置し、立体的な画像を生成する。このようにして生成された表示画像によって、１０００台規模のノード数を有する分散処理システムＡの通信状態及び処理実行状態を表すことができる。
【００３７】
ここで、表示クライアント７０における通信ログと実行ログのデータの取り扱いとして、オフラインで表示画像を生成して表示する場合には、表示クライアント７０に備えられた図示しないメモリ上に全データをロードして表示画像の生成を行い、オンラインで表示画像を生成して表示する場合には、表示クライアント７０に備えられた図示しないメモリ上に順次データをロードしながら表示を行う。
【００３８】
ディスプレイ８０は、表示クライアント７０によって作成された表示画像を表示するものである。
【００３９】
［処理の流れ］
次に、分散処理状態可視化システム１で行われる処理の流れを説明する。図７は、分散処理状態可視化システムで行われる処理の流れを示すシーケンス図である。図７に示すように、通信ログ蓄積部１０が、分散処理システムの通信ログを蓄積する（ステップＳ１０１）。次に、通信ログ取得サーバ２０が、通信ログ蓄積部１０に蓄積された通信ログを取得し（ステップＳ１０２：通信ログ取得ステップ）、取得した通信ログを通信ログ収集サーバ３０へ送信する（ステップＳ１０３）。そして、通信ログ収集サーバ３０は、通信ログ取得サーバ２０から送信された通信ログを収集し（ステップＳ１０４：通信ログ収集ステップ）、収集した通信ログを表示クライアント７０へ送信する（ステップＳ１０５）。
【００４０】
次に、実行ログ蓄積部４０が、分散処理システムの実行ログを蓄積する（ステップＳ１０６）。そして、実行ログ取得サーバ５０が、実行ログ蓄積部４０に蓄積された実行ログを取得し（ステップＳ１０７：実行ログ取得ステップ）、取得した実行ログを実行ログ収集サーバ６０送信する（ステップＳ１０８）。実行ログ収集サーバ６０は、実行ログ取得サーバ５０から送信された実行ログを収集し（ステップＳ１０９：実行ログ収集ステップ）、収集した実行ログを表示クライアント７０へ送信する（ステップＳ１１０）。なお、ステップＳ１０１〜Ｓ１０５までの処理と、ステップＳ１０６〜Ｓ１１０までの処理とは、並列して行う。
【００４１】
次に、表示クライアント７０は、通信ログ収集サーバ３０から送信された通信ログ、及び実行ログ収集サーバ６０から送信された実行ログを取得する（ステップＳ１１１）。そして、表示クライアント７０は、取得した通信ログ及び実行ログを同期させ、同期済みログを生成する（ステップＳ１１２：ログ同期ステップ）。
【００４２】
次に、表示クライアント７０は、同期済みログに基づいて、分散処理システムＡの通信状態及び処理実行状態を示す表示画像を生成し（ステップＳ１１３：ログ表示処理ステップ）、生成した表示画像をディスプレイ８０に表示する（ステップＳ１１４：ログ表示処理ステップ）。これにより、分散処理システムＡの通信状態及び処理実行状態をユーザに視覚的に提示することができる。
【００４３】
［分散処理状態可視化システムの用途の具体例］
次に、分散処理システムの通信状態及び処理実行状態を表示可能な分散処理状態可視化システム１の用途の具体例について説明する。ここでは、分散処理状態可視化システム１を、ＷｏｒｄＣｏｕｎｔプログラムを実行する分散処理システムに適用し、分散処理状態可視化システム１による表示結果に基づいて分散処理システムのチューニングを行う場合について説明する。なお、ＷｏｒｄＣｏｕｎｔプログラムとは、ファイル内に存在するワードの数をカウントするアプリケーションである。また、ここでは、ＭａｐＲｅｄｕｃｅプログラムを用いてファイル内に存在するワードの数をカウントするプログラムをチューニングする例を示す。
【００４４】
このような、ワードの数をカウントするアプリケーションを、通常のＭａｐＲｅｄｕｃｅプログラムで作成した場合は３つの状態変化を経てプログラムが実行される。即ち、３つの状態とは、Ｍａｐフェーズ(データの読み出しとローカルなカウント)、Ｒｅｄｕｃｅフェーズ１(マージ等による前処理)、Ｒｅｄｕｃｅフェーズ２(結果の書き込み)である。Ｍａｐフェーズのときに、分散処理状態可視化システム１を用いて通信状態及び処理実行状態を表示すると、図８（ａ）に示す状態となる。図８（ａ）では、Ｍａｐフェーズのときに、データが送受信されている様子が示されている。また、Ｒｅｄｕｃｅフェーズ１のときに、分散処理状態可視化システム１を用いて通信状態及び処理実行状態を表示すると、図８（ｂ）に示す状態となる。図８（ｂ）では、Ｍａｐフェーズの通信が終了し、しばらくの間無通信状態が続いている様子が示されている。なお、この無通信状態は、Ｒｅｄｕｃｅｒ数が少ない、又はＣｏｍｂｉｎｅｒが無い場合に長くなる。また、Ｒｅｄｕｃｅフェーズ２のときに、分散処理状態可視化システム１を用いて通信状態及び処理実行状態を表示すると、図８（ｃ）に示す状態となる。図８（ｃ）では、Ｒｅｄｕｃｅｒでデータが送受信されている様子を示している。なお、この処理にかかる時間は、結果の書き込みやＲｅｄｕｃｅｒ数が多いと長くなる。なお、図８（ａ）、図８（ｂ）、図８（ｃ）に示す例では、１２０台のノードが４つの集合体に集まった例を示す。また、通信ログとしては、ＨａｄｏｏｐのデータノードがＨＤＦＳ(Hadoop  Distributed  File  System)での読み書きに関するデータを用い、実行ログとしては、ＧａｎｇｌｉａのＲＲＤのＣＰＵ使用率に関するデータを用いた。通信状態については、ＨＤＦＳからの読み込みとＨＤＦＳへの書き込みを、ノード間を接続する線分上の球で表す。即ち、ログ表示処理部７２によって生成される表示画像を確認することによって、ＷｏｒｄＣｏｕｎｔプログラムの実行時の状態を、図８（ａ），図８（ｂ），図８（ｃ）に示す３つの状態に分類することができる。
【００４５】
また、ＷｏｒｄＣｏｕｎｔプログラムにおいて、通常のＭａｐＲｅｄｕｃｅフレームワークを用いてプログラムを作成した場合、Ｃｏｍｂｉｎｅｒを用いない場合とＣｏｍｂｉｎｅｒを用いた場合を比較した際には、Ｒｅｄｕｃｅフェーズ１の状態が長くなる。即ち、分散処理状態可視化システム１によって生成された表示画像を確認することにより、この状態が比較的長いことが明らかになるので、Ｃｏｍｂｉｎｅｒを利用することでプログラムの実行速度を向上できる可能性があることが分かる。Ｃｏｍｂｉｎｅｒの有無による、プログラムの実行速度の変化の具体例について、詳しくは、図９〜図１１を用いて後述する。
【００４６】
また、Ｒｅｄｕｃｅｒの数が１の場合と、Ｒｅｄｕｃｅｒの数が１００の場合とを比較した際には、Ｒｅｄｕｃｅフェーズ１の状態が長くなる。即ち、分散処理状態可視化システム１によって生成された表示画像を確認することにより、この状態が長いことが明らかになり、またＣＰＵ使用率から特定のマシンに負荷が集中にしていることも明らかになるので、Ｒｅｄｕｃｅｒ数を増加させることでプログラムの実行速度を向上できる可能性があることが分かる。Ｒｅｄｕｃｅｒ数による、プログラムの実行速度の変化の具体例について、詳しくは、図９、図１１及び図１２を用いて後述する。
【００４７】
次に、ＷｏｒｄＣｏｕｎｔプログラムに対するチューニング例を示す。このＷｏｒｄＣｏｕｎｔプログラムは、データの中に同一単語がいくつあるかをカウントアップするプログラムである。このアプリケーションを、通常のＭａｐとＲｅｄｕｃｅからなるＭａｐＲｅｄｕｃｅプログラムで作成する。まず、Ｍａｐｐｅｒ数１０００個、Ｒｅｄｕｃｅｒ数１個、Ｃｏｍｂｉｎｅｒ無しの場合におけるＷｏｒｄＣｏｕｎｔ１のプログラムを作成した。そして、ＷｏｒｄＣｏｕｎｔ１のプログラムを実行させたときの、Ｍａｐフェーズでデータが送受信されている状態（以下「状態（ａ）」と呼ぶ）の時間、Ｍａｐフェーズの通信終了後の無通信状態（以下「状態（ｂ）」と呼ぶ）の時間、及びＲｅｄｕｃｅｒでデータが送受信されている状態（以下「状態（ｂ）」と呼ぶ）の時間と、各状態（ａ），（ｂ），（ｃ）の合計時間とを計測する。この計測結果を、図９に示す。図９に示すように、ＷｏｒｄＣｏｕｎｔ１のプログラムを実行させると、状態（ａ）は２７秒、状態（ｂ）は１６７秒、状態（ｃ）は２秒、状態（ａ）〜（ｃ）の合計時間は３分１６秒となった。また、図１０に、分散処理状態可視化システム１によって生成された、ＷｏｒｄＣｏｕｎｔ１のプログラムを実行させたときの状態（ｂ）における表示画像を示す。
【００４８】
ＷｏｒｄＣｏｕｎｔ１のプログラムでは、Ｒｅｄｕｃｅｒ数が少なく、Ｃｏｍｂｉｎｅｒが無いため、図１０に示すように、一部のノードに負荷が集中している（一部のノードの色が濃い）ことが分かる。また、図９に示すように、状態（ｂ）の時間は１６７秒であり、合計時間も３分以上かかっている。この原因としては、分散処理状態可視化システム１の表示結果より、ＣＰＵ使用率もさほど高くない（ノードの色が白い）ことから、Ｒｅｄｕｃｅｒへの入力データサイズが大きいことで処理が滞っていることが理由として考えられる。
【００４９】
そこで、ＷｏｒｄＣｏｕｎｔ１のプログラムを改良し、ＷｏｒｄＣｏｕｎｔ２のプログラムを作成した。ＷｏｒｄＣｏｕｎｔ２のプログラムは、Ｍａｐｐｅｒ数１０００個、Ｒｅｄｕｃｅｒ数１個、Ｃｏｍｂｉｎｅｒ有りの場合である。そして、ＷｏｒｄＣｏｕｎｔ２のプログラムを実行させたときの状態（ａ）〜（ｃ）の時間と、各状態（ａ）〜（ｃ）の合計時間とを計測した。この計測結果を、図９に示す。図９に示すように、ＷｏｒｄＣｏｕｎｔ２のプログラムを実行させると、状態（ａ）は２８秒、状態（ｂ）は７５秒、状態（ｃ）は６秒、状態（ａ）〜（ｃ）の合計時間は１分４９秒となった。また、図１１に、分散処理状態可視化システム１によって生成された、ＷｏｒｄＣｏｕｎｔ２のプログラムを実行させたときの状態（ｂ）における表示画像を示す。
【００５０】
ＷｏｒｄＣｏｕｎｔ２のプログラムでは、図１１に示すように、ＷｏｒｄＣｏｕｎｔ１のプログラムに比べて負荷が複数のノードに分散されている（ノード全体にわたって色が付いている）ことが確認できる。また、図９に示すように、状態（ｂ）の時間は７５秒、合計時間も２分以内に短縮することができた。
【００５１】
さらに、ＷｏｒｄＣｏｕｎｔ２のプログラムを改良し、ＷｏｒｄＣｏｕｎｔ３のプログラムを作成した。ＷｏｒｄＣｏｕｎｔ３のプログラムは、Ｍａｐｐｅｒ数１０００個、Ｒｅｄｕｃｅｒ数１００個、Ｃｏｍｂｉｎｅｒ有りの場合である。そして、ＷｏｒｄＣｏｕｎｔ３のプログラムを実行させたときの状態（ａ）〜（ｃ）の時間と、各状態（ａ）〜（ｃ）の合計時間とを計測した。この計測結果を、図９に示す。図９に示すように、ＷｏｒｄＣｏｕｎｔ３のプログラムを実行させると、状態（ａ）は２９秒、状態（ｂ）は１４秒、状態（ｃ）は８秒、状態（ａ）〜（ｃ）の合計時間は５１秒となった。また、図１２に、分散処理状態可視化システム１によって生成された、ＷｏｒｄＣｏｕｎｔ３のプログラムを実行させたときの状態（ｂ）における表示画像を示す。
【００５２】
ＷｏｒｄＣｏｕｎｔ３のプログラムでは、図１２に示すように、ＷｏｒｄＣｏｕｎｔ２のプログラムに比べて、より多くのノードに負荷が分散されている（図１１よりも、更にノード全体にわたって色が付いている）ことが確認できる。また、図９に示すように、状態（ｂ）の時間は１４秒、合計時間も１分以内に短縮することができた。
【００５３】
このように分散処理状態可視化システム１を用いることで、分散処理状態可視化システム１で生成された表示画像のうち、ノード間でやり取りされる球（例えば、図６におけるデータＤＡ，ＤＢ）を見ることにより、分散処理システムＡの通信状態を把握することができ、また、分散処理システムＡの状態を、状態（ａ），（ｂ），（ｃ）に分類することができる。また、分散処理状態可視化システム１で生成された表示画像のうち、ノードの色を見ることにより、クラスタ内でＣＰＵの使用率が高いノードがいくつ存在しているかを確認することができる。従って、分散処理状態可視化システム１で生成される表示画像を確認することにより、分散処理システムＡの通信状態やノードのＣＰＵ使用率を確認することができ、この確認結果に基づいてプログラムのチューニングを行うことができる。
【００５４】
本実施形態は以上のように構成され、通信ログ収集サーバ３０によって、分散処理システムＡのノードの通信状態を示す通信ログが収集され、また、実行ログ収集サーバ６０によって、分散処理システムＡのノードの処理実行状態を示す実行ログが収集される。そして、表示クライアント７０のログ同期部７１によって、通信ログと実行ログとを同期させた同期済みログが生成され、ログ表示処理部７２によって、同期済みログに基づいて表示画像が生成される。ログ表示処理部７２は、生成した表示画像をディスプレイ８０に表示する。このように、通信ログと実行ログとを同期させ、同期済みログに基づいて表示画像を生成することにより、分散処理システムにおける通信状態と各ノードの処理実行状態とを同時に表示可能となり、分散処理システムの状態をより好適に表示することができる。
【００５５】
また、通信ログに含まれる時刻情報、及び実行ログに含まれる時刻情報に基づいて、通信ログと実行ログとを用いて同時刻のデータを統合することによって同期済みログを生成する。これにより、同時刻の通信ログと実行ログとが統合され、同時刻の通信ログと実行ログとを表示することが可能となる。
【００５６】
また、ログ表示処理部７２は、表示画像として、球面状にノードを配置し、配置したノード間を線分で接続し、接続した線分上に送受信されるデータ量を表す球を付加した画像を生成する。また、処理実行状態に基づいてノードの色を変化させ、通信状態のデータ量に基づいて線分上を流れる球の大きさを変化させる。これにより、分散処理システムの通信状態及び処理実行状態を、簡易な方法で視覚的に分り易く表示することができる。
【００５７】
以上、本発明を実施形態に基づき具体的に説明したが、本発明は上記実施形態に限定されるものではない。例えばログ表示処理部７２は、マウスのドラッグやキーボードのキー入力等のユーザ操作に基づいて、表示画像の視点を変更することができる。これにより、注目すべき通信状態や処理実行状態の箇所を変更することができる。ここで、図１３（ａ）〜図１３（ｃ）に、視点を変更した表示画像例を示す。図１３（ａ）〜図１３（ｃ）に示すように、表示画像の視点を変更することにより、影に隠れていたノードの状態等を確認することができる。
【００５８】
また、ログ表示処理部７２に、表示画像の時間的変化をある時刻で停止したり、或いは再開したりする機能を付与することもできる。これは、例えば、マウスのクリックやキーボードのキー入力等のユーザ操作に基づいて、ログ表示処理部７２が、表示画像を時間的に変化させる際の時刻のカウントを停止、或いは開始することによって実現できる。これにより、所定の時刻における通信状態や処理実行状態を詳細に分析することができる。
【００５９】
また、ログ表示処理部７２に、表示画像の時間的変化の早送りや巻き戻しを行う機能を付与することもできる。早送りについては、例えば、マウスのクリックやキーボードのキー入力等のユーザ操作に基づいて、ログ表示処理部７２が、表示画像を時間的に変化させる際の時間のカウントを飛ばしながら再生することで実現する。これにより、さらに広い時間区間での通信状態や処理実行状態を把握することができるようになる。巻き戻しについては、例えば、マウスのクリックやキーボードのキー入力等のユーザ操作に基づいて、ログ表示処理部７２が、表示画像を時間的に変化させる際の時間のカウントを減らしながら（時刻がさかのぼるように時間をカウントしながら）再生することで実現する。これにより、通信の経路を逆にたどったりすることができる。
【００６０】
また、ログ表示処理部７２に、通信状態のみ、或いは処理実行状態のみを選択的に表示する機能を付与することもできる。これは、例えば、マウスのクリックやキーボードのキー入力等のユーザ操作に基づいて、ログ表示処理部７２が、表示する内容の選択を行って表示画像を生成することで実現する。例えば、通信状態のみを表示する場合は、ログ表示処理部７２が、線分がよく見える位置にノードを配置した表示画像を生成することで、閲覧する者にとって通信状態が確認しやすくなる。また、処理実行状態のみを表示する場合には、ログ表示処理部７２が、球面状に配置するノードを球の片側に寄せて配置した表示画像を生成することで、閲覧する者にとって処理実行状態が確認しやすくなる。これらにより、それぞれの状態に特化した分析を行うことに利用することもできる。
【００６１】
また、ログ表示処理部７２によって作成される表示画像（例えば、図６等）において、ＩＰアドレスに基づいてラック内のノードＹａの並び順を設定したり、線分Ｚａと線分Ｚｂとの長さによって、実際のラックをまとめるスイッチまでの距離を表現したりすることができる。また、ノードＹａの大きさによって、各ノードの最大処理量（ＣＰＵ使用率の最大値）を表現することもできる。
【００６２】
また、実施形態では、通信ログに含まれる時刻と、実行ログに含まれる時刻とが同じ時刻であるデータを統合して、表示画像を生成するものとしたが、このデータの統合の手法として、例えば、時刻をカウントアップするタイマーを用意し、通信ログを処理するスレッドと実行ログを処理するスレッドとを並列に実行し、タイマーの時刻、通信ログの時刻及び実行ログの時刻が同じになったときに、これらのログを用いて表示画像を生成する処理を行うこともできる。
【００６３】
なお、本実施形態においては、装置として表示クライアント７０を例示したが、これに限るものではなく、表示クライアント７０における各機能を実行するためのプログラムモジュールとして構成してもよい。即ち、図１４に示すように、分散処理状態可視化プログラムＰ１００は、ログ同期部７１に相当するログ同期モジュールＰ１０１（ログ同期手段）、及びログ表示処理部７２に相当するログ表示処理モジュールＰ１０２（ログ表示処理手段）を備える。この分散処理状態可視化プログラムＰ１００を、サーバ装置等のコンピュータシステムに読み込ませることにより、上述の表示クライアント７０と同等の機能を実現することができる。なお、このプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ等の記録媒体に記憶させておき、コンピュータシステムに読み取り可能に構成してもよい。
【符号の説明】
【００６４】
１…分散処理状態可視化システム、１０，１１，１２，１３…通信ログ蓄積部、２０，２１，２２，２３…通信ログ取得サーバ（通信ログ取得手段）、３０…通信ログ収集サーバ（通信ログ収集手段）、４０，４１，４２，４３…実行ログ蓄積部、５０，５１，５２，５３…実行ログ取得サーバ（実行ログ取得手段）、６０…実行ログ収集サーバ（実行ログ収集手段）、７０…表示クライアント、７１…ログ同期部（ログ同期手段）、７２…ログ表示処理部（ログ表示処理手段）、８０…ディスプレイ（可視化デバイス）。
【図１】
2012173779.tif 000003
【図２】
2012173779.tif 000004
【図３】
2012173779.tif 000005
【図４】
2012173779.tif 000006
【図５】
2012173779.tif 000007
【図７】
2012173779.tif 000008
【図９】
2012173779.tif 000009
【図１４】
2012173779.tif 000010
【図６】
2012173779.tif 000011
【図８】
2012173779.tif 000012
【図１０】
2012173779.tif 000013
【図１１】
2012173779.tif 000014
【図１２】
2012173779.tif 000015
【図１３】
2012173779.tif 000016