JP5935622B2 - 情報処理装置,監視装置,情報処理方法,及び監視プログラム - Google Patents
情報処理装置,監視装置,情報処理方法,及び監視プログラム Download PDFInfo
- Publication number
- JP5935622B2 JP5935622B2 JP2012204905A JP2012204905A JP5935622B2 JP 5935622 B2 JP5935622 B2 JP 5935622B2 JP 2012204905 A JP2012204905 A JP 2012204905A JP 2012204905 A JP2012204905 A JP 2012204905A JP 5935622 B2 JP5935622 B2 JP 5935622B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- packet
- task node
- proxy
- wan
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000010365 information processing Effects 0.000 title claims description 28
- 238000012544 monitoring process Methods 0.000 title claims description 8
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000004891 communication Methods 0.000 claims description 24
- 238000012806 monitoring device Methods 0.000 claims description 17
- 238000001514 detection method Methods 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims description 7
- 230000001133 acceleration Effects 0.000 description 179
- 238000012545 processing Methods 0.000 description 151
- 230000005540 biological transmission Effects 0.000 description 79
- 230000004044 response Effects 0.000 description 46
- 238000000034 method Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 29
- 238000012546 transfer Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 13
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/40—Flow control; Congestion control using split connections
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Description
本発明は、情報処理装置,監視装置,情報処理方法,及び監視プログラムに関する。
TCP(Transmission Control Protocol)は、コネクション型のプロトコルである。
TCPでは、データの到達性を保証するため、受信ノードは所定数のデータパケットを受信する度に送信ノードへ受信応答(ACK)を送信する。送信ノードはACKの受信を待って次の所定数のデータパケットを送信する。このように、ACKを用いることによって、TCPを用いた通信では、受信ノードが要求を送信してから、全てのデータパケットを受信するまでに時間を要することがあった。
TCPでは、データの到達性を保証するため、受信ノードは所定数のデータパケットを受信する度に送信ノードへ受信応答(ACK)を送信する。送信ノードはACKの受信を待って次の所定数のデータパケットを送信する。このように、ACKを用いることによって、TCPを用いた通信では、受信ノードが要求を送信してから、全てのデータパケットを受信するまでに時間を要することがあった。
WANを介して通信が行われる場合には、通信に要する時間を短縮するための方法の一つとして、WAN高速化装置を用いることがある。WAN高速化装置は、例えば、LAN等の内部ネットワークとWANとの境界に位置し、内部ネットワーク内の装置のプロキシとして動作する。なお、WAN高速化装置は、TCP/IPモデルのアプリケーション層レベルのプロキシとしてではなく、下位のトランスポート層又はインターネット層レベルでの中継又は転送を行うプロキシである。
図1は、WAN高速化装置の動作例を示す図である。図1では、送信ノードP2と受信ノードP3とは、互いにWANを介して接続される異なるネットワークに属する。WAN高速化装置P1Aは、送信ノードP2が属するネットワークのプロキシである。WAN高速化装置P1Bは、受信ノードP3が属するネットワークのプロキシである。WAN高速化装置P1Aにとっては、内部ネットワークは送信ノードP2が属するネットワークであり、外部ネットワークはWAN及び受信ノードP3が属するネットワークである。WAN高速化装置P1Bにとっては、内部ネットワークは受信ノードP3が属するネットワークであり、外部ネットワークはWAN及び送信ノードP2が属するネットワークである。
WAN高速化装置P1Aは、送信ノードP2からデータパケットを受信する(OP111)と、このデータパケットを受信ノードP3に転送する(OP112)。これとともに、WAN高速化装置P1Aは、受信ノードP3からのACKを待たずに、疑似的にACKパケットを生成して(疑似ACKパケット)、送信ノードP2に送信する(OP112)。送信ノードP2は、疑似ACKパケットを受信すると、次のデータパケットを送信する(OP115)。その後は、同様にして、WAN高速化装置P1Aは、データパケットを受信ノードP3に転送するとともに、疑似ACKを送信ノードP2に送信する。
一方、受信ノードP3のプロキシであるWAN高速化装置P1Bは、WAN経由でデータパケットを受信すると、受信ノードP3に送信する(OP113)。WAN高速化装置P1Bには、送信側のWAN高速化装置P1Aからデータパケットが次々と到着しており(OP116)、これらのデータパケットはWAN高速化装置P1Bにバッファリングされる。受信ノードP3からACKを受信したら(OP114)、WAN高速化装置P1Bは、次のデータパケットをバッファから読み出し、受信ノードP3に送信する(OP117)。通常のTCPを用いた通信では、受信ノードP3がACKを送信してから次のパケットデータを受信するまでには、少なくとも1RTT(Round Trip Time:往復遅延時間)を要していた。これに比べて、WAN高速化装置P1Aが疑似パケットを送信ノードP2に送信することによって、時間を短縮することができる。
WAN高速化装置P1A及びP1Bとの間の通信は、例えば、装置のベンダ独自のプロ
トコルを用いて処理される。また、TCPコネクションの接続や切断時に送信されるSYNパケット、FINパケットについては、WAN高速化装置P1Aによる疑似ACKパケットによる応答はなされず、中継転送される。
トコルを用いて処理される。また、TCPコネクションの接続や切断時に送信されるSYNパケット、FINパケットについては、WAN高速化装置P1Aによる疑似ACKパケットによる応答はなされず、中継転送される。
通常、TCPのプロキシは、パケット転送時に、受信パケットの送信元IPアドレス,送信元TCPポート番号,宛先IPアドレス,宛先TCPポート番号を書き換える。一方、透過プロキシは、受信パケットの送信元IPアドレス,送信元TCPポート番号,宛先IPアドレス,宛先TCPポート番号を書き換えることなく、接続相手になりすまして代理応答する。そのため、透過プロキシは、ノードにプロキシの存在を意識させない。
図1に示される例では、WAN高速化装置の動作の説明の簡略化のため省略したが、通常、TCPを用いた通信において、送信ノードがデータパケットを送信する契機は、受信ノードからの要求の受信となる。例えば、図1に示される例では、OP111の前に、受信ノードP3から送信ノードP2へデータを要求する要求パケットが送信される。図1に示されるOP111からOP118を1つの要求パケットによって要求されるデータの送信処理とすると、OP118の後に次のデータを要求する要求パケットが受信ノードP3から送信され、OP111−OP118の処理が繰り返し実行される。すなわち、次のデータの送信は、送信ノードP2が受信ノードP3からの要求パケットを受信しないと開始されない。
そこで、通信に係る時間を短縮するために、PCからの要求に先行して先読み代理サーバが先読み要求を行う方法がある(例えば、特許文献1)。この方法では、先読み代理サーバは、WEBサーバからWEB閲覧装置に送信されるWEB情報を転送する際に、このWEB情報からWEB閲覧装置が次に要求すると予測される先読み対象のWEB情報を要求するための先読み要求データをWEBサーバに送信する。さらに、先読み代理サーバは、当該先読み要求データに対応するWEB情報を取得し、情報蓄積サーバに先読みしたWEB情報を転送する。情報蓄積サーバは、先読み代理サーバから転送された先読みしたWEB情報を蓄積し、WEB閲覧装置からの要求データに対応するWEB情報をWEB閲覧装置に送信する。
しかしながら、送信ノード又は受信ノードからのデータを監視していても、次に要求されるデータを、受信ノードからの要求を待たずに、送信ノードから読み出せない場合があった。例えば、1つのマスタノードに対して複数のスレーブノードが存在する分散クラスタにおいて、スレーブノード間でデータの送受信が行われる場合である。
本発明の一態様は、受信ノード及び送信ノード間の通信の代理要求及び代理応答を行うシステムにおいて、受信ノードの要求送信からデータ受信完了までの時間を短縮する情報処理装置,監視装置,情報処理方法,及び監視プログラムを提供することを目的とする。
本発明の態様の一つは、
第1のノードと、前記第1のノードとは異なるネットワークに存在し、前記第1のノードからWAN(Wide Area Network)を通じてデータを取得する第2のノードと、前記第1のノード及び第2のノードを管理する管理装置と、を有する情報シス
テムにおいて、WANとの境界に位置する情報処理装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第2のノードへ送信される、前記第2のノードが前記第1のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第1のノードが自装置と同じネットワークに存在する場合に、前記第1のノードに前記要求パケットを送信して代理要求を行う代理要求部と、
を備える情報処理装置である。
第1のノードと、前記第1のノードとは異なるネットワークに存在し、前記第1のノードからWAN(Wide Area Network)を通じてデータを取得する第2のノードと、前記第1のノード及び第2のノードを管理する管理装置と、を有する情報シス
テムにおいて、WANとの境界に位置する情報処理装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第2のノードへ送信される、前記第2のノードが前記第1のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第1のノードが自装置と同じネットワークに存在する場合に、前記第1のノードに前記要求パケットを送信して代理要求を行う代理要求部と、
を備える情報処理装置である。
本発明の他の態様の一つは、
第1のノードと、前記第1のノードと異なるネットワークに存在し、前記第1のノードからWAN(Wide Area Network)を通じてデータを取得する第2のノードと、前記第1のノード及び第2のノードを管理する管理装置と、前記第1のノードが存在するネットワークとWANとの境界に位置する情報処理装置を有する情報システムにおいて、前記管理装置と同じネットワークに存在し、前記管理装置の通信を監視する監視装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第2のノードへ送信される、前記第2のノードが前記第1のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第2のノードが自装置と同じネットワークに存在する場合に、前記情報処理装置が前記第1のノードに対して代理要求をする契機となる通知を送信する送信部と、
を備える監視装置である。
第1のノードと、前記第1のノードと異なるネットワークに存在し、前記第1のノードからWAN(Wide Area Network)を通じてデータを取得する第2のノードと、前記第1のノード及び第2のノードを管理する管理装置と、前記第1のノードが存在するネットワークとWANとの境界に位置する情報処理装置を有する情報システムにおいて、前記管理装置と同じネットワークに存在し、前記管理装置の通信を監視する監視装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第2のノードへ送信される、前記第2のノードが前記第1のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第2のノードが自装置と同じネットワークに存在する場合に、前記情報処理装置が前記第1のノードに対して代理要求をする契機となる通知を送信する送信部と、
を備える監視装置である。
本発明の他の態様の一つは、上述した情報処理装置が上述した処理を実行する情報処理方法である。また、本発明の他の態様は、コンピュータを上述した監視装置として機能させる監視プログラム、及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体を含むことができる。コンピュータ等が読み取り可能な記録媒体には、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
開示の情報処理装置,監視装置,情報処理方法,及び監視プログラムによれば、受信ノード及び送信ノード間の通信の代理要求及び代理応答を行うシステムにおいて、受信ノードの要求送信からデータ受信完了までの時間を短縮することができる。
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<第1実施形態>
第1実施形態では、分散処理のフレームワークの一例として、Hadoopを用いたシステムについて説明する。
第1実施形態では、分散処理のフレームワークの一例として、Hadoopを用いたシステムについて説明する。
図2は、Hadoopを用いたシステムの構成の一例を示す図である。Hadoopは、巨大なデータの処理を並列で高速に行うためのフレームワークである。Hadoopは、システムに1つのマスタ(図中、Hadoop Masterと表示)と複数のスレーブ(図中、Hadoop Slave)を有するマスタスレーブ型のフレームワークである。マスタは、Job Trackerとして動作する。Job Trackerは、ジョブの進行状況を管理し、Mapタスク及びReduceタスクへの処理の割り振りを行う。各スレーブは、Task Trackerとして動作する。Task Trackerは、各スレーブ上で、Mapタスク群,Reduceタスク群を起動し、各タスクの進行状況を管理する。なお、第1実施形態では、ジョブは複数のタスクの群であるとする。以降、Mapタスクを実行するTask TrackerをMapタスクノードと称する。Reduceタスクを実行するTask TrackerをReduceタスクノードと称する。
図3は、Hadoopにおける分散処理の例を示す図である。Hadoopでは、入力データは分割され、各Mapタスクによって中間データが生成される。この中間データはReduceタスクによって集計されて、各Reduceタスクによって出力される結果が出力データとなる。いずれのTask TrackerがMapタスクを実行するか、又は、Reduceタスクを実行するかは、ジョブごとにJob Trackerによって動的に決定される。
Job TrackerとTask Trackerとは、定期的にHeart Beatと呼ばれるメッセージを交換し、タスク又はジョブの進行状況を通知し合う。Task TrackerからJob Trackerへは、Heart Beatによって、生存確認およびMapタスク又はReduceタスクの状況を通知する。Job TrackerからTask Trackerへは、Heart Beat Responseが返され、必要に応じてコマンドが送られる。
Mapタスクでの処理が完了すると、Mapタスクは自ノードのTask Trackerに完了を通知する。Task Trackerは、Job TrackerにMapタスクの完了を通知し、Job Trackerは、Reduceタスクの実行を割り当てたTask TrackerにMapタスクの完了を通知する。Reduceタスクは
、Mapタスクの処理結果、すなわち、中間データをMapタクスのTask Trackerから受け取る。この中間データの送受信は、HTTPを用いて行われる。
、Mapタスクの処理結果、すなわち、中間データをMapタクスのTask Trackerから受け取る。この中間データの送受信は、HTTPを用いて行われる。
図4は、Hadoopにおける中間データの送受信のシーケンスの一例を示す図である。中間データの送受信は、ReduceタスクノードからHTTP GET要求が送信されることによって開始される(OP201)。このHTTP GET要求の応答として、Mapタスクノードは中間データを送信する(OP202)。
同一のMapタスクノード上で実行されている複数のMapタスクに対しては、Reduceタスクは順番通りにしか中間データを要求できない。同一のMapタスクノード上でMapタスク#1、Mapタスク#2が実行されている場合、Reduceタスクは、Mapタスク#1の中間データ最後のデータパケットを受信し(OP203)、このデータパケットに対する受信確認応答(ACK)の送信する(OP204)。その後、Reduceタスクは、次のMapタスク#2の中間データを要求するHTTP GET要求を送信する(OP205)。したがって、Mapタスク#1の中間データの送信完了(OP203)から、次のMapタスク#2の中間データの送信開始(OP205)までに少なくとも1RTT分の間が発生する。
図5は、WANによって接続される異なるデータセンタ間でHadoopが運用される場合のシステム構成の一例である。図5では、データセンタ100とデータセンタ200とにまたがってHadoopが運用されている。データセンタ100及びデータセンタ200は、それぞれ、例えば、LAN等により構築されている。また、データセンタ100とデータセンタ200との間にはWANが存在する。
データセンタ100には、Task Tracker2,Job Tracker3,WAN高速化装置1Aが含まれる。図5では、Task Tracker2は、Mapタスクノードである。WAN高速化装置1Aにとって、内部ネットワークとはデータセンタ100のネットワークである。また、WAN高速化装置1Aにとって、外部ネットワークとは、WAN及びデータセンタ200のネットワークである。
データセンタ200には、Task Tracker4とWAN高速化装置1Bが含まれる。図5では、Task Tracker4は、Reduceタスクノードである。WAN高速化装置1Bにとって、内部ネットワークとはデータセンタ200のネットワークである。また、WAN高速化装置1Bにとって、外部ネットワークとは、WAN及びデータセンタ100のネットワークである。データセンタ間のWAN通信は、WAN高速化装置1A,1Bによって行われる。
図5に示される例のように、異なるデータセンタでHadoopを運用する場合には、WAN通信にかかる時間が長くなるため、前述のRTT分の隙間が大きくなり、ジョブ全体の実行時間に与える影響も大きくなる。
図6は、図5に示されるシステムにおける中間データの送受信のシーケンスの一例を示す図である。Job Tracker3は、全MapタスクからMapタスク完了を受けると、Reduceタスクの割り振りを行う。図6に示される例では、Job Tracker3が、Mapタスクノード2によって生成されたMapタスク#1、#2の中間データをReduceタスクノード4に割り当てた場合の中間データの送受信の例である。なお、WAN高速化装置1A、1Bは、透過プロキシであるとする。
OP1では、Job Tracker3から、Mapタスク#1の中間データの取得の指示となるorg.apache.hadoop.mapred.TaskCompletionEventメッセージがReduceタ
スクノード4に送信される。OP2では、Job Tracker3から、Mapタスク#2の中間データの取得の指示となるorg.apache.hadoop.mapred.TaskCompletionEventメッセージがReduceタスクノード4に送信される。
スクノード4に送信される。OP2では、Job Tracker3から、Mapタスク#2の中間データの取得の指示となるorg.apache.hadoop.mapred.TaskCompletionEventメッセージがReduceタスクノード4に送信される。
OP3では、Job Tracker3から指示を受けたReduceタスクノード4によって、Mapタスク#1の中間データ(以降、中間データ#1とする)の受信要求としてHTTP GET要求がMapタスクノード2に送信される。なお、Redeuceタスクノードは、同一のMapタスクノードからの中間データは順番通りにしか受信できないため、まずは、OP3では、中間データ#1の受信要求が送信される。
OP4では、Reduceタスクノード4から中間データ#1の受信要求を受けたMapタスクノード2によって、中間データ#1のデータパケットが送信される。OP5では、WAN高速化装置1Aは、Mapタスクノード2から送信された中間データ#1のデータパケットをReduceタスクノード4に転送するとともに、Mapタスクノード2に疑似ACKを送信し、代理応答する。
OP6では、WAN高速化装置1Bは、WAN経由で中間データ#1のデータパケットを受信し、Reduceタスクノード4に転送する。OP7では、中間データ#1のデータパケットを受信したReduceタスクノード4がACKを送信する。このACKは、WAN高速化装置1Bによって終端される。
OP4−OP7と同様の処理が、中間データ#1の全データパケットの受信完了まで繰り返される(OP8−OP11)。
OP12では、Reduceタスクノード4は、中間データ#1の最後のデータパケットに対する受信応答(ACK)を送信したので(OP11)、次の中間データ#2の受信要求としてHTTP GET要求を送信する。以降、中間データ#1の送受信の動作と同様の動作が行われる。
WANを介して通信する異なるデータセンタ上でHadoopを運用する場合には、同一データセンタ内での場合に比べて、Mapタスクノード2とReduceタスクノード4との距離は長くなり、その分RTTも大きくなる。そのため、WAN高速化装置を導入することによって、WAN高速化装置が疑似ACKにより代理応答をするので、1つの中間データの送受信に要する時間は短く抑えることができる。しかしながら、Reduceタスクノード4が最初に中間データの受信要求を送信してから該中間データを受信するまでには(例えば、図6のOP3−OP6)、1RTT分の時間を要し、同一データセンタ内でHadoopを運用する場合に比べて、RTTが大きい分、時間を要することになる。また、Mapタスクノードにおいて、1つの中間データの送信が完了してから、次の中間データの送信が開始されるまでには(例えば、図6のOP8からOP13までの時間)、依然として、1RTT以上の間が空くことになる。
第1実施形態では、WAN高速化装置1Aは、内部ネットワークから外部ネットワークへの通信を監視し、Job Tracker3から送信される中間データの取得の指示をスヌーピングする。WAN高速化装置1Aは、スヌーピングによって得られた情報を用いて、Reduceタスクノード4からの中間データの要求パケットを待たずに、Mapタスクノード2に対して代理要求を行う。以降、WAN高速化装置1A及び1Bを区別しない場合には、WAN高速化装置1と表記する。
また、第1実施形態では、WAN高速装置1には、例えば、ユーザによって、Job Tracker3のIPアドレスとTCPポート番号とが設定されていることを前提とす
る。Job TrackerのIPアドレスとTCPポート番号とは、Hadoopのコンフィグファイルにおいて、mapred.job.trackerにおいて記述されている。
る。Job TrackerのIPアドレスとTCPポート番号とは、Hadoopのコンフィグファイルにおいて、mapred.job.trackerにおいて記述されている。
加えて、第1実施形態では、WAN高速化装置1には、Map Taskノードが使用するTCPポート番号が設定されていることを前提とする。MapタスクノードとなったTask Trackerが使用するTCPポート番号はシステムにおいて一意であり、このTCPポート番号は、Hadoopのコンフィグファイルにおいて、mapred.task.tracker.http.addressにおいて記述されている。また、第1実施形態では、Mapタスクノード2とReduceタスクノード4との間のTCPセッションは確立されていることを前提とする。
<WAN高速化装置の構成>
図7は、WAN高速化装置1のハードウェア構成の一例を示す図である。WAN高速化装1置は、例えば、サーバとしての専用のコンピュータ,汎用のコンピュータである。第1実施形態では、WAN高速化装置1は、TCPのプロキシとして動作するコンピュータであるとする。
図7は、WAN高速化装置1のハードウェア構成の一例を示す図である。WAN高速化装1置は、例えば、サーバとしての専用のコンピュータ,汎用のコンピュータである。第1実施形態では、WAN高速化装置1は、TCPのプロキシとして動作するコンピュータであるとする。
WAN高速化装置1は、プロセッサ101,主記憶装置102,入力装置103,出力装置104,補助記憶装置105,可搬記録媒体駆動装置106,ネットワークインタフェース107を備える。また、これらはバス109により互いに接続されている。
入力装置103は、例えば、タッチパネル,キーボード等である。入力装置103から入力されたデータは、プロセッサ101に出力される。
可搬記録媒体駆動装置106は、可搬記録媒体110に記録されるプログラムや各種データを読出し、プロセッサ101に出力する。可搬記録媒体110は、例えば、SDカード,miniSDカード,microSDカード,USB(Universal Serial Bus)フラッシュメモリ,CD(Compact Disc),DVD(Digital Versatile Disc),又はフラッシュメモリカードのような記録媒体である。
ネットワークインタフェース107は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース107は、有線のネットワーク、および、無線のネットワークと接続する。ネットワークインタフェース107は、例えば、NIC(Network Interface Card),無線LAN(Local Area Network)カード等である。ネットワークインタフェース107で受信されたデータ等は、プロセッサ101に出力される。
補助記憶装置105は、様々なプログラムや、各プログラムの実行に際してプロセッサ101が使用するデータを格納する。補助記憶装置105は、例えば、EPROM(Erasable Programmable ROM)、又はハードディスクドライブ(Hard Disc Drive)等の不揮発性のメモリである。補助記憶装置105は、例えば、オペレーティングシステム(OS),代理処理プログラム,その他様々なアプリケーションプログラムを保持する。
主記憶装置102は、プロセッサ101に、補助記憶装置105に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする。主記憶装置102は、例えば、RAM(Random Access Memory)のような半導体メモリである。
プロセッサ101は、例えば、CPU(Central Processing Unit)である。プロセッ
サ101は、補助記憶装置105又は可搬記録媒体110に保持されたOSや様々なアプリケーションプログラムを主記憶装置102にロードして実行することによって、様々な
処理を実行する。プロセッサ101は、1つに限られず、複数備えられてもよい。
サ101は、補助記憶装置105又は可搬記録媒体110に保持されたOSや様々なアプリケーションプログラムを主記憶装置102にロードして実行することによって、様々な
処理を実行する。プロセッサ101は、1つに限られず、複数備えられてもよい。
出力装置104は、プロセッサ101の処理の結果を出力する。出力装置104は、スピーカ等の音声出力装置,ディスプレイ,プリンタを含む。
例えば、WAN高速化装置1は、プロセッサ101が補助記憶装置105に保持される代理処理プログラムを主記憶装置102にロードして実行する。WAN高速化装置1は、代理処理プログラムの実行を通じて、内部データセンタと外部データセンタとの間の通信を監視する。さらに、WAN高速化装置1は、Job Tracker3から送信される中間データの取得の指示をスヌーピングし、Mapタスクノード2に対する代理要求やReduceタスクノード4に対する代理応答(代理処理)を行う。なお、WAN高速化装置1のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。代理処理プログラムは、例えば、可搬記録媒体110に記録されていてもよい。
図8は、第1実施形態におけるWAN高速化装置1の機能ブロックの一例を示す図である。WAN高速化装置1は、例えば、プロセッサ101が補助記憶装置105に格納される代理処理プログラムを実行することによって、代理要求処理部11,受信処理部12,受信側IP処理部13,受信側TCP処理部14,転送処理部15,TCP代理応答処理部16,送信側TCP処理部17,送信側IP処理部18,送信処理部19として動作する。WAN高速化装置1の各機能ブロックは、プロセッサ101のソフトウェア処理によって実現されることに限られず、ハードウェアによって実現されてもよい。例えば、WAN高速化装置1の各機能ブロックを実現するハードウェアには、LSI(Large Scale Integration),FPGA(Field-Programmable Gate Array)等がある。なお、第1実施形態では、WAN高速化装置1は、透過プロキシとして動作することとする。また、以下の各機能ブロックについての説明は、便宜上、図5に示されるシステム構成を前提として説明する。以降、Mapタスクノード2側のWAN高速化装置1AとReduceタスクノード4側のWAN高速化装置1Bとの共通の処理、Mapタスクノード2側のWAN高速化装置1Aの処理、Reduceタスクノード4側のWAN高速化装置1Bの処理、に分けて説明する。なお、Hadoopでは、Mapタスクノード及びReduceタスクノードは、Job Trackerが動的に決定する。そのため、WAN高速化装置1は、Mapタスクノード2側のWAN高速化装置1Aとしても、Reduceタスクノード4側のWAN高速化装置1Bとしても動作する。
(共通の処理)
受信処理部12,受信側IP処理部13,受信側TCP処理部14は、それぞれ、受信パケットについて、TCP/IP参照モデルのネットワークインタフェース層,インターネット層,トランスポート層に係る処理を行う。具体的には、受信側IP処理部13は、受信パケットのIPヘッダから得られる情報に係る処理を行う。受信側TCP処理部14は、受信パケットのTCPヘッダ及びアプリケーションのヘッダから得られる情報に係る処理を行い、受信パケットを転送処理部15に出力する。また、受信側TCP処理部14は、TCPのACKの応答を要するパケットを検出し、TCP代理応答処理部16に通知する。受信パケットがACKの返信を要するパケットであることは、例えば、TCPパケットの種類(TCP SYNパケット等)、TCPヘッダ内のシーケンス番号,確認応答番号等により検出される。
受信処理部12,受信側IP処理部13,受信側TCP処理部14は、それぞれ、受信パケットについて、TCP/IP参照モデルのネットワークインタフェース層,インターネット層,トランスポート層に係る処理を行う。具体的には、受信側IP処理部13は、受信パケットのIPヘッダから得られる情報に係る処理を行う。受信側TCP処理部14は、受信パケットのTCPヘッダ及びアプリケーションのヘッダから得られる情報に係る処理を行い、受信パケットを転送処理部15に出力する。また、受信側TCP処理部14は、TCPのACKの応答を要するパケットを検出し、TCP代理応答処理部16に通知する。受信パケットがACKの返信を要するパケットであることは、例えば、TCPパケットの種類(TCP SYNパケット等)、TCPヘッダ内のシーケンス番号,確認応答番号等により検出される。
TCP代理応答処理部16は、代理応答に係る処理を行う。具体的には、受信側TCP処理部14から通知を受けると、TCP代理応答処理部16は、クライアントとして疑似ACKを生成し、転送処理部15に出力する。
転送処理部15は、受信側TCP処理部14から入力されるパケット,TPC代理応答処理部16から入力される疑似ACK等を送信側TCP処理部17に出力する。
送信側TCP処理部17,送信側IP処理部18,送信処理部19は、それぞれ、転送処理部15によって転送される送信パケットについて、トランスポート層,インターネット層,ネットワークインタフェース層に係る処理を行う。
代理要求処理部11は、Mapタスクノード2に代理要求を行う。代理要求処理部11は、デコード処理部111,HTTP代理処理部112,TCP/IPヘッダ生成部113,中間データ用セッション管理テーブル114,先読用バッファ115を含む。中間データ用セッション管理テーブル114および先読用バッファ115は、例えば、主記憶装置102の記憶領域に格納される。
Hadoopでは、Mapタスクの実行完了はJob Tracker3に集約される。全Mapタスクが完了したら、Job Tracker3によってReduceタスクノード4にMapタスクの完了を通知するorg.apache.hadoop.mapred.TaskCompletionEventメッセージが送信される。org.apache.hadoop.mapred.TaskCompletionEventメッセージには、送信先のRedeceタスクに割り当てられた中間データを保持するMapタスクノード2のIPアドレスとTCPポート番号と、MapタスクIDと、が含まれている。Reduceタスクノード4は、org.apache.hadoop.mapred.TaskCompletionEventメッセージを受信すると、org.apache.hadoop.mapred.TaskCompletionEventメッセージが示す中間データを有するMapタスクノード2に対し、中間データを要求するHTTP GET要求を送信する。
したがって、WAN高速化装置1では、Mapタスクノード2への代理要求及びReduceタスクノード4への代理応答を行うために、Job Tracker3から送信されるorg.apache.hadoop.mapred.TaskCompletionEventメッセージを検出する。WAN高速化装置1がorg.apache.hadoop.mapred.TaskCompletionEventメッセージを検出する処理は、以下の通りである。
受信側TCP処理部14は、受信パケットの送信元IPアドレス,送信元TCPポート番号がJob Tracker3のものである場合には、受信パケットを転送処理部15に出力するとともに、代理要求処理部11に受信パケットのコピーを出力する。なお、WAN高速化装置1には、予めJob Tracker3のIPアドレスと使用するTCPポート番号とが、例えば、ユーザ設定により主記憶装置102の記憶領域に格納されている。
代理要求処理部11のデコード処理部111は、受信側TCP処理部14から入力された、送信元がJob Tracker3である受信パケットのコピーのペイロード部をデコードして、受信パケットに含まれるメッセージを確認する。メッセージが、org.apache.hadoop.mapred.TaskCompletionEventメッセージである場合には、デコード処理部111は、org.apache.hadoop.mapred.TaskCompletionEventメッセージから、Mapタスクノード2のIPアドレス,Mapタスクノード2のポート番号,MapタスクIDを抽出する。また、デコード処理部111は、Reduceタスクノード4のIPアドレスとして、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットの宛先IPアドレスを抽出する。このように、他の装置宛てのパケットから情報を抽出することを、スヌーピング、と称する。デコード処理部111は、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットから抽出したMapタスクノード2のIPアドレス,Redeuceタスクノード4のIPアドレスを中間データ用セッション管理テーブル114に登録する。メッセージが、org.apache.hadoop.mapred.TaskCompletionE
ventメッセージでない場合には、デコード処理部111は、受信パケット(コピー)を廃棄する。デコード部111は、「検出部」の一例である。org.apache.hadoop.mapred.TaskCompletionEventメッセージは、「要求パケットを送信する契機となるパケット」の一例である。
ventメッセージでない場合には、デコード処理部111は、受信パケット(コピー)を廃棄する。デコード部111は、「検出部」の一例である。org.apache.hadoop.mapred.TaskCompletionEventメッセージは、「要求パケットを送信する契機となるパケット」の一例である。
図9は、中間データ用セッション管理テーブル114の一例を示す図である。中間データ用セッション管理テーブル114は、Mapタスクノード2とReduceタスクノード4との間に確立された、中間データの送受信に用いられるTCPセッションの情報を保持する。
中間データ用セッション管理テーブル114には、MapタスクノードのIPアドレス,ReduceタスクノードのIPアドレス,ReduceタスクノードのTCPポート番号が格納される。MapタスクノードのIPアドレス,ReduceタスクノードのIPアドレスは、デコード処理部111によって、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットから抽出され、登録される。Reduceタスクノードのポート番号は、例えば、WAN高速化装置1が保持するTCPセッションの管理情報(図示せず)の該当のTCPセッションの情報から抽出され、登録される。このTCPセッション管理情報は、例えば、転送処理部15によって管理されており、主記憶装置102の記憶領域に格納されている。
なお、第1実施形態では、中間データの送受信に用いられるTCPセッションのMapタスクノードのポート番号は一意であることを想定しているため、中間データ用セッション管理テーブル114にはMapタスクノードのポート番号は格納されていない。ただし、これに限られず、中間データの送受信に用いられるTCPセッションのMapタスクノードのポート番号が一意でない場合には、中間データ用セッション管理テーブル114にMapタスクノードのポート番号が格納される。
(Mapタスクノード2側のWAN高速化装置1Aの処理)
WAN高速化装置1は、自装置がMapタスクノード2側のWAN高速化装置1Aとして動作することについて、org.apache.hadoop.mapred.TaskCompletionEventメッセージによって示されるMapタスクノード2とReduceタスクノード4とのIPアドレスによって判定する。この判定は、例えば、HTTP代理処理部112によって行われる。Mapタスクノード2が内部ネットワークに存在し、且つ、Reduceタスクノード4が外部ネットワークに存在する場合には、WAN高速化装置1は、自装置がMapタスクノード2側のWAN高速化装置1Aとして動作することを判定する。
WAN高速化装置1は、自装置がMapタスクノード2側のWAN高速化装置1Aとして動作することについて、org.apache.hadoop.mapred.TaskCompletionEventメッセージによって示されるMapタスクノード2とReduceタスクノード4とのIPアドレスによって判定する。この判定は、例えば、HTTP代理処理部112によって行われる。Mapタスクノード2が内部ネットワークに存在し、且つ、Reduceタスクノード4が外部ネットワークに存在する場合には、WAN高速化装置1は、自装置がMapタスクノード2側のWAN高速化装置1Aとして動作することを判定する。
図8に戻って、WAN高速化装置1AのHTTP代理処理部112は、受信パケットから抽出された情報から、代理要求パケットを生成する。第1実施形態では、代理要求パケットはHTTP GET要求である。HTTP代理処理部112は、HTTP GET要求によるデータの要求先となるURIを、org.apache.hadoop.mapred.TaskCompletionEventメッセージから抽出されたMapタスクIDを用いて生成する。第1実施形態のHTTP代理処理部112は、「代理要求部」の一例である。HTTP GET要求は、「要求パケット」の一例である。
MapタスクIDは、org.apache.hadoop.mapred.TaskCompletionEventメッセージ内で、attempt_<number1>_<number2>_m_<number3>_<number4>と記述されている。Job I
Dは、job_<number1>_<number2>と記述されている。<number1>は、日時である。<number2>は、該日時で実行されたジョブのシーケンス番号である。<number3>は、<number2>で示
されるジョブ内でのMapタスクのシーケンス番号である。<number4>は、<number3>で示されるMapタスク内でのタクスのシーケンス番号である。HTTP GET要求に含ま
れる要求先のURIは、例えば、以下の通りに生成される。
URI=/mapOutput?job=job_<numbe1>_<number2>&map=attempt_<number1>_<number2>_m_<number3>_<number4>
Dは、job_<number1>_<number2>と記述されている。<number1>は、日時である。<number2>は、該日時で実行されたジョブのシーケンス番号である。<number3>は、<number2>で示
されるジョブ内でのMapタスクのシーケンス番号である。<number4>は、<number3>で示されるMapタスク内でのタクスのシーケンス番号である。HTTP GET要求に含ま
れる要求先のURIは、例えば、以下の通りに生成される。
URI=/mapOutput?job=job_<numbe1>_<number2>&map=attempt_<number1>_<number2>_m_<number3>_<number4>
WAN高速化装置1AのTCP/IPヘッダ生成部113は、HTTP代理処理部112によって生成された代理要求パケットのTCP/IPヘッダを生成する。宛先IPアドレスには、org.apache.hadoop.mapred.TaskCompletionEventメッセージから抽出されたMapタスクノード2のIPアドレスが設定される。宛先ポート番号には、org.apache.hadoop.mapred.TaskCompletionEventメッセージから抽出されたMapタスクノード2のTCPポート番号が設定される。送信元IPアドレスには、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットの宛先IPアドレスであるReduceタスクノード4のIPアドレスが設定される。送信元ポート番号には、Mapタスクノード2のIPアドレスとReduceタスクノード4のIPアドレスとによって中間データ用セッション管理テーブル114から抽出されるReduceタスクノード4のTCPポート番号が設定される。その後、代理要求パケットは、転送処理部15,送信側TCP処理部17,送信側IP処理部18,送信処理部19でそれぞれ処理されて、Mapタスクノード2に送信される。
代理要求パケットの送信タイミングは、例えば、Job Tracker3からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージの受信直後である。また、同一のMapタスクに対して複数の代理要求が発生した場合には、Mapタスクノード2からの1つの中間データの受信の完了後に次の中間データの代理要求パケットを送信してもよい。すなわち、同一のMapタスクノード2から複数の中間データの取得を行う場合には、複数の中間データに対する代理要求パケットの送信処理は、並行して行われてもよいし、中間データの受信完了毎に行われてもよい。
該代理要求パケットに対する応答としてMapタスクノード2から送信される中間データのデータパケットは、Mapタスクノード2側のWAN高速化装置1Aにおいて、外部ネットワークに転送される。このとき、中間データのパケットが転送されるとともに、TCP代理応答処理部16によって疑似ACKが生成され、Mapタスクノード2に対して疑似ACKが送信される。
(Reduceタスクノード4側のWAN高速化装置1Bの処理)
WAN高速化装置1は、自装置がReduceタスクノード4側のWAN高速化装置1Bとして動作することについて、org.apache.hadoop.mapred.TaskCompletionEventメッセージによって示されるMapタスクノード2とReduceタスクノード4とのIPアドレスによって判定する。Mapタスクノード2が外部ネットワークに存在し、且つ、Reduceタスクノード4が内部ネットワークに存在する場合には、WAN高速化装置1は、自装置がReduceタスクノード4側のWAN高速化装置1Bとして動作することを判定する。
WAN高速化装置1は、自装置がReduceタスクノード4側のWAN高速化装置1Bとして動作することについて、org.apache.hadoop.mapred.TaskCompletionEventメッセージによって示されるMapタスクノード2とReduceタスクノード4とのIPアドレスによって判定する。Mapタスクノード2が外部ネットワークに存在し、且つ、Reduceタスクノード4が内部ネットワークに存在する場合には、WAN高速化装置1は、自装置がReduceタスクノード4側のWAN高速化装置1Bとして動作することを判定する。
WAN高速化装置1BのHTTP代理処理部112は、org.apache.hadoop.mapred.TaskCompletionEventメッセージを受信した場合、HTTP応答データ(中間データ)を待ち受けるための処理を行う。
WAN高速化装置1Bの受信側TCP処理部14は、受信パケットを監視し、中間データ用セッション管理テーブル114に登録されるTCPセッションのパケットを検出する。この検出されるパケットは、Mapタスクノード2から送信される中間データのパケットである。具体的には、宛先IPアドレス,宛先ポート番号,送信元IPアドレス,送信元ポート番号が、それぞれ、Reduceタスクノード4のIPアドレス,Reduce
タスクノード4のTCPポート番号,Mapタスクノード2のIPアドレス,Mapタスクノード2のポート番号に一致する受信パケットである。受信側TCP処理部14は、検出した中間データのデータパケットを先読用バッファ115に格納する。
タスクノード4のTCPポート番号,Mapタスクノード2のIPアドレス,Mapタスクノード2のポート番号に一致する受信パケットである。受信側TCP処理部14は、検出した中間データのデータパケットを先読用バッファ115に格納する。
また、WAN高速化装置1Bの受信側TCP処理部14は、受信パケットを監視し、Reduceタスクノード4からMapタスクノード2へ送信されるHTTP GET要求を検出する。このHTTP GET要求は、宛先IPアドレス,宛先ポート番号,送信元IPアドレス,送信元ポート番号が、それぞれ、Mapタスクノード2のIPアドレス,Mapタスクノード2のポート番号,Reduceタスクノード4のIPアドレス,Reduceタスクノード4のポート番号に一致することによって検出される。
Reduceタスクノード4からのHTTP GET要求を検出した場合には、TCP代理応答処理部16は、先読用バッファ115に、HTTP GET要求に含まれるMapタスクIDの中間データのデータパケットが格納されているか否を判定する。先読用バッファ115に該当のMapタスクIDの中間データのデータパケットが格納されている場合には、TCP代理応答処理部16は、先読用バッファ115から該データパケットを抽出し、代理でReduceタスクノード4に送信する(代理応答)。先読用バッファ115に該当のMapタスクIDの中間データのデータパケットが格納されていない場合には、TCP代理応答処理部16は、検出したHTTP GET要求を一旦保持する。その後、該当MapタスクIDの中間データのデータパケットを受信したら、受信側TCP処理部14は先読用バッファ115に格納し、TCP代理応答処理部16は先読用バッファ115からデータパケットを順番に読出し、Reduceタスクノード4に送信する。
<動作例>
図10は、WAN高速化装置1の代理要求又は代理応答に係る処理のフローチャートの一例である。図10に示される処理は、WAN高速化装置1がパケットを受信する毎に実行される。
図10は、WAN高速化装置1の代理要求又は代理応答に係る処理のフローチャートの一例である。図10に示される処理は、WAN高速化装置1がパケットを受信する毎に実行される。
S1では、受信側TCP処理部14は、受信パケットの送信元がJob Tracker3であるか否かを判定する。この判定では、受信パケットの送信元IPアドレス,送信元ポート番号が、Job Tracker3のIPアドレス,ポート番号に一致する受信パケットが検出される。受信パケットの送信元がJob Tracker3である場合には(S1:Yes)、受信パケットのコピーが生成され、受信パケット(コピー)はデコード処理部111に出力される。次に、処理がS2に進む。受信パケットの送信元がJob Tracker3ではない場合には(S1:No)、図10に示される処理が終了する。
S2では、デコード処理部111が、S1において検出された受信パケット(コピー)をデコードする。次に処理がS3に進む。
S3では、デコード処理部111は、受信パケットがorg.apache.hadoop.mapred.TaskCompletionEventメッセージであるか否かを判定する。受信パケットがorg.apache.hadoop.mapred.TaskCompletionEventメッセージである場合には(S3:Yes)、処理がS4に進む。受信パケットがorg.apache.hadoop.mapred.TaskCompletionEventメッセージでない場合には(S3:No)、デコード処理部111は、受信パケット(コピー)を廃棄し、その後、図10に示される処理が終了する。
S4では、デコード処理部111は、受信パケットから、MapタスクノードのIPアドレス,Mapタスクノードのポート番号,MapタスクIDと、ReduceタスクノードのIPアドレスとして宛先IPアドレスを抽出する。MapタスクノードのIPアド
レス,ReduceタスクノードのIPアドレスは、Reduceタスクノードのポート番号とともに中間データ用セッション管理テーブル114に登録される。以降、S4において、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットから、Mapタスクノード2のIPアドレスとポート番号,宛先IPアドレスとしてReduceタスクノード4のIPアドレスとが抽出されたとして説明する。次に処理がS5に進む。
レス,ReduceタスクノードのIPアドレスは、Reduceタスクノードのポート番号とともに中間データ用セッション管理テーブル114に登録される。以降、S4において、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットから、Mapタスクノード2のIPアドレスとポート番号,宛先IPアドレスとしてReduceタスクノード4のIPアドレスとが抽出されたとして説明する。次に処理がS5に進む。
S5では、HTTP代理処理部112は、受信パケットが示すMapタスクノード2が内部ネットワークに存在し、且つ、Reduceタスクノード4が外部ネットワークに存在するか、否かを判定する。この判定は、Mapタスクノード2及びReduceタスクノード4のIPアドレスによって判定される。Mapタスクノード2が内部ネットワーク内に存在し、且つ、Reduceタスクノード4が外部ネットワークに存在する場合には(S5:Yes)、WAN高速化装置1は、例えば、図5におけるMapタスクノード2側のWAN高速化装置1Aであることが示され、処理がS6に進む。Mapタスクノード2が内部ネットワーク内に存在しない、又は、Reduceタスクノード4が外部ネットワークに存在しない場合には(S5:No)、処理がS8に進む。
S6及びS7の処理は、図5におけるMapタスクノード2側のWAN高速装置1Aが実行する処理である。S6では、HTTP代理処理部112は、代理要求メッセージとして、HTTP GET要求を生成する。このHTTP GET要求には、org.apache.hadoop.mapred.TaskCompletionEventメッセージから抽出されたタスクIDより生成されたURIが含まれる。次に処理がS7に進む。
S7では、TCP/IPヘッダ生成部113は、HTTP代理処理部112によって生成されたHTTP GETメッセージのTCP/IPヘッダを生成し、代理要求パケットを生成する。この代理パケットの宛先IPアドレス,宛先ポート番号,送信元IPアドレス,送信元ポート番号は、それぞれ、Mapタスクノード2のIPアドレス,Mapタスクノード2のポー番号,Reduceタスクノード4のIPアドレス,Reduceタスクノード4のポート番号となる。この代理要求パケットは、転送処理部15,送信側TCP処理部17,送信側IP処理部18,送信処理部19を経由して、Mapタスクノードに送信される。これによって、図10に示される処理は終了する。その後、Mapタスクノード2から中間データのデータパケットを受信すると、WAN高速化装置1Aは、該データパケットを外部ネットワークに転送する。中間データのデータパケットは、WAN高速化装置1Bにバッファされ、Reduceタスクノード4からのHTTP GET要求がWAN高速化装置1Bに届くと、WAN高速化装置1Bによって、Reduceタスクノード4に送信される。
S8では、HTTP代理処理部112は、受信パケットが示すMapタスクノード2が外部ネットワークに存在し、且つ、Reduceタスクノード4が内部ネットワークに存在するか、否かを判定する。Mapタスクノード2が外部ネットワーク内に存在し、且つ、Reduceタスクノード4が内部ネットワークに存在する場合には(S8:Yes)、WAN高速化装置1は、例えば、図5におけるReduceタスクノード4側のWAN高速化装置1Bであることが示され、処理がS9に進む。
S9の処理は、図5におけるReduceタスクノード4側のWAN高速装置1Bが実行する処理である。S9では、HTTP代理処理部112は、中間データのデータパケットの待ち受け処理を行う。これによって、図10に示される処理が終了する。その後、WAN高速化装置1Aによって転送された中間データのデータパケットがWAN高速化装置1Bに届くと、WAN高速化装置1Bは、データパケットを先読用バッファ115に格納する。Reduceタスクノード4からHTTP GET要求を受信すると、WAN高速
化装置1Bは、先読用バッファ115から該当する中間データのデータパケットを読み出し、Reduceタスクノード4に送信する。
化装置1Bは、先読用バッファ115から該当する中間データのデータパケットを読み出し、Reduceタスクノード4に送信する。
S8において、Mapタスクノード2が外部ネットワーク内に存在しない、又は、Reduceタスクノード4が内部ネットワークに存在しない場合には(S8:No)、図10に示される処理が終了する。WAN高速化装置1は、プロキシであり、内部ネットワーク内で完結する通信は取り扱わない。Mapタスクノード2及びReduceタスクノード4がともに内部ネットワークに存在する場合には、中間データの送受信ではWANを経由しないため、WAN高速化装置1は代理処理を行わずともよい。また、Mapタスクノード2及びReduceタスクノード4がともに外部ネットワークに存在する場合には、そもそもWAN高速化装置1にJob Tracker3からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージは届かない。
図11は、図5に示されるシステムにおける代理要求又は代理応答に係る処理のシーケンス図の一例である。図11では、Job Tracker3がReduceタスクノード4に対して、Mapタスクノード2から中間データを取得するよう指示する内容が含まれたorg.apache.hadoop.mapred.TaskCompletionEventメッセージが送信された場合の各装置の処理のシーケンスが示される。なお、図11に示される例では、WAN高速化装置1Aは、Mapタスクノード2に対して複数の中間データを要求する場合には、1つの中間データの受信完了後に次の中間データの代理要求を行うこととする。また、以降の説明でのMapタスクIDは、実際の記述とは異なるものの、便宜上簡略化してタスクID#1,#2と表記する。
OP21では、Job Tracker3は、Reduceタスクノード4にorg.apache.hadoop.mapred.TaskCompletionEventメッセージを送信する。このorg.apache.hadoop.mapred.TaskCompletionEventメッセージには、Mapタスクノード2のIPアドレス及びポート番号、タスクID#1が含まれる。
OP22では、WAN高速化装置1Aは、Job Tracker3によって送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。WAN高速化装置1Aは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをReduceタスクノード4に転送するとともに、内容をスヌーピングし、Mapタスクノード2にタスクID#1の中間データに対するHTTP GET要求を送信する(図10、S1−S7)。
OP23では、WAN高速化装置1Bは、WAN高速化装置1Aによって転送されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。WAN高速化装置1Bは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをReduceタスクノード4に転送するとともに、内容をスヌーピングし、タスク#1の中間データのデータパケットを待ち受ける(図10、S1−S5、S8−S9)。
OP24では、Job Tracker3は、再びReduceタスクノード4にorg.apache.hadoop.mapred.TaskCompletionEventメッセージを送信する。このorg.apache.hadoop.mapred.TaskCompletionEventメッセージには、Mapタスクノード2のIPアドレス及びポート番号、タスクID#2が含まれる。
OP25では、WAN高速化装置1Aは、Job Tracker3によって送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。WAN高速化装置1Aは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをReduceタスクノード4に転送するとともに、内容をスヌーピングする。なお、この時点では
、OP22において受信したorg.apache.hadoop.mapred.TaskCompletionEventメッセージに含まれるタスクID#1の中間データに対して代理要求処理を行っているため、Mapタスクノード2にタスクID#2の中間データに対するHTTP GET要求は送信しない(図10、S1−S7)。
、OP22において受信したorg.apache.hadoop.mapred.TaskCompletionEventメッセージに含まれるタスクID#1の中間データに対して代理要求処理を行っているため、Mapタスクノード2にタスクID#2の中間データに対するHTTP GET要求は送信しない(図10、S1−S7)。
OP26では、WAN高速化装置1Bは、WAN高速化装置1Aによって転送されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。WAN高速化装置1Bは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをReduceタスクノード4に転送する。なお、この時点では、WAN高速化装置1Bは、すでに中間データの待ち受け状態になっているため、待ち受け処理を行わない。
OP27では、Mapタスクノード2がWAN高速化装置1Aから送信されたHTTP
GET要求を受信し、タスクID#1の中間データのデータパケットを送信する。このタスクID#1の中間データは、OP21においてJob Tracker3から送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージによって示されるタスクIDの中間データである。
GET要求を受信し、タスクID#1の中間データのデータパケットを送信する。このタスクID#1の中間データは、OP21においてJob Tracker3から送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージによって示されるタスクIDの中間データである。
OP28では、WAN高速化装置1Aは、Mapタスクノード2によって送信されたタスクID#1の中間データのデータパケットを受信する。WAN高速化装置1Aは、タスクID#1の中間データのデータパケットをReduceタスクノード4に転送するとともに、代理応答として、Mapタスクノード2にACKを送信する。
OP29では、WAN高速化装置1Bは、WAN高速化装置1Aによって転送されたタスクID#1の中間データのデータパケットを受信し、先読用バッファ115に格納する。
OP30では、Reduceタスクノード4は、タスクID#1の中間データに対するHTTP GET要求をMapタスクノード2に送信する。
OP31では、WAN高速化装置1Bは、Reduceタスクノード4からのタスクID#1の中間データに対するHTTP GET要求を受信する。OP32では、WAN高速化装置1Bは、先読用バッファ115内にタスクID#1の中間データのデータパケットが格納されているので、該データパケットを読出し、Reduceタスクノード4に送信する(代理応答)。
OP32では、Reduceタスクノード4は、タスクID#1の中間データのデータパケットを受信し、ACKを送信する。このACKは、Mapタスクノード2に宛てて送信されるが、WAN高速化装置1Bによって終端される。
OP33では、Mapタスクノード2は、タスクID#1の中間データの最後のデータパケットを送信する。
OP34では、WAN高速化装置1Aは、Mapタスクノード2によって送信されたタスクID#1の中間データの最後のデータパケットを受信する。WAN高速化装置1Aは、タスクID#1の中間データの最後のデータパケットをReduceタスクノード4に転送するとともに、代理応答として、Mapタスクノード2にACKを送信する。
OP35では、WAN高速化装置1Bは、WAN高速化装置1Aによって転送されたタスクID#1の中間データの最後のデータパケットを受信し、先読用バッファ115に格納し、順番が来たら、該最後のデータパケットをReduceタスクノード4に送信する
。OP36では、Reduceタスクノード4は、タスクID#1の最後のデータパケットを受信し、ACKを送信する。
。OP36では、Reduceタスクノード4は、タスクID#1の最後のデータパケットを受信し、ACKを送信する。
OP37では、WAN高速化装置1Aは、OP34において、タスクID#1の中間データの受信が完了したので、タスクID#2の中間データに対するHTTP GET要求をMapタスクノード2に送信する。以降、OP27−OP36と同様にして、タスクID#2の中間データの送受信が行われる。
<第1実施形態の作用効果>
第1実施形態では、Job Tracker3から送信されるorg.apache.hadoop.mapred.TaskCompletionEventメッセージをWAN高速化装置1Aがスヌーピングし、Mapタスクノード2に代理要求を行う。Mapタスクノード2から送信された中間データは、WAN高速化装置1Aの転送によってWAN高速化装置1Bの先読用バッファ115にバッファされる。これによって、Reduceタスクノード4がHTTP GET要求を送信したときには、WAN高速化装置1Bに該当の中間データがバッファされており、WAN高速化装置1BからReduceタスクノード4に中間データが送信される。したがって、第1実施形態によれば、Reduceタスクノード4がHTTP GET要求を送信してから、中間データを受信するまでの時間を短縮することができる。
第1実施形態では、Job Tracker3から送信されるorg.apache.hadoop.mapred.TaskCompletionEventメッセージをWAN高速化装置1Aがスヌーピングし、Mapタスクノード2に代理要求を行う。Mapタスクノード2から送信された中間データは、WAN高速化装置1Aの転送によってWAN高速化装置1Bの先読用バッファ115にバッファされる。これによって、Reduceタスクノード4がHTTP GET要求を送信したときには、WAN高速化装置1Bに該当の中間データがバッファされており、WAN高速化装置1BからReduceタスクノード4に中間データが送信される。したがって、第1実施形態によれば、Reduceタスクノード4がHTTP GET要求を送信してから、中間データを受信するまでの時間を短縮することができる。
また、同一のMapタスクノード2からタスクID#1,#2の中間データを取得する場合には、WAN高速化装置1Aは、タスクID#1の中間データの受信完了後に、Mapタスクノード2に対してHTTP GET要求を送信する。この代理要求は、Reduceタスクノード4からのタスクID#2の中間データに対するHTTP GET要求を待たずに行われる。これによって、Mapタスクノード2がタスクID#1の中間データの最後のデータパケットを送信してから、次のタスクID#2の中間データの最初のデータパケットを送信するまでの時間を短縮することができる。また、タスクID#2の中間データの先読みができ、Reduceタスクノード4がタスクID#1の中間データの受信完了からタスクID#2の中間データの受信開始までの時間を短縮することができる。
また、第1実施形態によれば、Job Tracker,Task Tracker等のHadoopノードや既存のインフラに変更を加えることがないため、敷設コストや運用コストを少なく抑えることができる。また、中間データの通信に要する時間を短縮することによって、Hadoop Job全体の実行時間を短縮することができる。
<第2実施形態>
第1実施形態では、中間データの送受信よりも前に、Mapタスクノード2とReduceタスクノード4との間にTCPセッションが確立しており、Reduceタスクノード4のポート番号が判明していることを前提とした。第2実施形態では、この前提を取り除き、中間ノードの送受信開始時に、Mapタスクノード2とReduceタスクノード4との間のTCPセッションを確立する場合について説明する。なお、第2実施形態についても、図5に示されるシステムを前提として説明する。また、第2実施形態では、第1実施形態と共通する説明については、省略される。
第1実施形態では、中間データの送受信よりも前に、Mapタスクノード2とReduceタスクノード4との間にTCPセッションが確立しており、Reduceタスクノード4のポート番号が判明していることを前提とした。第2実施形態では、この前提を取り除き、中間ノードの送受信開始時に、Mapタスクノード2とReduceタスクノード4との間のTCPセッションを確立する場合について説明する。なお、第2実施形態についても、図5に示されるシステムを前提として説明する。また、第2実施形態では、第1実施形態と共通する説明については、省略される。
第1実施形態では、Job Tracker3からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージの受信よりも前に、Mapタスクノード2とReduceタスクノード4との間のTCPセッションが確立している。そのため、WAN高速化装置1は、Reduceタスクノード4のポート番号を事前に取得することができ、org.apache.hadoop.mapred.TaskCompletionEventメッセージの受信を契機に、Mapタスクノード2への代理要求や、中間データの待ち受け処理を行うことができる。
一方、第2実施形態では、Job Tracker3からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージの受信時には、Mapタスクノード2とReduceタスクノード4との間のTCPセッションが確立してない。そのため、まず、WAN高速化装置1は、Job Tracker3からorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信したら、Mapタスクノード2とReduceタスクノード4との間のTCPセッションを確立する処理を実行する。WAN高速化装置1が、Mapタスクノード2とReduceタスクノード4との間のTCPセッションの確立する場合には、Mapタスクノード2とReduceタスクノード4とのIPアドレス及びポート番号を用いる。WAN高速化装置1は、org.apache.hadoop.mapred.TaskCompletionEventメッセージから、Mapタスクノード2のIPアドレスとポート番号,Reduceタスクノード4のIPアドレスは、取得可能である。しかしながら、WAN高速化装置1は、Reduceタスクノード4のポート番号については取得できない。
そこで、第2実施形態では、org.apache.hadoop.mapred.TaskCompletionEventメッセージを受信すると、Mapタスクノード2側のWAN高速化装置1Aが、Reduceタスクノード4の代理ポート番号を生成する。WAN高速化装置1Aは、この代理ポート番号を用いて、TCPセッションの確立、代理要求を行う。
Mapタスクノード側のWAN高速化装置1Aのデコード処理部111は、Job Tracker3からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージから、Mapタスクノード2のIPアドレスとポート番号,MapタスクIDを抽出する。また、デコード処理部111は、該メッセージを含む受信パケットの宛先IPアドレスをReduceタスクノード4のIPアドレスとして抽出する。抽出されたMapタスクノード2のIPアドレス,Reduceタスクノード4のIPアドレスは、中間データ用セッション管理テーブル114に登録される。ここまでは、第1実施形態と同様である。
第1実施形態では、中間データ用セッション管理テーブル114のReduceタスクノードのポート番号は、例えば、WAN高速化装置1が保持するTCPセッションの管理情報(図示せず)の既に確立されている該当のTCPセッションの情報から抽出され、登録された。第2実施形態では、抽出したMapタスクノード2のIPアドレスとポート番号、Reduceタスクノード4のIPアドレスに合致するTCPセッションが確立されていない場合には、HTTP代理処理部112が、代理ポート番号を生成し、中間データ用セッション管理テーブル114にReduceタスクノードのポート番号として登録する。この代理ポート番号は、例えば、未使用のポート番号の中からランダムに選択される。
次に、WAN高速化装置1AのHTTP代理処理部112は、Mapタスクノード2とTCPセッションを確立するために、TCP SYNパケットを生成し、Mapタスクノード2に送信する。このTCP SYNパケットの宛先IPアドレス,宛先ポート番号,送信元IPアドレスは、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットから抽出されたMapタスクノード2のIPアドレス,Mapタスク2のポート番号,Redeuceタスクノード4のIPアドレスである。送信元ポート番号は、中間データ用セッション管理テーブル114に格納されるReduceタスクノードの代理ポート番号である。この後の、Mapタスクノード2とのTCPセッション確立に係る処理は、例えば、TCP代理応答処理部16によって行われる。第2実施形態におけるTCP SYNパケットは、「要求パケット」の一例である。
Mapタスクノード2とのTCPセッションが確立されると、HTTP代理処理部112は、Reduceタスクノード4側のWAN高速化装置1BにReduceタスクノード4の代理ポート番号を通知する。この生成したReduceタスクノード4の代理ポー
ト番号の通知には、例えば、WAN高速化装置間で用いられるプロトコルを用いてもよく、通知の方法は限定されない。
ト番号の通知には、例えば、WAN高速化装置間で用いられるプロトコルを用いてもよく、通知の方法は限定されない。
また、HTTP処理部112は、Mapタスクノード2とのTCPセッションの確立を契機に、HTTP GET要求を生成し、Mapタスクノード2に送信する。このHTTP GET要求の送信元ポート番号にも、生成されたReduceタスクノード4の代理ポート番号が用いられる。
以後、この生成した代理ポート番号を用いて、WAN高速化装置1Aは、第1実施形態と同様にして、中間データの送受信を行う。
Reduceタスクノード4側のWAN高速化装置1Bは、第2実施形態では、中間データ用セッション管理テーブル114に代えて、TCPセッション関連付けテーブルを保持する。TCPセッション関連付けテーブルは、WAN高速化装置1BとReduceタスクノード4間のTCPセッションと、WAN高速化装置1BとMapタスクノード2間のTCPセッションとの関連付けを管理するテーブルである。TCPセッション関連付けテーブルは、例えば、主記憶装置102の記憶領域に生成される。TCPセッション関連付けテーブルの詳細は、図12で後述する。
Reduceタスクノード4側のWAN高速化装置1Bは、WAN高速化装置1Aから通知された、WAN高速化装置1Aによって生成されたReduceタスクノード4のポート番号を、TCPセッション関連付けテーブルに格納する。WAN高速化装置1Aからの通知の検出及びTCPセッション関連付けテーブルへの格納は、該通知に用いられるプロトコルによって、受信側TCP処理部14又は受信側IP処理部13によって行われる。
TCPセッションが確立していない場合には、Job Tracker3からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信すると、Reduceタスクノード4は、Mapタスクノード2とのTCPセッションの確立を開始する。Reduceタスクノード4側のWAN高速化装置1Bは、Reduceタスクノード4からのTCP SYNパケットを終端し、TCP SYNパケットに含まれるReduceタスクノード4が実際に使用するポート番号を取得する。このポート番号は、Mapタスクノード2側のWAN高速化装置1Aによって生成されたポート番号と対応付けて、TCPセッション関連付けテーブルに格納される。
なお、Reduceタスクノード4にorg.apache.hadoop.mapred.TaskCompletionEventメッセージが届く前に、WAN高速化装置1Bは、該メッセージをスヌーピングしており、Reduceタスクノード4とMapタスクノード2とのIPアドレスを取得している。したがって、WAN高速化装置1Bでは、受信側TCP処理部14が、宛先IPアドレス,送信元IPアドレスが、それぞれ、Mapタスクノード2のIPアドレス,Reduceタスクノード4のIPアドレスであるTCP SYNパケットを検出する。TCP SYNパケットから抽出されたReduceタスクノード4のポート番号のTCPセッション関連付けテーブルへの登録も、受信側TCP処理部14によって行われる。
Reduceタスクノード4側のWAN高速化装置1BのTCP代理応答処理部16は、代理でReduceタスクノード4とTCPセッションを確立する。Reduceタスクノード4とのTCPセッションが確立し、Reduceタスクノード4からHTTP GET要求を受信すると、TCP代理応答処理部16が、先読用バッファ115から該当のデータパケットを読出し、送信する。このとき、中間データのデータパケットは、宛先ポート番号が送信側TCP処理部17によって、書き換えられる。この宛先ポート番号の
書き換えは、TCPセッション関連付けテーブルを参照して行われる。具体的には、中間データのデータパケットの宛先ポート番号は、Mapタスクノード2側のWAN高速化装置1Aによって生成されたReduceタスクノード4のポート番号から、実際に用いられるReduceタスクノード4のポート番号に書き換えられる。
書き換えは、TCPセッション関連付けテーブルを参照して行われる。具体的には、中間データのデータパケットの宛先ポート番号は、Mapタスクノード2側のWAN高速化装置1Aによって生成されたReduceタスクノード4のポート番号から、実際に用いられるReduceタスクノード4のポート番号に書き換えられる。
図12は、Reduceタスクノード4側のWAN高速化装置1Bが保持する、TCPセッション関連付けテーブルの一例である。セッション関連付けテーブルには、MapタスクノードのIPアドレス,ReduceタスクノードのIPアドレス,代理Reduceタスクノードポート番号,Reduceタスクノードのポート番号が格納される。なお、第2実施形態においても、第1実施形態と同様に、Mapタスクノードのポート番号が一意であることを想定しているため、図12に示されるTCPセッション関連付けテーブルにはMapタスクノードのポート番号は格納されていない。ただし、これに限られず、Mapタスクノードのポート番号が一意でない場合には、TCPセッション関連付けテーブルにMapタスクノードのポート番号が格納される。
MapタスクノードのIPアドレス及びReduceタスクノードのIPアドレスは、org.apache.hadoop.mapred.TaskCompletionEventメッセージのスヌーピングにより取得される。代理Reduceタスクノードポート番号は、Mapタスクノード2側のWAN高速化装置1Aによって生成された代理ポート番号である。代理Reduceタスクノードポート番号は、Mapタスクノード2側のWAN高速化装置1Aからの通知によって取得される。Reduceタスクノードのポート番号は、TCPセッション確立時のTCP SYNパケットから取得される。
<動作例>
図13は、第2実施形態における中間データの送受信の前のTCPセッション確立の処理のシーケンスの一例を示す図である。図13では、Job Tracker3がReduceタスクノード4に対して、Mapタスクノード2から中間データを取得するよう指示する内容が含まれたorg.apache.hadoop.mapred.TaskCompletionEventメッセージが送信された場合の各装置の処理のシーケンスが示される。なお、図13に示される例では、Mapタスクノード2とReduceタスクノード4との間のTCPセッションは確立していないこととする。
図13は、第2実施形態における中間データの送受信の前のTCPセッション確立の処理のシーケンスの一例を示す図である。図13では、Job Tracker3がReduceタスクノード4に対して、Mapタスクノード2から中間データを取得するよう指示する内容が含まれたorg.apache.hadoop.mapred.TaskCompletionEventメッセージが送信された場合の各装置の処理のシーケンスが示される。なお、図13に示される例では、Mapタスクノード2とReduceタスクノード4との間のTCPセッションは確立していないこととする。
OP41では、Job Tracker3は、Reduceタスクノード4にorg.apache.hadoop.mapred.TaskCompletionEventメッセージを送信する。OP42では、WAN高速化装置1Aは、Job Tracker3によって送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。WAN高速化装置1Aは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをReduceタスクノード4に転送するとともに、内容をスヌーピングする。このとき、WAN高速化装置1Aは、Reduceタスクノード4の代理ポート番号を生成し、この代理ポート番号を送信元ポート番号として、Mapタスクノード2にTCP SYNパケットを送信する。
OP43では、WAN高速化装置1Bは、WAN高速化装置1Aによって転送されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。WAN高速化装置1Bは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをReduceタスクノード4に転送するとともに、内容をスヌーピングし、TCPセッション関連付けテーブルに情報を登録する。
OP44,OP45では、Mapタスクノード2とWAN高速化装置1Aとの間でTCPセッションの確立処理が行われる。
OP46では、WAN高速化装置1Aは、WAN高速化装置1Bに、生成したReduceタスクノードの代理ポート番号を通知する。WAN高速化装置1Bは、通知されたRedeuceタスクノード4の代理ポート番号をTCPセッション関連付けテーブルに登録する。また、WAN高速化装置1Bは、代理ポート番号を開放し、WAN高速化装置1Aによって転送される中間データを待ち受ける。
OP47では、WAN高速化装置1Aは、Reduceタスクノード4の代理ポート番号を用いて、Mapタスクノード2にHTTP GET要求を送信する。OP48では、HTTP GET要求を受信したMapタスクノード2が中間データを送信する。OP49では、WAN高速化装置1Aは、Mapタスクノード2によって送信された中間データのデータパケットを受信する。WAN高速化装置1Aは、中間データのデータパケットをReduceタスクノード4に転送するとともに、代理応答として、Mapタスクノード2にACKを送信する。
OP50では、Job Tracker3からorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信したReduceタスクノード4が、Mapタスクノード2とTCPセッションを確立するために、TCP SYNパケットを送信する。このTCP SYNパケットには、送信元ポート番号に実際にReduceタスクノード4が使用するポート番号が格納されている。このTCP SYNパケットを受信すると、WAN高速化装置1Bは、WAN高速化装置1Aから通知された代理ポート番号と関連付けて、TCP
SYNパケットの送信元ポート番号(Reduceタスクノード4のポート番号)をTCPセッション関連付けテーブルに登録する。以降、Reduceタスクノード4とWAN高速化装置1Bとの間でTCPセッション確立の処理が行われる。これ以降の、中間データの送受信は、WAN高速化装置1Bにおいて、送信元ポート番号が書き換えられる点以外は、第1実施形態に準じる。
SYNパケットの送信元ポート番号(Reduceタスクノード4のポート番号)をTCPセッション関連付けテーブルに登録する。以降、Reduceタスクノード4とWAN高速化装置1Bとの間でTCPセッション確立の処理が行われる。これ以降の、中間データの送受信は、WAN高速化装置1Bにおいて、送信元ポート番号が書き換えられる点以外は、第1実施形態に準じる。
<第2実施形態の作用効果>
第2実施形態では、Mapタスクノード2とReduceタスクノード4との間にTCPセッションが確立していない。そのため、WAN高速化装置1Aは、org.apache.hadoop.mapred.TaskCompletionEventメッセージを検出すると、Mapタスクノード2とのTCPセッション確立の処理を実行する。このとき、Reduceタスクノード4のポート番号が未知であるため、WAN高速化装置1Aは、代理ポート番号を生成し、この代理ポート番号を用いてTCPセッションの確立、中間データの取得を行う。これによって、TCPセッションか確立していない場合に、Reduceタスクノードにorg.apache.hadoop.mapred.TaskCompletionEventメッセージが到着してから、中間データが届くまでに要する時間を短縮することができる。
第2実施形態では、Mapタスクノード2とReduceタスクノード4との間にTCPセッションが確立していない。そのため、WAN高速化装置1Aは、org.apache.hadoop.mapred.TaskCompletionEventメッセージを検出すると、Mapタスクノード2とのTCPセッション確立の処理を実行する。このとき、Reduceタスクノード4のポート番号が未知であるため、WAN高速化装置1Aは、代理ポート番号を生成し、この代理ポート番号を用いてTCPセッションの確立、中間データの取得を行う。これによって、TCPセッションか確立していない場合に、Reduceタスクノードにorg.apache.hadoop.mapred.TaskCompletionEventメッセージが到着してから、中間データが届くまでに要する時間を短縮することができる。
第1実施形態及び第2実施形態では、WAN高速化装置1は、透過プロキシであるとして説明を行った。ただし、これに限られず、第1実施形態及び第2実施形態で説明された代理要求処理及び代理応答処理は、WAN高速化装置1が非透過プロキシの場合でも適用可能である。WAN高速化装置1が非透過プロキシの場合には、内部ネットワークと外部ネットワークの通信の中継時に、パケットの宛先又は送信元の書き換え処理が加わる。また、第1実施形態及び第2実施形態では、Hadoopシステムを例に説明を行ったが、これに限られない。第1実施形態及び第2実施形態で説明された代理要求処理及び代理応答処理は、データを送受信するノードとは異なる第3者のノードからのパケット受信を契機に、データの送受信が開始されるシステムに適用可能である。例えば、第1実施形態及び第2実施形態で説明された代理要求処理及び代理応答処理が適用可能なシステムにはBulk Synchronous Parallel,Apache S4,Storm等がある。
<変形例>
図14は、第1変形例のシステムを示す図である。第1変形例では、Job Tracker3のWAN高速化装置1A側に監視装置5を設置する。
図14は、第1変形例のシステムを示す図である。第1変形例では、Job Tracker3のWAN高速化装置1A側に監視装置5を設置する。
Hadoopでは、どのTask TrackerにおいてMapタスク又はReduceタスクが実行されるのかは、Job Tracker3によって動的に決定される。図5に示されるシステムのように、Job Tracker3とReduceタスクノード4とが異なるネットワークに存在する場合には、WAN高速化装置1Aにおいて、org.apache.hadoop.mapred.TaskCompletionEventメッセージを検出することができる。これによって、WAN高速化装置1Aは、内部ネットワークに存在するMapタスクノード2にHTTP GET要求やTCP SYNパケットを送信することができ、中間ノードの送受信にかかる時間を短縮することができる。
一方、図13に示されるシステムでは、Task Tracker2がRedeceタスクノードとなり、Task Tracker4がMapタスクノードとなる。そのため、org.apache.hadoop.mapred.TaskCompletionEventメッセージの送受信は、内部ネットワーク内で完結してしまい、WAN高速化装置1Aで検出することができない。
そこで、第3実施形態では、監視装置5がJob Tracker3から送信されるパケットを監視し、org.apache.hadoop.mapred.TaskCompletionEventメッセージ又は必要な情報を外部のネットワークに存在するMapタスクノード4と同じネットワークに存在するWAN高速化装置1Bに通知する。この通知を受けると、WAN高速化装置1Bは、第実施形態及び第2実施形態で説明されたように、Mapタスクノード4に対して、HTTP GET要求又はTCP SYNパケットを送信し、代理要求を行う。
監視装置5は、例えば、サーバ等のコンピュータであって、ハードウェア構成は、図7に示されるものとほぼ同様である。また、監視装置5は、第1実施形態及び第2実施形態におけるWAN高速化装置1の、org.apache.hadoop.mapred.TaskCompletionEventメッセージの検出にかかる機能ブロックを有する。そのため、監視装置5の機能ブロックは、例えば、図8で示されるものから、代理要求又は代理応答にかかる処理を行うTCP代理応答処理部16,HTTP代理処理部112,中間データ用セッション管理テーブル114,先読用バッファ115,TCP/IPヘッダ生成部113等を除いたものとなる。
監視装置5は、例えば、Job Tracker3から送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを検出した場合に、このメッセージをカプセル化して、Mapタスクノード4側のWAN高速化装置1Bに通知してもよい。または、監視装置5は、org.apache.hadoop.mapred.TaskCompletionEventメッセージから必要な情報を抽出して、Mapタスクノード4側のWAN高速化装置1Bに通知してもよい。必要な情報とは、例えば、org.apache.hadoop.mapred.TaskCompletionEventメッセージに含まれる、Mapタスクノード4のIPアドレスとポート番号,MapタスクID,Reduceタスクノード2のIPアドレスである。なお、どのTask Tracker(Mapタスクノード)がどのWAN高速化装置1と同じネットワークに存在するかについては、事前に監視装置5に設定されていることとする。
監視装置5を設置することによって、Job TrackerとReduceタスクノードとが同じネットワークに存在する場合でも、第1及び第2実施形態で説明されたWAN高速化装置1の代理要求又は代理応答の処理を適用することができる。
図15は、第2変形例のシステムを示す図である。第2変形例では、第1変形例における監視装置5の処理を、監視アプリケーション31としてJob Tracker3に搭
載し、Job Traker3に実行させる。Job Trackerは、Hadoopシステムにおいて1台であるので、実装コストや初期投資を低く抑えることができる。
載し、Job Traker3に実行させる。Job Trackerは、Hadoopシステムにおいて1台であるので、実装コストや初期投資を低く抑えることができる。
1 WAN高速化装置
11 代理要求処理部
12 受信処理部
13 受信側IP処理部
14 受信側TCP処理部
15 転送処理部
16 TCP代理応答処理部
17 送信側TCP処理部
18 送信側IP処理部
19 送信処理部
111 デコード処理部
112 HTTP代理処理部
113 TCP/IPヘッダ生成部
114 中間データ用セッション管理テーブル
115 先読用バッファ
11 代理要求処理部
12 受信処理部
13 受信側IP処理部
14 受信側TCP処理部
15 転送処理部
16 TCP代理応答処理部
17 送信側TCP処理部
18 送信側IP処理部
19 送信処理部
111 デコード処理部
112 HTTP代理処理部
113 TCP/IPヘッダ生成部
114 中間データ用セッション管理テーブル
115 先読用バッファ
Claims (9)
- 第1のノードと、前記第1のノードとは異なるネットワークに存在し、前記第1のノードからWAN(Wide Area Network)を通じてデータを取得する第2のノードと、前記第1のノード及び前記第2のノードを管理する管理装置と、を有する情報システムにおいて、WANとの境界に位置する情報処理装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第2のノードへ送信される、前記第2のノードが前記第1のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第1のノードが自装置と同じネットワークに存在する場合に、前記第1のノードに前記要求パケットを送信して代理要求を行う代理要求部と、
を備える情報処理装置。 - 前記パケットは、前記データを特定する情報を含み、
前記検出部は、前記パケットから前記データを特定する情報を抽出し、
前記代理要求部は、前記データを特定する情報を用いて前記要求パケットを生成する、請求項1に記載の情報処理装置。 - 前記代理要求部は、前記第1のノードと前記第2のノードとの間でセッションが確立していない状態で、前記検出部によって前記パケットが検出され、前記第1のノードが自装置と同じネットワークに存在する場合に、前記第2のノードが使用するポート番号を代理で生成し、該ポート番号を用いて前記第1のノードにセッション確立を要求する前記要求パケットを送信する、
請求項1に記載の情報処理装置。 - 前記代理要求部は、前記ポート番号を、前記第2のノードと同じネットワークに存在しWANの境界に位置する他の情報処理装置に通知する、
請求項3に記載の情報処理装置。 - 前記代理要求部は、前記第1のノードとのセッションが確立した場合に、前記第1のノードに対して、前記データを要求する第2の要求パケットを送信する、
請求項3又は4に記載の情報処理装置。 - 前記第2のノードが内部ネットワークに存在する場合に、前記第1のノードから受信した前記データを格納する格納部と、
前記第2のノードから前記データを要求するパケットを受信した場合に、前記格納部から前記データを読み出し、前記第1のノードの代理として、前記データを前記第2のノードに送信する代理応答部と、
をさらに備える請求項1から5のいずれか一項に記載の情報処理装置。 - 第1のノードと、前記第1のノードと異なるネットワークに存在し、前記第1のノードからWAN(Wide Area Network)を通じてデータを取得する第2のノードと、前記第1のノード及び前記第2のノードを管理する管理装置と、前記第1のノードが存在するネットワークとWANとの境界に位置する情報処理装置を有する情報システムにおいて、前記管理装置と同じネットワークに存在し、前記管理装置の通信を監視する監視装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第2のノードへ送信される、前記第2のノードが前記第1のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第2のノードが自装置と同じネットワークに存在する場合に、前記情報処理装置が前記第1のノードに対して代理要求をする契機となる通知を送信する送信部と、
を備える監視装置。 - 第1のノードと、前記第1のノードと異なるネットワークに存在し、前記第1のノードからWAN(Wide Area Network)を通じてデータを取得する第2のノードと、前記第1のノード及び前記第2のノードを管理する管理装置と、を有する情報システムにおいて、WANとの境界に位置する情報処理装置が、
前記管理装置からの通信を監視し、前記管理装置から前記第2のノードへ送信される、前記第2のノードが前記第1のノードへ要求パケットを送信する契機となるパケットを検出し、
前記パケットが検出され、前記第1のノードが自装置と同じネットワークに存在する場合に、前記第1のノードに前記要求パケットを送信して代理要求を行う、
情報処理方法。 - 第1のノードと、前記第1のノードと異なるネットワークに存在し、前記第1のノードからWAN(Wide Area Network)を通じてデータを取得する第2のノードと、前記第1のノード及び前記第2のノードを管理する管理装置と、前記第1のノードが存在するネットワークとWANとの境界に位置する情報処理装置を有する情報システムにおいて、前記管理装置と同じネットワークに存在し、前記管理装置の通信を監視する監視装置に、
前記管理装置からの通信を監視させ、前記管理装置から前記第2のノードへ送信される、前記第2のノードが前記第1のノードへ要求パケットを送信する契機となるパケットを検出させ、
前記パケットが検出され、前記第2のノードが同じネットワークに存在する場合に、前記情報処理装置が前記第1のノードに対して代理要求をする契機となる通知を送信させる、
ための監視プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012204905A JP5935622B2 (ja) | 2012-09-18 | 2012-09-18 | 情報処理装置,監視装置,情報処理方法,及び監視プログラム |
US13/904,730 US20140082180A1 (en) | 2012-09-18 | 2013-05-29 | Information processor apparatus, information processing method, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012204905A JP5935622B2 (ja) | 2012-09-18 | 2012-09-18 | 情報処理装置,監視装置,情報処理方法,及び監視プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014060615A JP2014060615A (ja) | 2014-04-03 |
JP5935622B2 true JP5935622B2 (ja) | 2016-06-15 |
Family
ID=50275657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012204905A Expired - Fee Related JP5935622B2 (ja) | 2012-09-18 | 2012-09-18 | 情報処理装置,監視装置,情報処理方法,及び監視プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140082180A1 (ja) |
JP (1) | JP5935622B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252391B (zh) * | 2013-06-28 | 2017-09-12 | 国际商业机器公司 | 用于在分布式计算系统中管理多个作业的方法和装置 |
CN103840989A (zh) * | 2014-03-26 | 2014-06-04 | 北京极科极客科技有限公司 | 通过路由器测试网速的方法和装置 |
JP6519111B2 (ja) * | 2014-07-18 | 2019-05-29 | 富士通株式会社 | データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置 |
JP2016063382A (ja) * | 2014-09-18 | 2016-04-25 | 富士通株式会社 | 通信システム、通信方法、および、転送装置 |
US10296255B1 (en) * | 2015-12-16 | 2019-05-21 | EMC IP Holding Company LLC | Data migration techniques |
EP3619854B1 (en) * | 2017-05-02 | 2022-06-22 | Airo Finland Oy | Elimination of latency in a communication channel |
US10805420B2 (en) * | 2017-11-29 | 2020-10-13 | Forcepoint Llc | Proxy-less wide area network acceleration |
US10841218B2 (en) * | 2017-12-01 | 2020-11-17 | Fujitsu Limited | Communication relay device and communication relay method |
CN112800142B (zh) * | 2020-12-15 | 2023-08-08 | 赛尔网络有限公司 | Mr作业处理方法、装置、电子设备及存储介质 |
JP2022185437A (ja) * | 2021-06-02 | 2022-12-14 | 朋樹 瀧本 | Ipネットワークを介したvdesメッセージ伝送方法 |
CN114598704B (zh) * | 2022-03-16 | 2024-05-17 | 浪潮云信息技术股份公司 | 基于四层负载均衡集群的tcp连接容错方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0788256A3 (en) * | 1990-08-20 | 1998-04-08 | Fujitsu Limited | Method and apparatus for communicating monitor/management information between communication devices connected through a switched network |
US20060031394A1 (en) * | 2004-04-20 | 2006-02-09 | Tazuma Stanley K | Apparatus and methods for transparent handling of browser proxy configurations in a network gateway device |
ATE428253T1 (de) * | 2006-01-27 | 2009-04-15 | Siemens Ag | Verfahren zur zuordnung von zumindest einer nutzdatenverbindung zu zumindest einer multiplexverbindung |
US7783757B2 (en) * | 2007-03-12 | 2010-08-24 | Citrix Systems, Inc. | Systems and methods of revalidating cached objects in parallel with request for object |
JP2009140290A (ja) * | 2007-12-07 | 2009-06-25 | Fujitsu Ltd | コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム |
US20110016197A1 (en) * | 2008-03-05 | 2011-01-20 | Yoshiko Shiimori | Proxy server, and method and program for controlling same |
JP5245629B2 (ja) * | 2008-08-05 | 2013-07-24 | 富士通株式会社 | 中継装置、通信中継方法、そのプログラム、及び中継システム |
US8321443B2 (en) * | 2010-09-07 | 2012-11-27 | International Business Machines Corporation | Proxying open database connectivity (ODBC) calls |
US8559627B2 (en) * | 2011-02-24 | 2013-10-15 | Vixs Systems, Inc | Sanctioned caching server and methods for use therewith |
US9077649B2 (en) * | 2012-05-29 | 2015-07-07 | Verizon Patent And Licensing Inc. | Split customer premises equipment architecture for provisioning fixed wireless broadband services |
-
2012
- 2012-09-18 JP JP2012204905A patent/JP5935622B2/ja not_active Expired - Fee Related
-
2013
- 2013-05-29 US US13/904,730 patent/US20140082180A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2014060615A (ja) | 2014-04-03 |
US20140082180A1 (en) | 2014-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5935622B2 (ja) | 情報処理装置,監視装置,情報処理方法,及び監視プログラム | |
CN104125243B (zh) | 一种穿透内网远程连接大规模虚拟机的方法 | |
US9432449B2 (en) | Managing connection failover in a load balancer | |
JP6056795B2 (ja) | 画像処理システム、ゲートウェイ装置、ゲートウェイ装置の制御方法、ゲートウェイ装置の制御プログラム | |
JPWO2014034001A1 (ja) | Webコンテンツ先読み制御装置、Webコンテンツ先読み制御プログラム、及びWebコンテンツ先読み制御方法 | |
US8639834B2 (en) | Self-adjusting application heartbeat management | |
KR20210044281A (ko) | 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을 보장하기 위한 방법 및 장치 | |
JP5304674B2 (ja) | データ変換装置、データ変換方法及びプログラム | |
JP5975396B2 (ja) | 機器管理システム、それに用いられる管理装置および機器 | |
US8917595B2 (en) | Method and system for a distributed platform solution for supporting CIM over web services based management | |
US11444882B2 (en) | Methods for dynamically controlling transmission control protocol push functionality and devices thereof | |
JP6249015B2 (ja) | 受信装置、受信装置制御方法、受信装置制御プログラム、ネットワークシステム、ネットワークシステム制御方法、及びネットワークシステム制御プログラム | |
JP2014010703A (ja) | 情報処理システムの連携を支援するシステム、装置および連携方法 | |
JP4927661B2 (ja) | 通信方法、ネットワークシステム、記憶媒体およびネットワーク接続機器 | |
JP6605149B2 (ja) | 共有端末の検出方法及びその装置 | |
JP2004349895A (ja) | LAN間接続装置及びそのUPnPデバイス公開方法 | |
US20140079067A1 (en) | Information centric network (icn) node based on switch and network process using the node | |
JP5270603B2 (ja) | 仮想環境データ転送システムおよび仮想環境データ転送装置 | |
US9537968B1 (en) | Communication of socket protocol based data over a storage protocol based interface | |
JP2013101600A (ja) | 管理システム、電子機器、電子機器制御方法およびプログラム | |
JP5738042B2 (ja) | ゲートウェイ装置、情報処理装置、処理方法およびプログラム | |
JP5577978B2 (ja) | 通信装置、画像形成装置及びプログラム | |
JP2018018310A (ja) | 制御プログラム、制御装置及び制御方法 | |
JP2015114843A (ja) | サービス提供システム及び方法及びプログラム | |
Cho et al. | A hybrid web browser architecture for mobile devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150512 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160412 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160425 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5935622 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |