JP5331549B2 - Distributed processing system and distributed processing method - Google Patents
Distributed processing system and distributed processing method Download PDFInfo
- Publication number
- JP5331549B2 JP5331549B2 JP2009095062A JP2009095062A JP5331549B2 JP 5331549 B2 JP5331549 B2 JP 5331549B2 JP 2009095062 A JP2009095062 A JP 2009095062A JP 2009095062 A JP2009095062 A JP 2009095062A JP 5331549 B2 JP5331549 B2 JP 5331549B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- amount
- degree
- distributed processing
- 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.)
- Active
Links
Images
Description
本発明は、複数のコンピュータ及び複数の中継装置を備える分散処理システム、並びにそのシステムにより実行される分散処理方法に関する。 The present invention relates to a distributed processing system including a plurality of computers and a plurality of relay devices, and a distributed processing method executed by the system.
従来から、分散処理システムの処理効率を高めるために様々な技術が開発されている。例えば下記特許文献1には、ソフトウェアの起動状態の変更に要する時間を考慮して、計算処理を割り当てるノードを決定する技術が開示されている。具体的には、この技術は、各ノードから取得した、起動中のソフトウェアを示す環境情報と、処理に必要なソフトウェアを示す環境条件情報とを比較し、新たなソフトウェアの起動が少ないノードを処理の割当先として優先的に選択するものである。
Conventionally, various techniques have been developed to increase the processing efficiency of a distributed processing system. For example,
分散処理の種類によっては、ハードディスクなどからデータを読み出す速度や、データをコンピュータ間で移動させる際の通信速度が全体の処理速度を低下させる要因となる。例えば、マップリデュース(MapReduce)のグレップ(grep)処理のように中間データの生成量が少ない場合には、各コンピュータにおいてハードディスクからのデータ読み出し速度がボトルネックとなる。また、MapReduceのソート(sort)処理のように中間データの生成量が多い場合には、L2スイッチなどの中継装置に大量のトラフィックが集中し、ボトルネックとなる。 Depending on the type of distributed processing, the speed at which data is read from a hard disk or the like, and the communication speed when data is moved between computers become factors that reduce the overall processing speed. For example, when the amount of intermediate data generated is small, such as a map reduction (grep) process, the data read speed from the hard disk becomes a bottleneck in each computer. Further, when a large amount of intermediate data is generated as in the MapReduce sort process, a large amount of traffic is concentrated on a relay device such as an L2 switch, which becomes a bottleneck.
本発明は上記課題を解決するためになされたものであり、データを高速に処理することが可能な分散処理システム及び分散処理方法を提供することを目的とする。 The present invention has been made to solve the above problems, and an object of the present invention is to provide a distributed processing system and a distributed processing method capable of processing data at high speed.
本発明の分散処理システムは、データを中継する中継装置と、該中継装置に直接接続されている少なくとも一つのコンピュータとを含むグループを複数備える分散処理システムであって、分散処理を実行した各コンピュータにおける、該処理の入力データのデータ量と、該処理の結果である出力データのデータ量とを取得する取得手段と、取得手段により取得された入力データ量及び出力データ量に基づいて分散処理前後におけるデータ量の変化を判定し、該処理によりデータ量が増加した場合には、該処理によりデータ量が減少する場合よりも、分散処理する複数の被分割データの分散度を低く設定する設定手段と、設定手段により設定された分散度が所定の閾値以下である場合には、分散処理する複数の被分割データを複数のグループのうち一のグループに配置し、そうでない場合には、該複数の被分割データを複数のグループのうち2以上のグループに配置する配置手段と、を備えることを特徴とする。 The distributed processing system of the present invention is a distributed processing system including a plurality of groups including a relay device that relays data and at least one computer that is directly connected to the relay device, and each computer that has executed the distributed processing Acquisition means for acquiring the amount of input data of the process and the amount of output data as a result of the process, and before and after distributed processing based on the input data amount and output data amount acquired by the acquisition means Setting means for determining a variance of a plurality of divided data to be distributed when a change in the amount of data is determined and the amount of data increases due to the processing, compared to a case where the amount of data decreases due to the processing When the degree of distribution set by the setting means is equal to or less than a predetermined threshold, a plurality of divided data to be distributed is assigned to a plurality of groups. Placed one group Chi, otherwise, characterized in that it comprises an arrangement means for arranging the data segments of the plurality of the two or more groups among the groups, the.
また、本発明の分散処理方法は、データを中継する中継装置と、該中継装置に直接接続されている少なくとも一つのコンピュータとを含むグループを複数備える分散処理システムにより実行される分散処理方法であって、分散処理を実行した各コンピュータにおける、該処理の入力データのデータ量と、該処理の結果である出力データのデータ量とを取得する取得ステップと、取得ステップにおいて取得された入力データ量及び出力データ量に基づいて分散処理前後におけるデータ量の変化を判定し、該処理によりデータ量が増加した場合には、該処理によりデータ量が減少する場合よりも、分散処理する複数の被分割データの分散度を低く設定する設定ステップと、設定ステップにおいて設定された分散度が所定の閾値以下である場合には、分散処理する複数の被分割データを複数のグループのうち一のグループに配置し、そうでない場合には、該複数の被分割データを複数のグループのうち2以上のグループに配置する配置ステップと、を含むことを特徴とする。 The distributed processing method of the present invention is a distributed processing method executed by a distributed processing system including a plurality of groups including a relay device that relays data and at least one computer directly connected to the relay device. The acquisition step of acquiring the data amount of the input data of the processing and the data amount of the output data as a result of the processing in each computer that has executed the distributed processing, the input data amount acquired in the acquisition step, and When a change in the data amount before and after the distributed processing is determined based on the output data amount and the data amount is increased by the processing, a plurality of pieces of divided data to be distributed are processed rather than when the data amount is decreased by the processing. A setting step for setting the degree of dispersion of a low value, and when the degree of dispersion set in the setting step is equal to or less than a predetermined threshold Arranging a plurality of divided data to be distributed in one group among a plurality of groups, if not, arranging the plurality of divided data in two or more groups among a plurality of groups; It is characterized by including.
このような分散処理システム及び分散処理方法によれば、各コンピュータにおける入力データ量及び出力データ量に基づいて、分散処理によりデータ量が増加したか否かが判定され、この判定に基づいて被分割データの分散度が決定される。分散度は、データ量が増加した場合には相対的に低く設定され、データ量が減少した場合には相対的に高く設定される。そして、設定された分散度が所定の閾値以下である場合には被分割データが一つのグループに集約され、そうでない場合には被分割データは複数のグループに分散される。 According to such a distributed processing system and distributed processing method, it is determined whether the data amount has increased due to the distributed processing based on the input data amount and the output data amount in each computer. The degree of data distribution is determined. The degree of dispersion is set relatively low when the amount of data increases, and is set relatively high when the amount of data decreases. If the set degree of dispersion is equal to or less than a predetermined threshold, the divided data is aggregated into one group, and otherwise, the divided data is distributed into a plurality of groups.
データ量が増えた場合には、その後の処理においてネットワークトラフィックを抑制することが処理の高速化につながる。一方、データ量が減少した場合には、その後に処理するデータを極力多くのコンピュータに分散させてシステムの処理能力を最大限に引き出すことが処理の高速化につながる。したがって、処理前後におけるデータ量の変化に基づいて分散度を設定し、その分散度に基づいて被分割データを配置することで、上記のような柔軟なデータ配置を実現でき、その結果、データを高速に処理することが可能になる。 When the amount of data increases, suppressing network traffic in subsequent processing leads to faster processing. On the other hand, when the amount of data decreases, distributing the data to be processed thereafter to as many computers as possible and maximizing the processing capacity of the system leads to faster processing. Therefore, by setting the degree of dispersion based on the change in the amount of data before and after processing and arranging the divided data based on the degree of dispersion, it is possible to realize the flexible data arrangement as described above, and as a result, the data It becomes possible to process at high speed.
本発明の分散処理システムでは、分散処理がマップリデュース(MapReduce)のプログラミングモデルにより実行されることが好ましい。 In the distributed processing system of the present invention, it is preferable that the distributed processing is executed by a map reduction programming model.
この場合、マップリデュース(MapReduce)処理においてデータを高速に処理することができる。 In this case, data can be processed at high speed in the map reduce process.
このような分散処理システム及び分散処理方法によれば、処理前後におけるデータ量の変化に基づいて分散度が設定され、その分散度に基づいて被分割データが配置されるので、データを高速に処理することができる。 According to such a distributed processing system and distributed processing method, the degree of distribution is set based on the change in the amount of data before and after the processing, and the divided data is arranged based on the degree of dispersion, so that the data is processed at high speed. can do.
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the description of the drawings, the same or equivalent elements are denoted by the same reference numerals, and redundant description is omitted.
まず、図1〜6を用いて、実施形態に係る分散処理システム1の機能及び構成を説明する。
First, the function and configuration of the
分散処理システム1は、マップリデュース(MapReduce)というプログラミングモデルを用いて分散処理を実行するコンピュータシステムである。なお、処理されるデータは、所定の手法により予め分散処理システム1内に分散配置されるものとし、以下では、分散配置されたデータを被分割データという。分散処理システム1は、図1に示すように、1個のマスタノード10と、複数のスレーブノード20と、各ノード間を接続する複数のネットワークスイッチ(以下では単に「スイッチ」という)30とを備えている。マスタノード10は分散処理を統括するコンピュータであり、スレーブノード20はデータを実際に処理するコンピュータである。スイッチ30は、ノード間で伝送されるデータを中継する装置であり、例えばL2スイッチ、L3スイッチ、ルータなどである。
The
マスタノード10、各スレーブノード20及び各スイッチ30は、複数あるラックRのうちのいずれか一つの中に格納されている。図1の例では、分散処理システム1は1個のマスタノード10、11個のスレーブノード20、4個のスイッチ30及び4個のラックRを含んで構成されている。各ラックRには3個のノード(マスタノード10又はスレーブノード20)と1個のスイッチ30が格納されており、各ラックR内では、スイッチ30に各ノードが直接接続されている。一つのラックR内に格納されている複数のスレーブノード20は、一つのグループ(以下では「ノードグループ」という)を形成している。
The
次に、マスタノード10について説明する。図2に示すように、マスタノード10は機能的構成要素として受付部11、分散度テーブル12、指示部13及び分散度設定部(設定手段)14を備えている。
Next, the
図3に示すように、マスタノード10は、オペレーティングシステムやアプリケーションプログラムなどを実行するCPU101と、ROM及びRAMで構成される主記憶部102と、ハードディスクなどで構成される補助記憶部103と、ネットワークカードなどで構成される通信制御部104と、キーボードやマウスなどの入力部105と、モニタなどの出力部106とで構成される。マスタノード10の各機能は、CPU101や主記憶部102の上に所定のソフトウェアを読み込ませ、CPU101の制御の下で通信制御部104を動作させ、主記憶部102や補助記憶部103におけるデータの読み出し及び書き込みを行うことで実現される。
As shown in FIG. 3, the
図2に戻って、受付部11は、ユーザ操作により入力されたり、他のコンピュータシステム(図示せず)から入力された分散処理の実行指示を受け付ける部分である。この実行指示には、分散処理プログラムを識別するアプリケーション情報が含まれ、場合によっては、分散度を示すパラメータも含まれる。ここで、分散度とは、分散処理される複数の中間データ(分散処理の途中結果)をどの程度分散させて配置するかを示す数値である。分散度が小さければ、中間データは狭い範囲(例えば一つのノードグループ(ラックR)内)に配置され、分散度が大きければ中間データは広い範囲(例えばシステム1内の全スレーブノード20)に配置される。受付部11は、受け付けた実行指示を指示部13に出力する。
Returning to FIG. 2, the accepting
分散度テーブル12は、アプリケーション毎に設定された分散度を記憶する部分である。例えば、分散度テーブル12は図4に示すようなアプリケーションの分散度を記憶する。図4に従えば、アプリケーションAを実行する場合には中間データは特定のスレーブノードのみから成る群に集められ、アプリケーションBを実行する場合には中間データはそれよりも広い範囲のスレーブノード群に配置される。また、アプリケーションCを実行する場合には、アプリケーションBの場合よりも更に広い範囲のスレーブノード群に配置されることになる。 The degree of dispersion table 12 is a part that stores the degree of dispersion set for each application. For example, the degree of distribution table 12 stores the degree of application dispersion as shown in FIG. According to FIG. 4, when the application A is executed, the intermediate data is collected into a group consisting of only a specific slave node, and when the application B is executed, the intermediate data is collected into a wider range of slave nodes. Be placed. Further, when executing the application C, it is arranged in a wider range of slave nodes than in the case of the application B.
指示部13は、各スレーブノード20に分散処理の実行を指示する部分である。具体的には、指示部13は入力されたアプリケーション情報と、そのアプリケーションに対応する分散度とを含む指示信号を各スレーブノード20に送信する。
The
分散度が入力された場合には、指示部13はその分散度、すなわちユーザ又は他のシステムにより指定された分散度を指示信号に含めて送信する。一方、分散度が入力されなかった場合には、指示部13はアプリケーション情報に対応する分散度を分散度テーブル12から読み出し、取得できた場合にはその分散度を指示信号に含めて送信する。取得できなかった場合には、指示部13は予め保持している分散度のデフォルト値を指示信号に含めて送信する。なお、分散度が取得できない現象は、例えば、あるアプリケーションが分散処理システム1において初めて実行される場合などに起こり得る。
When the degree of dispersion is input, the
分散度設定部14は、各スレーブノード20から受信した入力データ量及び出力データ量に基づいて分散処理前後におけるデータ量の変化を判定し、その処理によりデータ量が増加した場合には、データ量が減少する場合よりも、分散処理する複数の被分割データの分散度を低く設定する部分である。なお、入力データ量とは被分割データのデータ量であり、出力データ量とは演算結果データのデータ量であるが、これらについては以下で改めて説明する。
The degree-of-
分散度設定部14は、入力データ量と出力データ量との大小関係を検査し、出力データ量の方が大きい場合には分散度を所定値a以下に設定し、そうでなければ分散度を所定値aよりも大きい値に設定する。例えば、分散度設定部14は、各スレーブノード20について、入力データ量に対する出力データ量の比r=(出力データ量)/(入力データ量)を算出し、その比rの平均値raを算出する。そしてra>1であれば分散度を1に設定し、ra≦1であれば、raが小さくなるほど分散度が大きくなるように、分散度を2以上に設定する。また、分散度設定部14は、所定の時間内に受信した入力データ量及び出力データ量のみ、すなわち一部のスレーブノード20から受信したデータ量のみに基づいて、上記と同様に平均値raを算出し、分散度を設定してもよい。
The degree-of-
続いて、分散度設定部14は、算出した分散度と、受付部により受け付けられたアプリケーション情報とを関連付けて分散度テーブル12に記憶する。これにより、実行中のアプリケーションの分散度が登録又は更新され、次回に同じアプリケーションに関する実行指示が入力されたときに参照される。
Subsequently, the
次に、スレーブノード20について説明する。図5に示すように、スレーブノード20は機能的構成要素としてラック構成テーブル21、処理部(配置手段)22及び取得部(取得手段)23を備えている。スレーブノード20のハードウェア構成は図3に示すものと同様であり、スレーブノード20の各機能がハードウェア上でどのように実現されるかも、マスタノード10と同様である。
Next, the
ラック構成テーブル21は、スイッチ30と、そのスイッチ30に直接接続されているスレーブノード20(ノードグループ)とに関する情報を記憶する部分である。具体的には、ラック構成テーブル21は、スイッチ30を識別するスイッチIDと、そのスイッチ30に直接接続されているスレーブノード20を識別するノードIDと、そのスレーブノード20で構成されるノードグループを識別するラックIDとが互いに関連付けられたグループ情報を記憶する。分散処理システム1が図1に示す構成であれば、ラック構成テーブル21は図6に示すグループ情報を記憶する。この情報から、例えば、ノードIDが「a」,「b」、「c」である3個のスレーブノード20が一つのノードグループを形成し、これらのノード20は「SW1」のスイッチIDで特定されるスイッチ30に直接接続されていることなどを知ることができる。
The rack configuration table 21 is a part that stores information regarding the switch 30 and the slave node 20 (node group) directly connected to the switch 30. Specifically, the rack configuration table 21 includes a switch ID for identifying the switch 30, a node ID for identifying the
なお、ラック構成テーブル21の情報は、グループ情報を管理するマスタノード10から所定のタイミングで送信されてくる。この情報がラック構成テーブル21に記憶されることで、マスタノード10とスレーブノード20との間でラック構成テーブルの同期が取られる。
The information in the rack configuration table 21 is transmitted at a predetermined timing from the
処理部22は、マスタノード10から送られてきた情報に基づいて、被分割データに対する演算を実行する部分である。処理部22は、マスタノード10から送られてきた指示信号を受信し、アプリケーション情報及び分散度を抽出する。続いて、処理部22はそのアプリケーション情報と予め記憶している被分割データとに基づいて、自ノード内での処理が必要か否かを判定する。このとき、処理不要と判定した場合には、処理部22は他のノードからの要求があるまで待機する。一方、処理が必要と判定した場合には、処理部22はアプリケーション情報で示されるアプリケーションプログラムを実行して被分割データに対する所定の演算(マップ(Map)処理)を実行する。
The
処理部22は、被分割データをMap処理して演算結果データを生成する。そして、当該演算結果データの一部ごとにReduce処理を行う。
The
その際、処理部22は入力された分散度とラック構成テーブル21から読み出したグループ情報とに基づいて、次に分散処理を実行するノードグループを選択する。ノードグループの選択方法は一つに限定されるものではない。例えば、処理部22は、分散度が閾値c以下の場合には1個のノードグループのみを選択し、分散度が閾値cを超える場合には2個以上のノードグループを選択する。なお、具体的にどのノードグループを指定するかも任意であるが、記憶している被分割データの個数が最も多いノードグループが含まれるのが好ましい。
At this time, the
ここで、閾値cは、上記平均値raが1を超えるか否か、すなわち分散処理前後でデータ量が増加したか否かの基準に合わせて設定してもよい。この場合には、データ量が増加した場合には1個のノードグループのみが選択され、そうでない場合には複数のノードグループが選択されることになる。もちろん、閾値cを、上記平均値raが1を超えるか否かとは関係なく設定してもよい。この場合には、データ量が一定の割合以上増加した場合に初めて、1個のノードグループのみが選択されることになる。 Here, the threshold value c is whether the average value r a is greater than 1, i.e. may be set in accordance with the distributed processing whether the reference data amount is increased in the front and rear. In this case, when the amount of data increases, only one node group is selected. Otherwise, a plurality of node groups are selected. Of course, the threshold c, the average value r a may be set regardless of whether more than one. In this case, only one node group is selected only when the amount of data increases by a certain percentage or more.
続いて、処理部22は選択したノードグループに含まれるスレーブノード20のうちの一つをリデューサー(Reducer)として選択する。そして、処理部22は選択したスレーブノード20に演算結果データの一部を送信する。なお、送信される演算結果データは、更なる処理が必要な中間データであるといえる。処理部22は、このようなReducerの選択及び送信処理を、演算結果データに対する処理がすべて終了するまで繰り返し実行する。
Subsequently, the
各スレーブノード20の処理部22がこのような処理を実行することで、Map処理された複数の中間データはいずれかのラックR内のいずれかのスレーブノード20に配置され、その後は、従来のMapReduceプログラミングモデルによりリデュース(Reduce)処理が実行される。すなわち、処理部22は配置手段として機能する。
When the
取得部23は、処理部22により処理された被分割データ(入力データ)のデータ量と、演算結果データ(出力データ)のデータ量とを取得する部分である。取得部23は処理部22の演算処理を監視することでこれらのデータ量を取得し、マスタノード10に送信する。
The acquisition unit 23 is a part that acquires the data amount of the divided data (input data) processed by the
次に、図7を用いて、図1に示す分散処理システムの動作を説明するとともに本実施形態に係る分散処理方法について説明する。 Next, the operation of the distributed processing system shown in FIG. 1 will be described with reference to FIG. 7, and the distributed processing method according to the present embodiment will be described.
マスタノード10において、受付部11が実行指示を受け付けると(ステップS11)、指示部13が指定されたアプリケーションに対応する分散度を取得する(ステップS12)。具体的には、指示部13は、分散度テーブル12から分散度を読み出すか、実行指示から分散度を抽出するか、又は予め保持している分散度のデフォルト値を用いることで、分散度を取得する。続いて、指示部13はアプリケーション情報及び分散度をすべてのスレーブノード20に送信する(ステップS13)。
In the
各スレーブノード20では、処理部22がそのアプリケーション情報と予め記憶している被分割データとに基づいて処理の要否を判定し、処理が必要である場合には、まず被分割データに対してMap処理を実行する(ステップS14)。このとき、取得部23が、入力データである被分割データのデータ量と、出力データである演算結果データのデータ量とを取得する(ステップS14、取得ステップ)。
In each
続いて、処理部22は、演算結果データを一部ずつ送信するために、分散度とラック構成テーブル21から読み出したグループ情報とに基づいて一又は複数のノードグループを選択し(ステップS15、配置ステップ)、選択したノードグループから一のスレーブノードを選択する(ステップS16、配置ステップ)。そして、処理部22はそのスレーブノード20に演算結果データの一部を送信する(ステップS17、配置ステップ)。上記ステップS15〜S17の処理は、演算結果データに対する処理がすべて終了するまで繰り返し実行される。
Subsequently, the
各スレーブノード20の処理部22が上述した処理を実行することで、Map処理された複数の中間データは一又は複数のグループ内に集められ、その後は、そのグループ内のスレーブノード20においてReduce処理が実行される(ステップS18)。なお、図7では「選択されたスレーブノード」を一つしか示していないが、実際にはそのようなスレーブノード20は複数存在する。
When the
Map処理を実行したスレーブノード20では、上記ステップS15〜S17の処理と並行して、取得部23が被分割データ及び演算結果データのデータ量をマスタノード10に送信する(ステップS19)。
In the
これを受けてマスタノード10では、分散度設定部14がそれらのデータ量の比を算出し、その比に基づいて分散度を設定する(ステップS20、設定ステップ)。例えば、分散処理によりデータ量が増加した場合には、分散度設定部14は、次回に同じアプリケーションが実行されたときに中間データが一のノードグループ(ラックR)に集まるように分散度を設定する。一方、分散処理によりデータ量が減少した場合には、分散度設定部14は、次回に同じアプリケーションが実行されたときに2以上のノードグループに中間データが分散するように、データ量が増加した場合よりも高い分散度を設定する。分散度設定部14は、このように設定した分散度を分散度テーブル12に記憶する(ステップS21、設定ステップ)。この分散度は、同じアプリケーションの実行指示が入力されたときに参照される。
In response to this, in the
以上説明したように、本実施形態によれば、各スレーブノード20における被分割データ及び演算結果データのデータ量に基づいて、分散処理によりデータ量が増加したか否かが判定され、この判定に基づいて中間データの分散度が決定される。分散度は、データ量が増加した場合には相対的に低く設定され(例えば1に設定)、データ量が減少した場合には相対的に高く設定される(例えば3に設定)。そして、設定された分散度が所定の閾値以下である場合には中間データが一つのグループに集約され、そうでない場合には複数のグループに分散される。
As described above, according to the present embodiment, it is determined whether or not the data amount has increased due to the distributed processing based on the data amount of the divided data and the operation result data in each
データ量が増えた場合には、データが複数のスイッチ30を経由しないように一つのグループ(ラックR)内で分散処理することが、高速化につながる。一方、データ量が減少した場合には、どのグループ(ラックR)かを考慮することなく極力多くのスレーブノード20にデータを分散させてシステム1の処理能力を最大限に引き出すことが、処理の高速化につながる。したがって、処理前後におけるデータ量の変化に基づいて分散度を設定し、その分散度に基づいて中間データを配置することで、上記のような柔軟なデータ配置を実現でき、その結果、データを高速に処理することが可能になる。
When the amount of data increases, distributed processing within one group (rack R) so that the data does not pass through the plurality of switches 30 leads to an increase in speed. On the other hand, when the amount of data decreases, it is possible to maximize the processing capacity of the
例えば、分散処理システム1でsort処理を実行した場合には演算後のデータ量の方が多くなるので、中間データ(演算結果データ)は一つのグループ(ラックR)に集まり、その結果、ラックを跨って移動するデータが大量に発生してスイッチ30にトラフィックが集中するのを回避できる。一方、grep処理の場合には演算後のデータの方が少なくなるので、中間データは複数のグループ(ラックR)に分散され、その結果、処理効率が上がる。これに対して、従来の手法を用いてsort処理した場合には、中間データは複数のグループ(ラックR)に分散するので、スイッチに大量のトラフィックが集中し、全体として処理速度が低下する。
For example, when the sort processing is executed in the distributed
また、本実施形態によれば、分散度がアプリケーション毎に自動的に設定されるので、従来のように手動で分散度を設定する場合と比べて、より最適な分散度を柔軟に設定することが可能になる。 In addition, according to the present embodiment, since the degree of dispersion is automatically set for each application, a more optimal degree of dispersion can be flexibly set as compared with the case where the degree of dispersion is manually set as in the past. Is possible.
また、本実施形態によれば、演算結果データを一つのグループ内に配置する際には、被分割データを最も多く記憶しているグループに演算結果データが集められるので、一グループ内にデータを移動する際の通信量や処理量を低減することができる。 Further, according to the present embodiment, when the operation result data is arranged in one group, the operation result data is collected in the group that stores the most divided data, so that the data is stored in one group. The amount of communication and the amount of processing when moving can be reduced.
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で以下のような様々な変形が可能である。 The present invention has been described in detail based on the embodiments. However, the present invention is not limited to the above embodiment. The present invention can be modified in various ways as described below without departing from the scope of the invention.
本発明は、MapReduce以外の手法により分散処理を実行する場合にも適用し得る。 The present invention can also be applied to a case where distributed processing is executed by a method other than MapReduce.
1…分散処理システム、10…マスタノード、11…受付部、12…分散度テーブル、13…指示部、14…分散度設定部(設定手段)、20…スレーブノード(コンピュータ)、21…ラック構成テーブル、22…処理部(配置手段)、23…取得部(取得手段)、30…スイッチ(中継装置)。
DESCRIPTION OF
Claims (3)
分散処理を実行した前記各コンピュータにおける、該処理の入力データのデータ量と、該処理の結果である出力データのデータ量とを取得する取得手段と、
前記取得手段により取得された入力データ量及び出力データ量に基づいて前記分散処理前後におけるデータ量の変化を判定し、該処理によりデータ量が増加した場合には、該処理によりデータ量が減少する場合よりも、分散処理する複数の被分割データの分散度を低く設定する設定手段と、
前記設定手段により設定された分散度が所定の閾値以下である場合には、分散処理する複数の被分割データを前記複数のグループのうち一のグループに配置し、そうでない場合には、該複数の被分割データを前記複数のグループのうち2以上のグループに配置する配置手段と、
を備えることを特徴とする分散処理システム。 A distributed processing system comprising a plurality of groups including a relay device for relaying data and at least one computer directly connected to the relay device,
An acquisition means for acquiring the amount of input data of the processing and the amount of output data as a result of the processing in each computer that has performed distributed processing;
A change in the data amount before and after the distributed processing is determined based on the input data amount and the output data amount acquired by the acquisition means, and when the data amount increases by the processing, the data amount decreases by the processing. Setting means for setting the degree of dispersion of a plurality of divided data to be distributed lower than the case,
If the degree of distribution set by the setting means is less than or equal to a predetermined threshold, a plurality of divided data to be distributed is arranged in one group among the plurality of groups, and if not, the plurality of divided data Arrangement means for arranging the divided data in two or more groups among the plurality of groups;
A distributed processing system comprising:
ことを特徴とする請求項1に記載の分散処理システム。 The distributed processing is executed by a map reduction (MapReduce) programming model.
The distributed processing system according to claim 1.
分散処理を実行した前記各コンピュータにおける、該処理の入力データのデータ量と、該処理の結果である出力データのデータ量とを取得する取得ステップと、
前記取得ステップにおいて取得された入力データ量及び出力データ量に基づいて前記分散処理前後におけるデータ量の変化を判定し、該処理によりデータ量が増加した場合には、該処理によりデータ量が減少する場合よりも、分散処理する複数の被分割データの分散度を低く設定する設定ステップと、
前記設定ステップにおいて設定された分散度が所定の閾値以下である場合には、分散処理する複数の被分割データを前記複数のグループのうち一のグループに配置し、そうでない場合には、該複数の被分割データを前記複数のグループのうち2以上のグループに配置する配置ステップと、
を含むことを特徴とする分散処理方法。 A distributed processing method executed by a distributed processing system including a plurality of groups including a relay device that relays data and at least one computer directly connected to the relay device,
In each of the computers that have executed distributed processing, an acquisition step of acquiring the amount of input data of the processing and the amount of output data that is the result of the processing;
A change in the data amount before and after the distributed processing is determined based on the input data amount and the output data amount acquired in the acquisition step, and when the data amount increases by the processing, the data amount decreases by the processing. A setting step for setting the degree of dispersion of the plurality of divided data to be distributed lower than the case,
When the degree of distribution set in the setting step is equal to or less than a predetermined threshold, a plurality of divided data to be distributed are arranged in one group of the plurality of groups, and if not, the plurality of divided data Placing the divided data in two or more of the plurality of groups;
A distributed processing method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009095062A JP5331549B2 (en) | 2009-04-09 | 2009-04-09 | Distributed processing system and distributed processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009095062A JP5331549B2 (en) | 2009-04-09 | 2009-04-09 | Distributed processing system and distributed processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010244470A JP2010244470A (en) | 2010-10-28 |
JP5331549B2 true JP5331549B2 (en) | 2013-10-30 |
Family
ID=43097388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009095062A Active JP5331549B2 (en) | 2009-04-09 | 2009-04-09 | Distributed processing system and distributed processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5331549B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5888336B2 (en) | 2011-10-06 | 2016-03-22 | 富士通株式会社 | Data processing method, distributed processing system, and program |
JP2015088112A (en) | 2013-11-01 | 2015-05-07 | ソニー株式会社 | Control device, processing device, and information processing method |
US9632831B2 (en) * | 2014-09-29 | 2017-04-25 | Samsung Electronics Co., Ltd. | Distributed real-time computing framework using in-storage processing |
CN112581275B (en) * | 2020-12-24 | 2024-02-06 | 京东科技控股股份有限公司 | Data processing method and device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005310120A (en) * | 2004-03-23 | 2005-11-04 | Hitachi Ltd | Computer system, and task assigning method |
US7739314B2 (en) * | 2005-08-15 | 2010-06-15 | Google Inc. | Scalable user clustering based on set similarity |
JP5245711B2 (en) * | 2008-10-17 | 2013-07-24 | 日本電気株式会社 | Distributed data processing system, distributed data processing method, and distributed data processing program |
-
2009
- 2009-04-09 JP JP2009095062A patent/JP5331549B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010244470A (en) | 2010-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8780701B2 (en) | Communication apparatus and packet distribution method | |
JP2011164704A (en) | Client program, terminal, server device, system, and method | |
JP5331549B2 (en) | Distributed processing system and distributed processing method | |
CN111552550A (en) | Task scheduling method, device and medium based on GPU (graphics processing Unit) resources | |
WO2019056771A1 (en) | Distributed storage system upgrade management method and device, and distributed storage system | |
JP2017162257A (en) | Load monitoring program, load monitoring method, information processing device, and information processing system | |
CN106059940A (en) | Flow control method and device | |
JP6614373B1 (en) | Inference processing system, inference processing apparatus, and program | |
JP2010128597A (en) | Information processor and method of operating the same | |
CN111857995A (en) | Process scheduling method and device, storage medium and electronic device | |
JP4309321B2 (en) | Network system operation management method and storage apparatus | |
JP5876425B2 (en) | Virtual machine live migration scheduling method and virtual machine system | |
JP2006502651A (en) | Key event control device | |
CN106776032A (en) | The treating method and apparatus of the I/O Request of distributed block storage | |
JP2016220126A (en) | Network processing system, management method for network system, and communication device | |
JP2010244469A (en) | Distributed processing system and distributed processing method | |
JP4140014B2 (en) | Client server system and data processing method of client server system | |
US10896057B2 (en) | Job assignment apparatus, job assignment method, and network system | |
JP2016130962A (en) | Data saving control method, data saving control program and data saving controller | |
WO2013065151A1 (en) | Computer system, data transmission method, and data transmission program | |
WO2015125453A1 (en) | Information processing device and load control method | |
JP4764837B2 (en) | BAND CONTROL SYSTEM, BAND CONTROL PROGRAM, AND BAND CONTROL METHOD | |
JP5045303B2 (en) | Information processing system and information processing method | |
CN117435142B (en) | IO request scheduling method and storage device | |
JP6373236B2 (en) | calculator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130710 |
|
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: 20130723 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130729 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5331549 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |